Size: a a a

1С, БСП, DevOps и Архитектура

2020 January 13

АС

Антон Степанов in 1С, БСП, DevOps и Архитектура
Использовать описания оповещения в качестве ссылок на функции это зашквар? У меня есть цикл, внутри которого нужно в зависимости от параметра выполнять один из 10 методов. И вот есть варианты:
1. Множественное Если ... ИначеЕсли и внутри цикл с нужными действиями - так в типовых сделано
2. Цикл и в его теле вызов метода, где внутри Если ... ИначеЕсли
3. До цикла получить описаниеОповещения и внутри цикла ВыполнитьОбработкуОповещения
источник

AD

Abramov Dmitry in 1С, БСП, DevOps и Архитектура
Антон Степанов
Использовать описания оповещения в качестве ссылок на функции это зашквар? У меня есть цикл, внутри которого нужно в зависимости от параметра выполнять один из 10 методов. И вот есть варианты:
1. Множественное Если ... ИначеЕсли и внутри цикл с нужными действиями - так в типовых сделано
2. Цикл и в его теле вызов метода, где внутри Если ... ИначеЕсли
3. До цикла получить описаниеОповещения и внутри цикла ВыполнитьОбработкуОповещения
Я пользуюсь первым вариантом, таким образом я точно ограничиваю вызовы процедур этим набором, плюс легче отлаживаться + понятнее другим разработчикам. Также обработка оповещения должна вернуться на клиент и по идее лишний серверный вызов
источник

AD

Abramov Dmitry in 1С, БСП, DevOps и Архитектура
Кстати и клиент не всегда может быть вообще (рег задание)
источник

АС

Антон Степанов in 1С, БСП, DevOps и Архитектура
У меня случай с клиентом. Я это все на клиенте буду делать - групповое изменение таблицы на форме.
1 вариант мне не нравится огромным дублированием кода и слишком большим итоговым методом
источник

AD

Abramov Dmitry in 1С, БСП, DevOps и Архитектура
Антон Степанов
У меня случай с клиентом. Я это все на клиенте буду делать - групповое изменение таблицы на форме.
1 вариант мне не нравится огромным дублированием кода и слишком большим итоговым методом
Почему дублированием? У тебя есть вызов процедуры (а-ля rpc), дальше она уже направляет куда надо
источник

АС

Антон Степанов in 1С, БСП, DevOps и Архитектура
Abramov Dmitry
Почему дублированием? У тебя есть вызов процедуры (а-ля rpc), дальше она уже направляет куда надо
Если ЭтоДействие1() Тогда
 
 Для каждого цСтрокаТаблицы Из Таблица Цикл
   
   новЗначение = ПосчитатьЗначение1();
   
   Если Не цСтрокаТаблицы[имяПоля1] = новЗначение Тогда
     
     цСтрокаТаблицы[имяПоля1] = новЗначение;
     количествоИзмененныхСтрок = количествоИзмененныхСтрок + 1;
     
   КонецЕсли;
   
 КонецЦикла;
 
ИначеЕсли ЭтоДействие2() Тогда
 
 Для каждого цСтрокаТаблицы Из Таблица Цикл
   
   новЗначение = ПосчитатьЗначение2();
   
   Если Не цСтрокаТаблицы[имяПоля2] = новЗначение Тогда
     
     цСтрокаТаблицы[имяПоля2] = новЗначение;
     количествоИзмененныхСтрок = количествоИзмененныхСтрок + 1;
     
   КонецЕсли;
   
 КонецЦикла;
 
ИначеЕсли ЭтоДействие3() Тогда
 
 Для каждого цСтрокаТаблицы Из Таблица Цикл
   
   новЗначение = ПосчитатьЗначение3();
   
   Если Не цСтрокаТаблицы[имяПоля3] = новЗначение Тогда
     
     цСтрокаТаблицы[имяПоля3] = новЗначение;
     количествоИзмененныхСтрок = количествоИзмененныхСтрок + 1;
     
   КонецЕсли;
   
 КонецЦикла;


против

Для каждого цСтрокаТаблицы Из Таблица Цикл
 
 новЗначение = цСтрокаТаблицы[пИмяПоля];
 
 ВыполнитьОбработкуОповещения(ссылкаНаФункцию, новЗначение);
 
 Если Не цСтрокаТаблицы[пИмяПоля] = новЗначение Тогда
   
   цСтрокаТаблицы[пИмяПоля] = новЗначение;
   количествоИзмененныхСтрок = количествоИзмененныхСтрок + 1;
   
 КонецЕсли;
 
КонецЦикла;
источник

VP

Vassily Poupkine in 1С, БСП, DevOps и Архитектура
Есть же интерфейс БСП для выполнения экспортных методов по их имени
источник

VP

