Уважаемые специалисты, посоветуйте пожалуйста, можно ли данный код(не мной добавленный в конфигурацию) заменить на
Вот сам код:
Если ТаблицаТоваров.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Вот сам код:
ТабТовары = ТаблицаТоваров.Выгрузить();
Для Каждого Стр Из ТабТовары Цикл
Стр.НомерСтроки = Индекс + 1;
Если Стр.Выбран Тогда
ЕстьТовары = Истина;
КонецЕсли;
КонецЦикла;
Если Не ЕстьТовары Тогда
Возврат Ложь;
КонецЕсли;
ПоказатьПо теме из базы знаний
- Алкогольная декларация для 1С 8.1, 8.2, 8.3 (1, 2, 3, 4, 5, 6, 7, 8 формы) УТ10.2/10.3, УТ11, УПП, КА, БП2.0/3.0, БП КОРП, Розница 1.0/2.1, Далион, Астор, УТАП и др. с подписью и шифрованием, редакция 2.3
- Заполнение документов из буфера обмена. Управляемые (УТ11, Розница 2.0, КА 2.0) и обычные формы (УТ10.3, УПП1.1, КА1.1).
- Загрузка в 1С документов поступления из файла XML (ЭДО формат 820) для БП 3.0, УТ10/11, КА2.5, УПП1.3
- Основной договор в документах для УТ11.5
- Интеграция Честный Знак и 1C: обмен и синхронизация для УТ11, УНФ, КА2, ERP, Розница: Расширение для работы с СУЗ, ГИС МТ, ЦРПТ
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3)
Не будьте так категоричны, заменить - можно, удалить - тоже можно, вообще всё что угодно сделать можно, если есть понимание какой конечный результат должен быть на выходе.
Вот, например, у ТС такого понимания нет. Так-как приведены два абсолютно по разному работающих куска кода - оригинальный нумерует строки таблицы и возвращает признак наличия товарных позиций если в строке с товаром установлена пометка, а предлагаемый на замену прерывает выполнение если в табличной части нет строк. Цель, которую преследует топик стартер, так же не озвучена, так что вполне можно и дальше фантазировать на тему:
Нельзя.
Не будьте так категоричны, заменить - можно, удалить - тоже можно, вообще всё что угодно сделать можно, если есть понимание какой конечный результат должен быть на выходе.
Вот, например, у ТС такого понимания нет. Так-как приведены два абсолютно по разному работающих куска кода - оригинальный нумерует строки таблицы и возвращает признак наличия товарных позиций если в строке с товаром установлена пометка, а предлагаемый на замену прерывает выполнение если в табличной части нет строк. Цель, которую преследует топик стартер, так же не озвучена, так что вполне можно и дальше фантазировать на тему:
ЕстьТовары = Ложь;
Если ТаблицаТоваров.Количество() = 0 Тогда
Возврат ЕстьТовары ;
КонецЕсли;
ТабТовары = ТаблицаТоваров.Выгрузить();
Для Каждого Стр Из ТабТовары Цикл
Стр.НомерСтроки = Индекс + 1; // WTF? Откуда индекс берётся?!
Если Стр.Выбран Тогда
ЕстьТовары = Истина;
КонецЕсли;
КонецЦикла;
Возврат ЕстьТовары ;
Показать
Хотя, с другой стороны, если в таблице нет строк, то цикл не отработает, соответственно переменная "ЕстьТовары" будет равна Ложь и значение будет возвращено - Ложь. Т.е. в вашем случае, если проверка все же идет на заполнение таблицы, нужно будет просто добавить значение возврата:
Если ТаблицаТоваров.Количество() = 0 Тогда
Возврат Ложь;
КонецЕсли;
Можно на такой заменить:
Если б знать, что там дальше, то можно было бы и больше оптимизировать. Хотя если там ниже вдруг есть изменение и обратная загрузка в контекст формы, то даже так нельзя. И может, вообще нет необходимости в таблицу значений выгружать.
ТабТовары = ТаблицаТоваров.Выгрузить().Скопировать(Новый Структура("Выбран", Истина));
Если ТабТовары.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Для Каждого Стр Из ТабТовары Цикл
...
КонецЦикла;
Если б знать, что там дальше, то можно было бы и больше оптимизировать. Хотя если там ниже вдруг есть изменение и обратная загрузка в контекст формы, то даже так нельзя. И может, вообще нет необходимости в таблицу значений выгружать.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот