1. 1C / Говнокод #4680

    −121

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 19 Ноября 2010

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

    • А где говно (не считая того, что это 1С)?
      Ответить
      • Номер = ВыбратьТолькоЦифры(Выборка.Наименование) ;
        Ответить
      • Ну как бы для таких целей используется запрос вида "select max(Код) from Таблица", а не бегание по полной выборке текстовых наименований из всей таблицы с выделением из строки числа. И все это с выводом процесса пользователю.
        Ответить
        • а как у 1С с поддержкой SQL запросов?
          Ответить
          • На удивление нормально. По началу парило, что все по-русски, но потом освоил двуязычие и стал писать на обычном 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С?
                        вот это зашквар!!
                        Ответить
                        • Ну тебя же я не трогал, значит не страшно.
                          Ответить
            • Плюс неявное соединение таблиц через точку.
              Ответить
    • ждем 1С-Linq и ОРМ Гибернация 1С
      Ответить
      • из справочники.номенклатура выбрать где типНалогообл = налогообложения.упрощенСхема
        Ответить
      • Прошло 6 лет.

        Сбылось?
        Ответить
        • Самое смешное что я унижал 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С-Предприятие — это же разные проекты.
            Ответить
            • Ах, простите в сортах говна...

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

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