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

Подчиненный справочник

Автор k281092, 20 ноя 2014, 20:35

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

k281092

Очень нужен совет! Есть справочник "Бюджет за месяц" и подчиненный ему справочник "Статьи расхода". Необходима проверка, чтоб несколько раз не повторялась одна и та же статья! Создала процедуру проверки, но она не работает - Могу одну строку повторять бесконечно и программа не ругается! Прогоняю пошагово и понимаю, что при добавлении нового элементата в подчиненный справочник у него изначально не назначается Владелец. Когда пересохраняю элемент владелец выводится! Подскажите в чем ошибка, пожалуйста! Заранее спасибо!


Процедура Проверка()
Стат=СоздатьОбъект("Справочник.СтатьиРасхода");
Стат.ИспользоватьВладельца(ТекущийЭлемент().Владелец);

Стат.ВыбратьЭлементы();           
Пока Стат.ПолучитьЭлемент()<>0 Цикл
Если Стат.Наименование=Наим Тогда //Наим - поле ввода на форме
Предупреждение ("Данная статья уже прописана");
СтатусВозврата(0);
Прервать;
КонецЕсли;
КонецЦикла;
КонецПроцедуры

Herby

думается в этом проблема:

ЦитироватьСтат.ИспользоватьВладельца(ТекущийЭлемент().Владелец);

Получается что вы используете владельца владельца...


  Стат.ИспользоватьВладельца(ТекущийЭлемент());


k281092

Нет, проблема не в этом(

Herby

Цитата: k281092 от 21 ноя 2014, 11:11Нет, проблема не в этом(

в любом случае параметр "ТекущийЭлемент().Владелец" был неправильный.

если я правильно понял - у вас в цикле добавляются подчиненные элементы и вы их же пытаетесь проверить?

ну это наверное логично... хотя это надо проверить.
Методы ИспользоватьВладельца()/ВыбратьЭлементы() - скорее всего открывают выборку на момент выполнения
этих методов, и добавленные новые элементы в эту выборку не попадают..



Добавлено: 21 ноя 2014, 11:35


Цитата: k281092 от 20 ноя 2014, 20:35Стат.Наименование=Наим

и это проверку я бы проверял бы так:

нРег(сокрЛП(Стат.Наименование))= нРег(сокрЛП(Наим ))




k281092

Спасибо большое, я попробую!

k281092

В справочник-Владельце процедура
Процедура Статьи()
Перем КонтСтат;
КонтСтат=ТекущийЭлемент();
ОткрытьФорму("Справочник.Статьи расхода",КонтСтат);
КонецПроцедуры //Статьи()


А в подчиненном справочнике процедура
Процедура ПриОткрытии()
Парам=Форма.Параметр;
Если ПустоеЗначение(Парам)=0 Тогда
ИспользоватьВладельца(Парам);
КонецЕсли;
КонецПроцедуры


Но параметр не передается( Кто подскажет почему???

Herby

k281092, подчиненный справочник открывается? попробуйте что нибудь другое
передать, число например, и в отладчике гляньте передается или нет.

Теги:

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

Рейтинг@Mail.ru

Поиск