Как изменить выделенные строки динамического списка?

1. ciddex 01.10.20 18:24 Сейчас в теме
Как можно изменить выделенные строки динамического списка? Выделенные строки получил, но как изменить их не знаю. Нужно, чтобы при нажатии на кнопку "Зачет оплаты" изменялось значение реквизита СостояниеОплаты с Ложь на Истина
&НаКлиенте
Процедура КомандаЗачетОплаты(Команда)
	
	СтрокиСписка = Элементы.Список.ВыделенныеСтроки;
	
	Для Каждого ВыделеннаяСтрока Из СтрокиСписка Цикл
		
		СтрокаСписка = Элементы.Список.ДанныеСтроки(ВыделеннаяСтрока);
		СтрокаСписка.СостояниеОплаты = Истина;
		Сообщить(СтрокаСписка.СостояниеОплаты);
		
	КонецЦикла;
	
	
КонецПроцедуры
Показать
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
5. user1464234 01.10.20 18:58 Сейчас в теме
ОбъектНакладная = выделеннаястрока.ссылка.получитьобьект();
ОбъектНакладная.состояниеоплаты=истина;
Объектнакладная.записать();

Если это реквизит (не типовая конфигурация), то и можно пойти от обратного, записать признак оплаты в накладной, а затем автоматически сформировать документы оплаты по всем накладным (если это вообще предусмотрено в конфигурации).
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1464234 01.10.20 18:46 Сейчас в теме
Возможно, состояние оплаты это не реквизит накладной, а показатель, рассчитываемый при обновлении списка запросом из формы. В этом случае ваша кнопка должно формировать документы оплаты со ссылками на выделенные документы и проводить их, после чего обновлять форму.
3. ciddex 01.10.20 18:50 Сейчас в теме
(2) Это реквизит накладной. Сообщить(СтрокаСписка.СостояниеОплаты); Это работает, но вот как изменить его значение
Прикрепленные файлы:
4. FatPanzer 01.10.20 18:55 Сейчас в теме
(3) СтрокаСписка.СостояниеОплаты - это не реквизит накладной. Это колонка динамического списка. Смотрите в запросе динамического списка - откуда берет ноги этот реквизит. Это раз.

Во-вторых, в нормальной ситуации состояние оплаты изменяется вводом документов поступления оплат, а не изменением "галочки в списке".
6. ciddex 01.10.20 19:00 Сейчас в теме
(4) Я согласен, что в нормальной ситуации нужно вводить через документы оплат, но заказчик скажем так не захотел. Он не ведет эти оплаты в 1с, не знаю по какой причине. Просто хочет отслеживать, что оплачено, а что нет
7. FatPanzer 01.10.20 19:00 Сейчас в теме
8. user1464234 01.10.20 19:05 Сейчас в теме
(6) а процент оплаты еще не просит указывать в накладной? И отчет по дебиторке исходя из суммы накладной * на 1- процент/100?
11. ciddex 01.10.20 19:15 Сейчас в теме
(8) По началу вообще хотел сделать, чтобы на основании документа создавался РКО и зачитывался по нему платеж. Но по его просьбе там даже не указывается сумма самой доставки, а лишь сумма товаров, которые перевозчик перевозит... Сказал, что нужно максимум указывать водителя и был платеж или нет, без каких-либо усложнений. Что там в голове не знаю))
5. user1464234 01.10.20 18:58 Сейчас в теме
ОбъектНакладная = выделеннаястрока.ссылка.получитьобьект();
ОбъектНакладная.состояниеоплаты=истина;
Объектнакладная.записать();

Если это реквизит (не типовая конфигурация), то и можно пойти от обратного, записать признак оплаты в накладной, а затем автоматически сформировать документы оплаты по всем накладным (если это вообще предусмотрено в конфигурации).
9. ciddex 01.10.20 19:09 Сейчас в теме
(5) Поле объекта не обнаружено (Ссылка). Но это поле у списка есть.. и на форме списка отображается
10. user1464234 01.10.20 19:11 Сейчас в теме
(9) в отладчике смотрите, какие реквизиты есть вообще,и это уф, клиент, значит вызов сервера.
Примерно как здесь
http://xn--h1akadalqlb.xn--p1ai/1s-poluchit-videlennuyu-stroku-tablichnoy-chasti/
12. user1464234 01.10.20 19:19 Сейчас в теме
Примерно как здесь вероятно, только у вас список(массив строк).

Модуль формы документа
&НаКлиенте
Процедура ПолучитьВыделеннуюСтроку(Команда)
	ПолучитьВыделеннуюСтрокуНаСервере();
КонецПроцедуры

&НаСервере
Процедура ПолучитьВыделеннуюСтрокуНаСервере()
	ТекСтрока = Элементы.ТабличнаяЧасть.ТекущаяСтрока;
	Объект.ТабличнаяЧасть[ТекСтрока].РеквизитТЧ;
КонецПроцедуры
Показать
13. ciddex 01.10.20 19:24 Сейчас в теме
(12) Да, спасибо, получилось. Только по регистрам проводок нет
14. FatPanzer 01.10.20 19:26 Сейчас в теме
(13) А какие проводки вы ждете?
15. ciddex 01.10.20 19:29 Сейчас в теме
(14) Которые проходят при проведении документа. Их описывал в модуле объекта самой накладной. Если проводить накладную стандартным путем, все проводки формируются
16. FatPanzer 01.10.20 19:35 Сейчас в теме
(15) Ну так и проводите их после смены своего статуса...
17. ciddex 01.10.20 19:40 Сейчас в теме
(16) Да, виноват. Забыл, что записывать нужно с параметрами. ОбъектНакладная.Записать(РежимЗаписиДокумента.Проведение);
user1464234; +1 Ответить
18. RenatKa 22 18.03.25 11:33 Сейчас в теме
Изменение строк динамического списка подробно описано
https://xn----1-bedvffifm4g.xn--p1ai/news/2017-12-26-many-values-in-one-cell/
Вот пример
&НаКлиенте
Процедура ЗаполнитьВВыделенныхСтроках(Команда)
	
	МассивСтруктур = Новый Массив;
	
	Для каждого Стр Из Элементы.Список.ВыделенныеСтроки Цикл
		
		ЗначениеСтроки = Элементы.Список.ДанныеСтроки(Стр);
		
		Если ТипЗнч(Стр) = Тип("СтрокаГруппировкиДинамическогоСписка") Тогда
			Продолжить;
		КонецЕсли;
		
		СтруктураСтроки = Новый Структура;
		СтруктураСтроки.Вставить("Строка",Стр);
		СтруктураСтроки.Вставить("ГотовКОтправке",Не ЗначениеСтроки.ГотовКОтправке);
		
		МассивСтруктур.Добавить(СтруктураСтроки);
		
	КонецЦикла;
	
	Список.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ВыделенныеСтроки",МассивСтруктур);
	Элементы.Список.Обновить();
	
КонецПроцедуры

&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
	
	ВыделенныеСтроки = Неопределено;
	Настройки.ДополнительныеСвойства.Свойство("ВыделенныеСтроки",ВыделенныеСтроки);
	
	Если ВыделенныеСтроки <> Неопределено Тогда
		
		Для каждого Стр Из ВыделенныеСтроки Цикл
			НужнаяСтрока = Строки.Получить(Стр.Строка);
			НужнаяСтрока.ГотовКОтправке = Стр.ГотовКОтправке;
		КонецЦикла;
		
	КонецЕсли;
	
КонецПроцедуры

Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот