Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 19:54

Помогите разобраться со списком значение

Автор _max_, 11 ноя 2013, 09:08

0 Пользователей и 1 гость просматривают эту тему.

_max_

Добрый день! Помогите разобраться, на форме есть список где из этого списка выбираются контрагенты из справочника, как сделать чтобы он выводил в печатную форму название контрагентов, которые выбираются из этого списка. 1с 7.7

Herby

этот список что из себя представляет? это реквизит типа Справочник "Контрагенты" или СписокЗначений который в коде заполняется?

_max_

Цитата: Herby от 11 ноя 2013, 10:24
этот список что из себя представляет? это реквизит типа Справочник "Контрагенты" или СписокЗначений который в коде заполняется?
//обработка нажатия на кнопку добавить дилера
Процедура ВыбратьДилера(Реж)
   Перем Дил;
   Перем Тек;
   Если ВыбДилер.РазмерСписка()>0 Тогда
      Тек=ВыбДилер.ПолучитьЗначение(ВыбДилер.ТекущаяСтрока());
   КонецЕсли;
   ОткрытьПодбор("Справочник.Контрагенты",,Дил,Реж,Тек);
   Дил.ВыборГруппы(0); 
КонецПроцедуры//ВыбратьФирму   

Процедура ОбработкаПодбора(ЗначПод)
   Если ЗначПод.Вид()= "Контрагенты" тогда
      Если (ВыбДилер.НайтиЗначение(ЗначПод)=0) Тогда
         ВыбДилер.ДобавитьЗначение(ЗначПод);
         ВыбДилер.ТекущаяСтрока(ВыбДилер.РазмерСписка());
      Иначе
         Сообщить("Этот дилер уже выбран!");
      КонецЕсли;
   КонецЕсли;
КонецПроцедуры

Herby

ну насколько я понял у вас на форме есть список значений, в который добавляется один и более контрагентов, судя по коду идентификатор этого списка "ВыбДилер", тогда вот приблизительный код:


пКонтрагенты = "";
Для сч = 1 ВыбДилер.РазмерСписка() Цикл
  знКонтрагент = ВыбДилер.ПолучитьЗначение(сч);
  пКонтрагенты = пКонтрагенты + знКонтрагент.Наименование + ", ";
КонецЦикла;

// удаление концевой запятой
пКонтрагенты = Лев(пКонтрагенты,СтрДлина(пКонтрагенты)-2);


ну а далее переменную пКонтрагенты - поместите в макет печатной формы, в нужную вам секцию.



_max_

Цитата: Herby от 11 ноя 2013, 11:45
ну насколько я понял у вас на форме есть список значений, в который добавляется один и более контрагентов, судя по коду идентификатор этого списка "ВыбДилер", тогда вот приблизительный код:


пКонтрагенты = "";
Для сч = 1 ВыбДилер.РазмерСписка() Цикл
  знКонтрагент = ВыбДилер.ПолучитьЗначение(сч);
  пКонтрагенты = пКонтрагенты + знКонтрагент.Наименование + ", ";
КонецЦикла;

// удаление концевой запятой
пКонтрагенты = Лев(пКонтрагенты,СтрДлина(пКонтрагенты)-2);


ну а далее переменную пКонтрагенты - поместите в макет печатной формы, в нужную вам секцию.
А помогите еще как сделать чтобы, в списке значений, запоминались выбранные контрагенты, при закрытие формы....

Herby

Цитата: _max_ от 11 ноя 2013, 14:52А помогите еще как сделать чтобы, в списке значений, запоминались выбранные контрагенты, при закрытие формы....

стандартными средствами никак. Стандартная функция Сохранение настроек, по-моему, не работает для списка значений.

а не стандартными средствами - слишком заморочно... это вам нужно при каждом закрытии сохранять список в формате *.dat на диске, а при открытии из этого файла загружать в ваш список, для этого используйте функции ЗначениеВФайл() и ЗначениеИзФайла().

start2000

Вроде список значений можно сохранить в настройках.
Например в Торговле и складе отчете ОтчетПоПродажамТМЦ есть список "Группировки".
При формировании отчета он запоминается в Расшифровке:
Расшифровка.Установить("Группировки", Группировки);
А при открытии отчета восстанавливается из сохраненных настроек:
глРасшифровка.Получить("Группировки").Выгрузить(Группировки);
Из-за этого бывают проблемы. Если при доработке отчета были добавлены новые группировки, то они не появятся в списке, пока не удалишь предыдущие сохраненные настройки.
если помог, то смело жми Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск