// 1c7 // На форме - список значений и пара кнопой (добавить/удалить) // Обработка вызывается как // ОткрытьФормуМодально("Обработка.ВыборСпискаАгентов",Контекст) Перем Конт; Процедура ДобавитьПолучателя() К = СоздатьОбъект("Справочник.Контрагенты"); Если К.Выбрать("Выберите Контрагента", "ФормаСписка")=1 Тогда Если СписокПолучателей.НайтиЗначение(К.ТекущийЭлемент())=0 Тогда СписокПолучателей.ДобавитьЗначение(К.ТекущийЭлемент()); СписокПолучателей.ТекущаяСтрока(СписокПолучателей.РазмерСписка()); КонецЕсли; КонецЕсли; КонецПроцедуры Процедура УдалитьПолучателя() Если СписокПолучателей.РазмерСписка()>0 Тогда СписокПолучателей.УдалитьЗначение(СписокПолучателей.ТекущаяСтрока()); КонецЕсли; КонецПроцедуры Процедура Установить() сз = СоздатьОбъект("СписокЗначений"); стр = ""; Для й=1 По СписокПолучателей.РазмерСписка() Цикл сз.ДобавитьЗначение(СокрЛП(СписокПолучателей.ПолучитьЗначение(й).Код)); стр = стр + ?(стр="", СокрЛП(СписокПолучателей.ПолучитьЗначение(й).Наименование), РазделительСтрок+СокрЛП(СписокПолучателей.ПолучитьЗначение(й).Наименование)) КонецЦикла; Конт.СписКонтрагентов = сз.ВСтрокуСРазделителями(); Форма.Закрыть(); КонецПроцедуры Процедура ОчиститьПоля() СписокПолучателей.УдалитьВсе(); КонецПроцедуры Процедура ПриОткрытии() Конт = ПолучитьПустоеЗначение(); Если ПустоеЗначение(Форма.Параметр)=0 Тогда Конт = Форма.Параметр; сз = СоздатьОбъект("СписокЗначений"); К = СоздатьОбъект("Справочник.Контрагенты"); сз.ИзСтрокиСРазделителями(Конт.текущийДокумент().СписКонтагентов); Для й=1 По сз.РазмерСписка() Цикл ч = Число(сз.ПолучитьЗначение(й)); Если (ч>0) и (К.НайтиПоКоду(ч)=1) Тогда СписокПолучателей.ДобавитьЗначение(К.ТекущийЭлемент()); КонецЕсли; КонецЦикла; Иначе Сообщить("Обработку можно вызывать только из контекста!"); СтатусВозврата(0); Возврат; КонецЕсли; КонецПроцедуры
1С Справочник v0.02 © 2007-2024 Igor Salnikov aka SunDoctor