Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Метод ввода на основании документа
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
MsDjuice
Привет, форумчане. У меня есть Документ1, есть возможность ввода на основании, на основании Документа1 вводится Документ2. На панели "Действия Формы" расположена кнопка, ее действие выбрал из стандартных вариантов "(Ввод на основании)". Но теперь нужно на эту кнопку поставить вопрос с ответом "Да\Нет". После ответа на вопрос делается соответствующий вариант ввода на основании. На сколько я понимаю, нужно поставить процедурку на кнопку с вызовом вопроса и вызовом метода ввода на основании. Как называется или как обратится или где найти название этого метода? Спасибо за внимание.
Vofka
В модуле объекта есть соответствующее событие, называется ОбработкаЗаполнения.
MsDjuice
Цитата(Vofka @ 15.01.13, 11:40) необходимо зарегистрироваться для просмотра ссылки
В модуле объекта есть соответствующее событие, называется ОбработкаЗаполнения

Но это в Документе2, а мне нужно обращатся к процедуре в Документе1
ignsv
В обработке заполнения Документа2 в начале пишите Вопрос, и потом после ответа определяете вариант заполнения
MsDjuice
Цитата(ignsv @ 15.01.13, 11:48) необходимо зарегистрироваться для просмотра ссылки
В обработке заполнения Документа2 в начале пишите Вопрос, и потом после ответа определяете вариант заполнения

Тогда пойдем глубже. В документе1 есть ТЧ. Если ответ "Да", Документ2 будет с такой же ТЧ, если "Нет", будет столько документов2, сколько строк в ТЧ Документа1.
Vofka
MsDjuice, а теперь ещё раз, с чувством, с толком, с расстановкой, вслух читаем ответ мой и ignsv. Что непонятно?
pablo
MsDjuice, с таким подходом к задаче рискуете нарваться на несколько граблей в процессе реализации, но как образец можете посмотреть указанную выше процедуру в документе РегистрацияВходящегоНалоговогоДокумента.
Petre
Цитата(MsDjuice @ 15.01.13, 10:54) необходимо зарегистрироваться для просмотра ссылки
Тогда пойдем глубже. В документе1 есть ТЧ. Если ответ "Да", Документ2 будет с такой же ТЧ, если "Нет", будет столько документов2, сколько строк в ТЧ Документа1.

Ну и что это меняет? Если "да" - создаем, если "нет" - СтандартнаяОбработка = Ложь и создаем програмно кучу документов тут же, либо в общем модуле.
MsDjuice
Цитата(Petre @ 15.01.13, 12:39) необходимо зарегистрироваться для просмотра ссылки
Ну и что это меняет? Если "да" - создаем, если "нет" - СтандартнаяОбработка = Ложь и создаем програмно кучу документов тут же, либо в общем модуле.

В принципе все получилось, спасибо, но в варианте с созданием нескольких экземпляров документа2 показывается еще одна форма документа2, та которая должна показаться после ввода на основании. Как её програмно закрыть? Она генерится после метода ОбработкаЗаполнения()

СтандартнаяОбработка = Ложь не помогает, так как форма все равно открывается
alex040269
У формы есть ПередОткрытием.
В процедуре ОбработкаЗаполнения установить переменную объекта, а в форме его проанализировать.
pablo
Как вариант: создать на форме списка документа1 2 кнопки - создать 1 документ2 и создать несколько документов2. И в каждой кнопке реализовать необходимые действия с учетом текущей строки списка документов.
zay
Цитата(pablo @ 15.01.13, 11:35) необходимо зарегистрироваться для просмотра ссылки
с таким подходом к задаче рискуете нарваться на несколько граблей в процессе реализации

а вот собственно и они...
Цитата(MsDjuice @ 15.01.13, 14:56) необходимо зарегистрироваться для просмотра ссылки
в варианте с созданием нескольких экземпляров документа2 показывается еще одна форма документа2, та которая должна показаться после ввода на основании. Как её програмно закрыть?


Этого делается отдельной обработкой: "Групповое формирование документа №2 по данным ТЧ документа №1". А у "ввод на основании" несколько другая функция. При "вводе на основании" на основании документа №1 должен создаватся только один документ №2.
MsDjuice
Цитата(pablo @ 15.01.13, 16:16) необходимо зарегистрироваться для просмотра ссылки
Как вариант: создать на форме списка документа1 2 кнопки - создать 1 документ2 и создать несколько документов2. И в каждой кнопке реализовать необходимые действия с учетом текущей строки списка документов.

Об этом я спрашивал сначала. Как обратится к методу ввода на основании?



Цитата(alex040269 @ 15.01.13, 16:14) необходимо зарегистрироваться для просмотра ссылки
У формы есть ПередОткрытием.
В процедуре ОбработкаЗаполнения установить переменную объекта, а в форме его проанализировать.

Спасибо, реализовал ПередОткрытием так:
Если ЭтоНовый() И ЗначениеЗаполнено(ПараметрОснование) Тогда
        Отказ = Истина;    
    КонецЕсли;


Цитата(zay @ 15.01.13, 16:24) необходимо зарегистрироваться для просмотра ссылки
Этого делается отдельной обработкой: "Групповое формирование документа №2 по данным ТЧ документа №1".

Буду признателен за подробное описание сего
zay
Цитата(MsDjuice @ 15.01.13, 15:27) необходимо зарегистрироваться для просмотра ссылки
Буду признателен за подробное описание сего


Создаете обработку.
Реквизит обработки - ссылка на документ №1.
ТЧ обработки = ТЧ документа №1 (только те реквизиты, которые нужны для формирования документа №2) + ссылка на документ №2
Заполнить ТЧ обработки - заполняется из ТЧ документа №1 (реквизит обработки)
Сформировать - формируются документы №2 на основании данных ТЧ обработки, после записи документа №2 - ссылка на него устанавливается в ТЧ обработки
Можно предусмотреть открытие формы конкретного документа №2 (например ТекущаяСтрока ТЧ обработки)
Можно предусмотреть запус обработки из контекстного меню формы списка документа №1, при этом заполнять реквизит обработки - ссылка на документ №1
pablo
А зачем там использовать "метод ввода на основании". Пишете все заполнение реквизитов с чистого листа smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.