Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

ОбработкаЗаполнения(<ДанныеЗаполнения>)

ОбработкаЗаполнения(<ДанныеЗаполнения>)
Я
   Mikhail Volkov
 
01.04.18 - 18:05
В документе есть реквизит справочник. В структуру <ДанныеЗаполнения> этого справочника можно документ добавить, как?
 
 
   RomanYS
 
1 - 01.04.18 - 19:30
Переведи.
   Darych
 
2 - 01.04.18 - 19:46
(1)+1 нажрался-спи
   Zhuravlik
 
3 - 02.04.18 - 01:48
ОбъектСправочника.Заполнить(ДокументИлиСтруктураСДаннымиИлиЧтоУгодно);
   Mikhail Volkov
 
4 - 02.04.18 - 04:54
(3) Но где ДокументИлиСтруктураСДаннымиИлиЧтоУгодно указать? Из документа открывается форма списка справочника с заданными параметрами отбора по документу. В форме списка пользователь не нашел ничего подходящего, создает новый элемент. В этот момент хотелось задать свои <ДанныеЗаполнения>, точнее поправить их. Например, Владелец нового элемента справочника присутствует в <ДанныеЗаполнения>, но если он один. А если задан " в списке", то отсутствует в <ДанныеЗаполнения>.
   Mankubus
 
5 - 02.04.18 - 06:15
(4) в событии ПередНачаломДобавления
   Mikhail Volkov
 
6 - 02.04.18 - 15:58
(5) Спс, в спСписокПередНачаломДобавления() не учитывался случай, когда отбор задан списком. Добавил:
//если отбор установлен, будем заполнять реквизиты

Для Каждого ЭлементОтбора Из СписокСправочника.Отбор Цикл
    Если (Не обЗначениеНеЗаполнено(ЭлементОтбора.Значение)) И (ЭлементОтбора.Использование) Тогда
        Если ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке Тогда    //+МВ 02.04.2018 Если отбор задан списком, то преложим выбрать конкретное заначение

            ЗначениеИзСписка = ЭлементОтбора.Значение.ВыбратьЭлемент("Выберите из списка значение '" + ?(ПустаяСтрока(ОбъектМетаданных.Реквизиты.Найти(ЭлементОтбора.Имя)), ЭлементОтбора.Имя, ОбъектМетаданных.Реквизиты.Найти(ЭлементОтбора.Имя)) + "'");
            Если ЗначениеИзСписка <> Неопределено Тогда
                ЭлементОтбора.ВидСравнения = ВидСравнения.Равно;
                ЭлементОтбора.Значение = ЗначениеИзСписка.Значение;
            КонецЕсли;
        КонецЕсли;    //-МВ

        ИмяРеквизита = ЭлементОтбора.Имя;
        Если Найти("Код|Наименование|Владелец",ИмяРеквизита) > 0 Тогда
            НовыйЭлемент[ИмяРеквизита] = ЭлементОтбора.Значение;
            НовыйЭлемент.ОбработкаРеквизита(ИмяРеквизита);  
        Иначе
            Реквизит = ОбъектМетаданных.Реквизиты.Найти(ИмяРеквизита);
        КонецЕсли;
        Если Реквизит = Неопределено Тогда
            Продолжить;
        КонецЕсли;

По сути заменяю в отборе ВидСравнения.ВСписке на Равно, в форме списка справочника, и данные отбора переносятся в создаваемый элемент. Но полноты счастья нужно еще некоторые данные самого документа, которые отсутствуют в отборе.
Как перенести ссылку документа, из которого открывается справочник, в создаваемый элемент этого справочника?
   Вафель
 
7 - 02.04.18 - 16:08
ВладелецФормы
   Mikhail Volkov
 
8 - 02.04.18 - 17:51
(7) Открываю из списка справочника ЭтаФорма.ВладелецФормы - табличное поле, а из документа - ничего!?
   Mikhail Volkov
 
9 - 03.04.18 - 07:43
+ Открываю справочник из документа ЭтаФорма.ВладелецФормы = Неопределено! Как получить ссылку документа, из которого он открыт?
   Mikhail Volkov
 
10 - 03.04.18 - 07:55
(7) ВладелецФормы - это вроде как для подчиненных справочников?
Из справки: Если у формы есть владелец, то в свойстве ЗакрыватьПриЗакрытииВладельца устанавливается необходимость закрытия данной формы при закрытии формы-владельца.
 
 Рекламное место пустует
   Mikhail Volkov
 
11 - 03.04.18 - 11:21
Нарыл Трюки 1С http://catalog.mista.ru/public/199307/ там показан способ передачи способ передачи ссылки документа, но только в форму выбора (списка) справочника:
- в форме документа:
Процедура ДоверенностьНачалоВыбора(Элемент, СтандартнаяОбработка)
    Элемент.Подсказка = Элемент.Подсказка + "$Link$" + ЗначениеВСтрокуВнутр(Ссылка);
КонецПроцедуры

- в форме списка справочника:
Процедура ПриОткрытии()
    Если НЕ спСписокПриОткрытии(ЭтаФорма,,глСтруктураОтбора) Тогда Возврат КонецЕсли;
    //+МВ 02.04.2018 Автомобиль по ссылке заказ-наряда

    ЭлементУправления = ЭтаФорма.ВладелецФормы; 
    ТекстПодсказки = ЭлементУправления.Подсказка; 
    ПозицияСсылки = Найти(ТекстПодсказки, "$Link$"); 
    Если ПозицияСсылки > 0 Тогда 
        ЗаказНаряд = ЗначениеИзСтрокиВнутр(Сред(ТекстПодсказки, ПозицияСсылки + 6)); 
        Автомобиль = ЗаказНаряд.Автомобиль; 
        ЭлементУправления.Подсказка = Лев(ТекстПодсказки, ПозицияСсылки - 1); 
    КонецЕсли;//-МВ

    СправочникСписок.Порядок.Установить("ДатаВыдачи Возр");
    ПоказыватьУстаревшие = Ложь;
    ПоказыватьУстаревшиеПриИзменении(ЭлементыФормы.ПоказыватьУстаревшие);
КонецПроцедуры// ПриОткрытии()


А в форме самого справочника этот способ не работает... Почему?
   Mikhail Volkov
 
12 - 03.04.18 - 16:46
Напрямую в форму справочника не передать ссылку документа, только через форму списка при создании нового элемента справочника?

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует