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

Изменения автоматического заполнение элемента формы справочника

Автор dima-irk38, 09 окт 2011, 20:18

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

dima-irk38

Доврого времени суток :)
Вот, проблемка возникла :(
Имеется 1С:Предприятие 7.7 Континет Страхование. Имеется справочник Договора Страхования, где при создании
новой записи, появляется форма Рис. 1. На форме есть элемент ВидСтрахования (справочник ВидыСтрахования), когда возникает событие ПриВыборе
(т.е пользователь выбирает ВидСтрахования) в поле ВидБланка (сверху) автоматически появляется вид бланка (Справочник БланкиСтрогойОтчетности).
Задача такова: Изменить значение в элементе ВидБланка, при выборе определенного Вида Страхования. (т.е было
грузы, изменить в пример на строения).
Элемент ВидБланка имеет 2-ве функции (сыбытия) Рис.2 : 1. Комиссия() 2. ПриИзмВС().
Проанализировав код в процедуре ПриИзмВС(), нашел похожие на мой взгляд строки кода, которые могуг "подставлять"
значения элемента ВидБланка, но к сожалению данного кода я не понял его принцип :( Откуда же выбираются ВидыБланка.
Прошу помощи :)

Процедура ПриИзмВС();
Если ВидСтрахования.Выбран()=0 Тогда
Возврат
КонецЕсли;

СпрПодч=СоздатьОбъект("Справочник.ВС_ВидыБланков");
СпрПодч.ИспользоватьВладельца(ВидСтрахования);
СпВид=СоздатьОбъект("СписокЗначений");

СпрПодч.ВыбратьЭлементы();
Пока СпрПодч.ПолучитьЭлемент()=1 Цикл
Если СпрПодч.ПометкаУдаления()=0 Тогда
СпВид.ДобавитьЗначение(СпрПодч.ВидБланка);
КонецЕсли;
КонецЦикла;

Если СпВид.РазмерСписка()=1 Тогда
ВидБланка=СпВид.ПолучитьЗначение(1);
ИначеЕсли СпВид.РазмерСписка()>0 Тогда
ВБ=0;
Если СпВид.ВыбратьЗначение(ВБ,"Выберите вид бланка",,,0)=1 Тогда
ВидБланка=ВБ;
КонецЕсли;
КонецЕсли;

sergejK74

Судя по коду виды бланков хранятся в спр-ке ВС_ВидыБланков, подчиненному справочнику ВидыСтрахования (или еще как-то так. можно увидеть на закладке Тип рис.2). Т.к. у Грузы один подчиненный элемент, то он и подставляется автоматом. Если бы были еще элементы, то появлялось бы окно выбора где можно было бы выбрать Грузы или Здания
Кнопочка Спасибо - слева!

Андрей Федотов

Но в Вашем случае Вам нужно смотреть процедуры реквизита "ВидСтрахования", т.к. вы хотите изменить вид бланка именно при изменении вида страхования.

dima-irk38

Появилось свободное время. :) Да, действительно есть справочник ВС_ВидыБланков и он подчинен справочнику ВидыСтрахования. Рис 1. но этот справочник в режиме 1С:Предприятия является пустым :( Рис 2.
Запутался, однако!

Вот, в этой части кода он формирует список видов бланков из справочника ВС_ВидыБланков, но не учитывает элементы с пометкой на удаления.
СпрПодч.ВыбратьЭлементы();
Пока СпрПодч.ПолучитьЭлемент()=1 Цикл
Если СпрПодч.ПометкаУдаления()=0 Тогда
СпВид.ДобавитьЗначение(СпрПодч.ВидБланка);
Тут он добавляет элементы в список
КонецЕсли;
КонецЦикла;


Далее, проверяем есть ли в списке значения и если есть заполняем реквизит каким-то непонятным значением, откуда оно!?
Если СпВид.РазмерСписка()=1 Тогда
ВидБланка=СпВид.ПолучитьЗначение(1);


Это я понимаю в случаи если не нашелся бланк.
ИначеЕсли СпВид.РазмерСписка()>0 Тогда
ВБ=0;
Если СпВид.ВыбратьЗначение(ВБ,"Выберите вид бланка",,,0)=1 Тогда
ВидБланка=ВБ;
КонецЕсли;


sergejK74

Обрати внимание на заголовок окна на второй картинке - Не задан элемент - владелец.
Открой справочник Виды страхования (можешь третьей кнопкой справа).
Кнопочка Спасибо - слева!

Теги:

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

Рейтинг@Mail.ru

Поиск