Vassily Poupkine in 1С, БСП, DevOps и Архитектура
Но модули форм / команд наверное там не поддерживаются из коробки
источник

AD

Abramov Dmitry in 1С, БСП, DevOps и Архитектура
Антон Степанов
Если ЭтоДействие1() Тогда
 
 Для каждого цСтрокаТаблицы Из Таблица Цикл
   
   новЗначение = ПосчитатьЗначение1();
   
   Если Не цСтрокаТаблицы[имяПоля1] = новЗначение Тогда
     
     цСтрокаТаблицы[имяПоля1] = новЗначение;
     количествоИзмененныхСтрок = количествоИзмененныхСтрок + 1;
     
   КонецЕсли;
   
 КонецЦикла;
 
ИначеЕсли ЭтоДействие2() Тогда
 
 Для каждого цСтрокаТаблицы Из Таблица Цикл
   
   новЗначение = ПосчитатьЗначение2();
   
   Если Не цСтрокаТаблицы[имяПоля2] = новЗначение Тогда
     
     цСтрокаТаблицы[имяПоля2] = новЗначение;
     количествоИзмененныхСтрок = количествоИзмененныхСтрок + 1;
     
   КонецЕсли;
   
 КонецЦикла;
 
ИначеЕсли ЭтоДействие3() Тогда
 
 Для каждого цСтрокаТаблицы Из Таблица Цикл
   
   новЗначение = ПосчитатьЗначение3();
   
   Если Не цСтрокаТаблицы[имяПоля3] = новЗначение Тогда
     
     цСтрокаТаблицы[имяПоля3] = новЗначение;
     количествоИзмененныхСтрок = количествоИзмененныхСтрок + 1;
     
   КонецЕсли;
   
 КонецЦикла;


против

Для каждого цСтрокаТаблицы Из Таблица Цикл
 
 новЗначение = цСтрокаТаблицы[пИмяПоля];
 
 ВыполнитьОбработкуОповещения(ссылкаНаФункцию, новЗначение);
 
 Если Не цСтрокаТаблицы[пИмяПоля] = новЗначение Тогда
   
   цСтрокаТаблицы[пИмяПоля] = новЗначение;
   количествоИзмененныхСтрок = количествоИзмененныхСтрок + 1;
   
 КонецЕсли;
 
КонецЦикла;
А куда параметры делись?я про ссылку на функцию, ну и я не понял зачем несколько раз по таблице бегать
источник

АС

Антон Степанов in 1С, БСП, DevOps и Архитектура
Abramov Dmitry
А куда параметры делись?я про ссылку на функцию, ну и я не понял зачем несколько раз по таблице бегать
Отдельно получаются, где так же есть Если ... ИначеЕсли, но внутри тела только нужное, без дублей
источник

VP

Vassily Poupkine in 1С, БСП, DevOps и Архитектура
На сервер случайно не уходишь в этих вызываемых методах, в т.ч. неявно? А то в цикле
источник

AD

Abramov Dmitry in 1С, БСП, DevOps и Архитектура
Vassily Poupkine
На сервер случайно не уходишь в этих вызываемых методах, в т.ч. неявно? А то в цикле
Сто процентов уходит, если строк больше 25 что-ли
источник

AD

Abramov Dmitry in 1С, БСП, DevOps и Архитектура
Таблица формы же тоже порционно загружается?
источник

АС

Антон Степанов in 1С, БСП, DevOps и Архитектура
с чего бы?
источник

АС

Антон Степанов in 1С, БСП, DevOps и Архитектура
это только динамический список порционно подгружается
источник

AD

Abramov Dmitry in 1С, БСП, DevOps и Архитектура
Антон Степанов
это только динамический список порционно подгружается
Вот я сейчас думаю, у меня почему то стойкое ощущение того, что при большом количестве строк на сервер с клиента можно погулять сходить, но пока не могу аргументировать
источник

AD

Abramov Dmitry in 1С, БСП, DevOps и Архитектура
У тебя строк там много может быть?
источник

NG

Nikita Gryzlov in 1С, БСП, DevOps и Архитектура
ТЧ тоже.
источник

АС

Антон Степанов in 1С, БСП, DevOps и Архитектура
Abramov Dmitry
Вот я сейчас думаю, у меня почему то стойкое ощущение того, что при большом количестве строк на сервер с клиента можно погулять сходить, но пока не могу аргументировать
я когда АРМы на дохера строк делаю - все операции выполняю на клиенте, т.к. поход на сервер оооочень дорогой выходит. В том числе изза того, что вся таблица туда сюда ходят
источник

NG

Nikita Gryzlov in 1С, БСП, DevOps и Архитектура
один раз ТЧ вычитывается на клиент, а потом только синхронизация при контекстных вызовах
источник