По теме из базы знаний
- Список документов сотрудника (из Общего журнала документов) для 1С: Зарплата и кадры 7.7
- Итоговая сумма в динамических списках (список документов, список справочников)
- Обработки "Список документов и их количество в базе за период" для обычных и управляемых форм, "Реестр всех документов в базе" для управляемых форм.
- Список документов "Реализация товаров и услуг"
- Список документов в конфигурации 1С:Бухгалтерия 3.0
Найденные решения
Процедура ПриПолученииДанных обрабатывает пачку строк. Т.е. при вызове этой процедуры в ОформленияСтрок попадают те строки которые выводятся на экран. Не нужно в этой процедуре обращаться к ЭлементыФормы.ДокументСписок.ТекущаяСтрока.
Нужно сделать вот так:
Если использовать подход как в (3), нужно использовать процедуру ПриВыводеСтроки.
Нужно сделать вот так:
Для каждого ОформлениеСтроки из ОформленияСтрок Цикл
СЧФ = РаботаСДиалогами.ПолучитьТекстСчетаФактуры(
УчетНДС.НайтиПодчиненныйДокумент(ОформлениеСтроки.ДанныеСтроки.Ссылка,"СчетФактураПолученный"));
Если СЧФ = Строка("Ввести счет-фактуру") Тогда
ОформлениеСтроки.Ячейки.СчетФактура.Значение = "";
Иначе
ОформлениеСтроки.Ячейки.СчетФактура.Значение = СЧФ;
КонецЕсли;
КонецЦикла;
ПоказатьЕсли использовать подход как в (3), нужно использовать процедуру ПриВыводеСтроки.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Строка = ЭлементыФормы.ДокументСписок.ТекущаяСтрока ;
СЧФ = РаботаСДиалогами.ПолучитьТекстСчетаФактуры(
УчетНДС.НайтиПодчиненныйДокумент(Строка,"СчетФактураПолученный"));
ДокументСписок.Обновить();
Для каждого ОформлениеСтроки из ОформленияСтрок Цикл
Если СЧФ = Строка("Ввести счет-фактуру") Тогда
ОформлениеСтроки.Ячейки.СчетФактура.Значение = "";
Иначе
ОформлениеСтроки.Ячейки.СчетФактура.Значение = СЧФ;
КонецЕсли;
КонецЦикла;
Показать
Процедура ПриПолученииДанных обрабатывает пачку строк. Т.е. при вызове этой процедуры в ОформленияСтрок попадают те строки которые выводятся на экран. Не нужно в этой процедуре обращаться к ЭлементыФормы.ДокументСписок.ТекущаяСтрока.
Нужно сделать вот так:
Если использовать подход как в (3), нужно использовать процедуру ПриВыводеСтроки.
Нужно сделать вот так:
Для каждого ОформлениеСтроки из ОформленияСтрок Цикл
СЧФ = РаботаСДиалогами.ПолучитьТекстСчетаФактуры(
УчетНДС.НайтиПодчиненныйДокумент(ОформлениеСтроки.ДанныеСтроки.Ссылка,"СчетФактураПолученный"));
Если СЧФ = Строка("Ввести счет-фактуру") Тогда
ОформлениеСтроки.Ячейки.СчетФактура.Значение = "";
Иначе
ОформлениеСтроки.Ячейки.СчетФактура.Значение = СЧФ;
КонецЕсли;
КонецЦикла;
ПоказатьЕсли использовать подход как в (3), нужно использовать процедуру ПриВыводеСтроки.
+(4)
Вообще такой код, с точки зрения производительности, будет плох и, возможно, будет доставлять неудобства пользователям в момент прокрутки списков, т.к. по сути "УчетНДС.НайтиПодчиненныйДокумент(..." это будет запрос к базе. Соответственно, получается, что этот запрос будет в цикле, причем этот цикл будет часто избыточен, т.к. ПриПолученииДанных часто не очевидно срабатывает – то одну строку получает, а то возьмет и всю пачку с экрана (30 штук к примеру) еще и пару раз подряд.
Чтобы уйти от этого нужно писать более сложный код, где из списка ОформленияСтрок доставать весь список ссылок на объекты, уже этот список передавать в один запрос (скорее всего писать придется свой, врятли есть готовый типовой, но не уверен) и только затем обрабатывать результат запроса и изменять строки в ОформленияСтрок.
Но это уже совсем другая история))
Вообще такой код, с точки зрения производительности, будет плох и, возможно, будет доставлять неудобства пользователям в момент прокрутки списков, т.к. по сути "УчетНДС.НайтиПодчиненныйДокумент(..." это будет запрос к базе. Соответственно, получается, что этот запрос будет в цикле, причем этот цикл будет часто избыточен, т.к. ПриПолученииДанных часто не очевидно срабатывает – то одну строку получает, а то возьмет и всю пачку с экрана (30 штук к примеру) еще и пару раз подряд.
Чтобы уйти от этого нужно писать более сложный код, где из списка ОформленияСтрок доставать весь список ссылок на объекты, уже этот список передавать в один запрос (скорее всего писать придется свой, врятли есть готовый типовой, но не уверен) и только затем обрабатывать результат запроса и изменять строки в ОформленияСтрок.
Но это уже совсем другая история))
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот