|
OFF: Как вы пишете код? | ☑ | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0
Mentos1C
06.08.21
✎
12:34
|
Всем привет. Пьятничный вопрос, как вы пишете код? Вопрос касательно программирования обменов, преобразования данных. Есть ли какие то алгоритмы выведенные эмпирически, или же используете готовые конструкции? Как понять что алгоритм придуманный на ходу говнокод?
В мою голову закрадываются сомнения о качестве своей работы, связано это с тем, что я иногда настолько сильно усложняю алгоритм преобразования данных. Зато в процессе создания и заполнения документа в базе 1С не возникает никаких проблем. Или же стиль написания кода это что то уникальное и не стоит за это заморачиваться? Соединение таблицзначений на языке запросов //Заполнение таблиц полями соединения ТаблЕРЦ.Колонки.Добавить("ВидНачисления", Новый ОписаниеТипов("СправочникСсылка.КУ_ВидыНачисленийНаЖилье")); Для каждого Строка из ТаблЕРЦ цикл Строка.ВидНачисления = Соответствие.Получить(Строка.ServiceName); КонецЦикла; ТаблБД.Колонки.Добавить("ВидНачисления", Новый ОписаниеТипов("СправочникСсылка.КУ_ВидыНачисленийНаЖилье")); ТаблБД.Колонки.Добавить("ВидПотребления", Новый ОписаниеТипов("ПеречислениеСсылка.КУ_ВидыПотреблений")); ТаблБД.Колонки.Добавить("ВидОперации", Новый ОписаниеТипов("ПеречислениеСсылка.КУ_ВидОперацииНачисления")); Для каждого Строка из ТаблБД цикл Строка.ВидНачисления = Строка.Ссылка.ВидНачисления; Строка.ВидПотребления = Строка.Ссылка.ВидПотребления; Строка.ВидОперации = Строка.Ссылка.ВидОперации; КонецЦикла; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТаблЕРЦ.ВидНачисления КАК ВидНачисления, | ТаблЕРЦ.BudgetaryChargePart КАК BudgetaryChargePart, | ТаблЕРЦ.HouseCharge КАК HouseCharge, | ТаблЕРЦ.HouseRecalculation КАК HouseRecalculation, | ТаблЕРЦ.HouseVolume КАК HouseVolume, | ТаблЕРЦ.IndividualCharge КАК IndividualCharge, | ТаблЕРЦ.IndividualRecalculation КАК IndividualRecalculation, | ТаблЕРЦ.IndividualVolume КАК IndividualVolume, | ТаблЕРЦ.Tariff КАК Tariff, | ТаблЕРЦ.ServiceName КАК ServiceName, | ТаблЕРЦ.TotalCharge КАК TotalCharge, | ТаблЕРЦ.WelfareCharge КАК WelfareCharge, | ТаблЕРЦ.ВидПотребления КАК ВидПотребления, | ТаблЕРЦ.ВидОперации КАК ВидОперации |ПОМЕСТИТЬ ТаблицаИзЕРЦ |ИЗ | &ТаблЕРЦ КАК ТаблЕРЦ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТаблБД.Ссылка КАК Ссылка, | ТаблБД.ВидНачисления КАК ВидНачисления, | ТаблБД.ВидПотребления КАК ВидПотребления, | ТаблБД.ВидОперации КАК ВидОперации |ПОМЕСТИТЬ ТаблицаБД |ИЗ | &ТаблБД КАК ТаблБД |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТаблицаИзЕРЦ.ВидНачисления КАК ВидНачисления, | ТаблицаИзЕРЦ.BudgetaryChargePart КАК BudgetaryChargePart, | ТаблицаИзЕРЦ.HouseCharge КАК HouseCharge, | ТаблицаИзЕРЦ.HouseRecalculation КАК HouseRecalculation, | ТаблицаИзЕРЦ.HouseVolume КАК HouseVolume, | ТаблицаИзЕРЦ.IndividualCharge КАК IndividualCharge, | ТаблицаИзЕРЦ.IndividualRecalculation КАК IndividualRecalculation, | ТаблицаИзЕРЦ.IndividualVolume КАК IndividualVolume, | ТаблицаИзЕРЦ.Tariff КАК Tariff, | ТаблицаИзЕРЦ.ServiceName КАК ServiceName, | ТаблицаИзЕРЦ.TotalCharge КАК TotalCharge, | ТаблицаИзЕРЦ.WelfareCharge КАК WelfareCharge, | ТаблицаБД.Ссылка КАК Ссылка, | ТаблицаИзЕРЦ.ВидПотребления КАК ВидПотребления, | ТаблицаИзЕРЦ.ВидОперации КАК ВидОперации |ИЗ | ТаблицаИзЕРЦ КАК ТаблицаИзЕРЦ | ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаБД КАК ТаблицаБД | ПО (ТаблицаБД.ВидНачисления = ТаблицаИзЕРЦ.ВидНачисления) | И ТаблицаИзЕРЦ.ВидПотребления = ТаблицаБД.ВидПотребления | И ТаблицаИзЕРЦ.ВидОперации = ТаблицаБД.ВидОперации"; Запрос.УстановитьПараметр("ТаблБД", ТаблБД); Запрос.УстановитьПараметр("ТаблЕРЦ", ТаблЕРЦ); РезультатЗапроса = Запрос.Выполнить().Выгрузить(); Возврат РезультатЗапроса; |
||||||||||
22
Mentos1C
06.08.21
✎
13:10
|
(3) Подскажи где почитать про стандарты?
(11) Интересное мнение) Их не заполнить заранее, ибо заранее это именно в этом месте) Колонки сделаны как ты видишь не только для соединения, в дальнейшем эти поля служат для создания документа с определенными реквизитами. Создание документа происходит в процессе обхода группировки как раз таки по этим полям. (14) Согласен, отказался от этого метода ввиду большого количества исключений для заполнения (15) Уже вижу это, и думаю как жить дальше? (20) Соглашусь) Есть говнокод, а есть нормальный код! |
||||||||||
73
aka MIK
08.08.21
✎
23:18
|
(0) соблюдаем стандарты разработки от 1с - получаем нормальный код и хорошую производительность.
Проверено на терабайтных базах, с десятками разработчиков Есть говнокод, а есть нормальный код! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |