Бухгалтерия / Говнокод #4680 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
Процедура УстановкаНомераЛицевогоСчета()
	
	Запрос = Новый Запрос();
	Запрос.Текст =
	"ВЫБРАТЬ
	|	КВП_ЛицевыеСчета.Наименование
	|ИЗ
	|	Справочник.КВП_ЛицевыеСчета КАК КВП_ЛицевыеСчета
	|ГДЕ
	|	(НЕ КВП_ЛицевыеСчета.ЭтоГруппа)";
	
	МаксНомер      = 0;
	Выборка        = Запрос.Выполнить().Выбрать();
	ВсегоВариантов = Выборка.Количество();
	ТекВариант     = 1;
	Пока Выборка.Следующий() Цикл
		Номер = ВыбратьТолькоЦифры(Выборка.Наименование);
		Если МаксНомер < Число(Номер) Тогда
			МаксНомер = Число(Номер);
		КонецЕсли;
		Состояние("Поиск максимального лицевого счета: " + ТекВариант + " / " + ВсегоВариантов);
		ТекВариант = ТекВариант + 1;
	КонецЦикла;
	
	МаксНомер = МаксНомер + 1;
	ИмяЛицевогоСчета = "л/с №" + Формат(МаксНомер, "ЧДЦ=0; ЧГ=0");
	
КонецПроцедуры

Процедура для присвоения Кода новому элементу справочника. Из одной серьезной официальной конфигурации.

Запостил: nickkk nickkk, (Updated )

Комментарии (21) RSS

    • Ну как бы для таких целей используется запрос вида "select max(Код) from Таблица", а не бегание по полной выборке текстовых наименований из всей таблицы с выделением из строки числа. И все это с выводом процесса пользователю.
      Ответить
        • На удивление нормально. По началу парило, что все по-русски, но потом освоил двуязычие и стал писать на обычном SQL. В отличии от стандарта добавлена конструкция TOTALS. Плюс есть поддержка пакетных запросов - одним запросом можно сразу много выборок делать, и при этом промежуточно селектить ими из друг друга.
          Ответить
          • в 2002м году я работал на семерке
            она была еще на dbf, а не на ms-sql.

            так вот там кажется sql не было
            видимо что-то изменилось
            Ответить
            • Раньше прогал только на делфи и SQL. К 1С относился как к какой-то херне. Как начал в восьмерке работать, мнение о ней кардинально изменилось.
              Ответить
              • может восьмерка стала лучше -- хз)
                я знаю, что они перенесли структуру БД из dbf в ms-sql, и даже primary key делают не средставми бд) хотя опять же -- может быть это уже не так
                Ответить
                • Используются базы на основе DBF-файлов в 7.7, собственный формат 1CD с версии 8.0 или СУБД Microsoft SQL Server на любой из этих версий. Кроме того, с версии 8.1 хранение данных возможно в PostgreSQL и IBM DB2, а с версии 8.2 добавилась и Oracle. Имеется возможность использовать и другие сервера баз данных при помощи проектов: CodeBase 6.5, Advantage 8.1/9.1.

                  Кстати, как дела с языком запросов при обращении к этим СУБД? 1С транслирует свой внутренний SQL-подобный язык в настоящий SQL?
                  Ответить
                  • >1С транслирует свой внутренний SQL-подобный язык
                    да
                    Ответить
                    • фууууу Вася

                      ты не только пхп трогал, но и 1С?
                      вот это зашквар!!
                      Ответить
    • из справочники.номенклатура выбрать где типНалогообл = налогообложения.упрощенСхема
      Ответить
      • Самое смешное что я унижал linq и ORMы до того как это стало мейнстримом.

        >Сбылось?
        Да.

        https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&CHAPTER_ID=05748&LESSON_PA TH=3913.5062.5748


        ORM (англ. Object-relational mapping, рус. Объектно-реляционное отображение) - технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных».

        В старом ядре на каждую сущность программируется свой GetList, Update, Add, Delete.

        Недостатки такой идеологии:

        разный набор параметров;
        разный синтаксис полей фильтров;
        события могут быть или не быть;
        иногда разный код под разные БД (Add).
        Цели в новом ядре:

        Сделать операции выборки и сохранения в БД однотипными, с одинаковыми параметрами и фильтрами. По возможности, таблицы сущностей
        должны обслуживаться с минимумом нового кода. Стандартные события добавления/изменения/удаления должны быть доступны автоматически.

        Для реализации этих целей были введены понятия:

        Cущности (Bitrix\Main\Entity\Base);
        Поля сущностей (Bitrix\Main\Entity\Field и его наследники);
        Датаменеджер (Bitrix\Main\Entity\DataManager).
        Ответить
          • Ах, простите в сортах говна...

            Впрочем да, там русифицированный бейсик, а там пхп+мускуль.
            Ответить
    • Причём это второй язык компании 1С. Он даже пишется в кавычках, как SQL в PHP. Метапрограммирование!
      Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8