Ітак, є док-и
ПродажаТоваров и
ЗаявкаНаТранспорт.
ЗаявкаНаТранспорт формується на основі
ПродажаТоваров. Причому, якщо сума в
ПродажаТоваров >= 1000 є можливість (через запитання) формувати док-т
ЗаявкаНаТранспорт.
Код в док-ті
ПродажаТоваров:
&НаСервере
Функция ЗаявкаНаТранспорт()
НовДок = Документы.ЗаявкаНаТранспорт.СоздатьДокумент();
//НовДок.ДатаДоставки = ДатаЗаявки;
НовДок.Дата = ТекущаяДата();
НовДок.Контрагент = Объект.Контрагент;
Для каждого Стр Из Объект.Контрагент.КонтактныеЛица Цикл
Тел = Стр.Телефон;
Контакт = Стр.Контакт;
Прервать;
КонецЦикла;
НовДок.КонтактноеЛицо = Контакт;
НовДок.Телефон = Тел;
НовДок.СвязьИзПродажаТоваров = Объект.Ссылка;
//Для Каждого ТекСтрока Из Товары Цикл
// СтрДок = НовДок.Товары.ДобавитьСтроку();
// СтрДок.Номенклатура = ТекСтрока.Номенклатура;
// СтрДок.Серия = ТекСтрока.Серия;
// СтрДок.ЕдиницаИзмерения = ТекСтрока.ЕдиницаИзмерения;
// СтрДок.Цена = ТекСтрока.Цена;
// СтрДок.Количество = ТекСтрока.Количество;
// СтрДок.Сумма = ТекСтрока.Сумма;
//КонецЦикла;
НовДок.Записать();
ФормаЗаявки = НовДок.ПолучитьФорму("Документ.ЗаявкаНаТранспорт.Форма.ФормаДокумента");
ФормаЗаявки.Открыть();
Возврат 1;
КонецФункции
&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
Отказ = Ложь;
Если Объект.Товары.Итог("Сумма") > 1000 Тогда
Отказ = Истина;
Если Вопрос("Есть возможность бесплатной доставки - документ ""Заявка на транспорт""!", РежимДиалогаВопрос.ДаНетОтмена) =
КодВозвратаДиалога.Да Тогда
//ВвДата = ТекущаяДата();
//Подсказка = "Введите дату и время доставки товара";
//ЧастьДаты = ЧастиДаты.ДатаВремя;
//Если ВвестиДату(ВвДата, Подсказка, ЧастьДаты) Тогда
// ЗаявкаНаТранспорт(ВвДата);
//Иначе
//ЗаявкаНаТранспорт(ТекущаяДата());
ЗаявкаНаТранспорт();
//ФормаЗаявки = ПолучитьФорму("Документ.ЗаявкаНаТранспорт.Форма.ФормаДокумента");
//ФормаЗаявки = Док.ПолучитьФорму();
Отказ = Ложь;
//КонецЕсли;
Иначе
Отказ = Ложь;
КонецЕсли;
Иначе
Отказ = Ложь;
КонецЕсли;
КонецПроцедуры
В модуле док-у
ЗаявкаНаТранспорт - код:
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
//{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПродажаТоваров") Тогда
// Заполнение шапки
СтандартнаяОбработка = Ложь;
//Контрагент = ДанныеЗаполнения.Контрагент;
//СвязьИзПродажаТоваров = ДанныеЗаполнения.Ссылка;
КонецЕсли;
//}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
Чомусь при відкритті док-у
ЗаявкаНаТранспорт (форми), із док-у
ПродажаТоваров (програмно) не видно заповнених реквізитів (
Контрагент,
СвязьИзПродажаТоваров в відлагоджувачі вони заповненні). Хоча при перевідкритті док-у
ЗаявкаНаТранспорт, всі реквізити заповненні. Підозрюю, що при програмному відкритті док-у
ЗаявкаНаТранспорт дані із серверу ще не попали на клієнт.
Як бути? Як відкривати форму в цьому випадку?
І взагалі - відкрити форму вже існуючого об'єкту?
Дякую за відгуки.