Как можно изменить выделенные строки динамического списка? Выделенные строки получил, но как изменить их не знаю. Нужно, чтобы при нажатии на кнопку "Зачет оплаты" изменялось значение реквизита СостояниеОплаты с Ложь на Истина
&НаКлиенте
Процедура КомандаЗачетОплаты(Команда)
СтрокиСписка = Элементы.Список.ВыделенныеСтроки;
Для Каждого ВыделеннаяСтрока Из СтрокиСписка Цикл
СтрокаСписка = Элементы.Список.ДанныеСтроки(ВыделеннаяСтрока);
СтрокаСписка.СостояниеОплаты = Истина;
Сообщить(СтрокаСписка.СостояниеОплаты);
КонецЦикла;
КонецПроцедуры
Если это реквизит (не типовая конфигурация), то и можно пойти от обратного, записать признак оплаты в накладной, а затем автоматически сформировать документы оплаты по всем накладным (если это вообще предусмотрено в конфигурации).
Возможно, состояние оплаты это не реквизит накладной, а показатель, рассчитываемый при обновлении списка запросом из формы. В этом случае ваша кнопка должно формировать документы оплаты со ссылками на выделенные документы и проводить их, после чего обновлять форму.
(3) СтрокаСписка.СостояниеОплаты - это не реквизит накладной. Это колонка динамического списка. Смотрите в запросе динамического списка - откуда берет ноги этот реквизит. Это раз.
Во-вторых, в нормальной ситуации состояние оплаты изменяется вводом документов поступления оплат, а не изменением "галочки в списке".
(4) Я согласен, что в нормальной ситуации нужно вводить через документы оплат, но заказчик скажем так не захотел. Он не ведет эти оплаты в 1с, не знаю по какой причине. Просто хочет отслеживать, что оплачено, а что нет
(8) По началу вообще хотел сделать, чтобы на основании документа создавался РКО и зачитывался по нему платеж. Но по его просьбе там даже не указывается сумма самой доставки, а лишь сумма товаров, которые перевозчик перевозит... Сказал, что нужно максимум указывать водителя и был платеж или нет, без каких-либо усложнений. Что там в голове не знаю))
Если это реквизит (не типовая конфигурация), то и можно пойти от обратного, записать признак оплаты в накладной, а затем автоматически сформировать документы оплаты по всем накладным (если это вообще предусмотрено в конфигурации).
(14) Которые проходят при проведении документа. Их описывал в модуле объекта самой накладной. Если проводить накладную стандартным путем, все проводки формируются
&НаКлиенте
Процедура ЗаполнитьВВыделенныхСтроках(Команда)
МассивСтруктур = Новый Массив;
Для каждого Стр Из Элементы.Список.ВыделенныеСтроки Цикл
ЗначениеСтроки = Элементы.Список.ДанныеСтроки(Стр);
Если ТипЗнч(Стр) = Тип("СтрокаГруппировкиДинамическогоСписка") Тогда
Продолжить;
КонецЕсли;
СтруктураСтроки = Новый Структура;
СтруктураСтроки.Вставить("Строка",Стр);
СтруктураСтроки.Вставить("ГотовКОтправке",Не ЗначениеСтроки.ГотовКОтправке);
МассивСтруктур.Добавить(СтруктураСтроки);
КонецЦикла;
Список.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ВыделенныеСтроки",МассивСтруктур);
Элементы.Список.Обновить();
КонецПроцедуры
&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
ВыделенныеСтроки = Неопределено;
Настройки.ДополнительныеСвойства.Свойство("ВыделенныеСтроки",ВыделенныеСтроки);
Если ВыделенныеСтроки <> Неопределено Тогда
Для каждого Стр Из ВыделенныеСтроки Цикл
НужнаяСтрока = Строки.Получить(Стр.Строка);
НужнаяСтрока.ГотовКОтправке = Стр.ГотовКОтправке;
КонецЦикла;
КонецЕсли;
КонецПроцедуры