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

Передача значения

Автор Дмитрий11, 20 окт 2023, 11:42

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

antoneus

В какой процедуре вызываете, не с директивой &НаСерере случаем?

Дмитрий11

antoneus, Именно там, писать в процедуру При открытии на Клиенте?

Дмитрий11

ФормаДокументаОбщая=ПолучитьФорму("Документ.ОбщепитРецептура.Форма.ФормаДокументаОбщая");
ДатаФормирования=ФормаДокументаОбщая.Объект.Дата ;

Написал в процедуре При открытии На клиенте, работает, но дата ставится текущая, как будто создает новую форму (пустую) и с нее читает, а не с текущей.


Нажимаю на кнопку "Печать" вываливается форма с Параметрами, вот там поле Дата, необходимо чтобы совпадало с полем Дата в документе

antoneus

Да блин) Слева от знака равно ставится то, чему присваивается значение справа.

ФормаДокументаОбщая.Объект.Дата = ДатаФормирования;

Дмитрий11

antoneus, Ну так все верно ДатаФормирование-это объект на второй форме(которая открывается по кнопке печать),ему нужно присвоить значение объекта с формы которую получаем ФормаДокументаОбщая

antoneus

Нет, вообще все не так. Вторая форма открывается из первой? Код открытия покажите.

Дмитрий11

antoneus, Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Заголовок = "КАЛЬКУЛЯЦИОННАЯ КАРТОЧКА ";

Подразделение = БухгалтерскийУчетПереопределяемый.ПолучитьЗначениеПоУмолчанию("ОсновноеПодразделениеОрганизации");
ТипЦен = БухгалтерскийУчетПереопределяемый.ПолучитьЗначениеПоУмолчанию("ОсновнойТипЦенПродажи");
РассчитываемоеКоличество = 1;
НеИспользоватьСезонныеПроценты = Константы.ОбщепитНеИспользоватьСезонныеПроценты.Получить();
ДатаФормирования = Датадокумента();
РецептурнаяЕдиница = 1;

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТипыЦен.Ссылка
|ИЗ
| Справочник.ТипыЦенНоменклатуры КАК ТипыЦен
|ГДЕ
| ТипыЦен.ПометкаУдаления = ЛОЖЬ";

СписокТипЦен = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
Элементы.ТипЦен.СписокВыбора.ЗагрузитьЗначения(СписокТипЦен);

Если ТипЗнч(Параметры.МассивОбъектов) = Тип("Массив") Тогда
// Определим блюдо из документа рецептуры
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("МассивОбъектов", Параметры.МассивОбъектов);
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 2
| ОбщепитРецептура.Номенклатура
|ИЗ
| Документ.ОбщепитРецептура КАК ОбщепитРецептура
|ГДЕ
| ОбщепитРецептура.Ссылка В(&МассивОбъектов)";

Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество()=1 Тогда
Если Выборка.Следующий() Тогда
Блюдо = Выборка.Номенклатура;

// Определим количество блюда и дату из документа рецептуры
Запрос.УстановитьПараметр("Номенклатура", Выборка.Номенклатура);
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ОбщепитРецептура.Номенклатура,
| ОбщепитРецептура.Количество,
| ОбщепитРецептура.ЕдиницаИзмерения,
| ВЫБОР
| КОГДА Константы.ОбщепитСпособРасчетаРецептур = ЗНАЧЕНИЕ(Перечисление.ОбщепитСпособРасчетаРецептур.ПоАктуальнойРецептуре)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ОбщепитРецептура.Основная
| КОНЕЦ КАК Основная
|ИЗ
| Документ.ОбщепитРецептура КАК ОбщепитРецептура,
| Константы КАК Константы
|ГДЕ
| ОбщепитРецептура.Ссылка В(&МассивОбъектов)
| И ОбщепитРецептура.Номенклатура = &Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| Основная УБЫВ,
| Дата УБЫВ
|АВТОУПОРЯДОЧИВАНИЕ";

Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
РассчитываемоеКоличество = Выборка.Количество;
ЕдиницаИзмерения = Выборка.ЕдиницаИзмерения;
КонецЕсли;
КонецЕсли;

ИначеЕсли Выборка.Количество()=0 Тогда
Блюдо = "(нет блюд приготовления)";
Иначе
Блюдо = "(несколько блюд)";
КонецЕсли;

Иначе
Блюдо = "(не выбраны документы)";
КонецЕсли;

ФормироватьСуммыКалькуляцииПоСтоимостиОстатков = БухгалтерскийУчетПереопределяемый.ПолучитьЗначениеПоУмолчанию("ФормироватьСуммыКалькуляцииПоСтоимостиОстатков");
Элементы.НадписьСебестоимостьПоЦенам.Видимость    = НЕ ФормироватьСуммыКалькуляцииПоСтоимостиОстатков;
Элементы.НадписьСебестоимостьПоОстаткам.Видимость = ФормироватьСуммыКалькуляцииПоСтоимостиОстатков;

Да вторая открывается по кнопке печать из первой формы

antoneus

нет, код открытия второй формы

Дмитрий11

antoneus, Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт

КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "ОбщепитОП1_СПараметрами";
КомандаПечати.Представление = НСтр("ru = 'Калькуляционная карточка ОП-1 (печать с параметрами)'");
КомандаПечати.Обработчик    = "ОбщепитДокументыКлиент.ВыполнитьКомандуПечатиСПараметрами";
КомандаПечати.Порядок       = 2;




Я так понимаю это здесь

Дмитрий11

antoneus, Дальше так Функция ВыполнитьКомандуПечатиСПараметрами(ОписаниеКоманды) Экспорт

// Параметры печати из Рецептруры

ИдентификаторКоманды = Неопределено;
Если ОписаниеКоманды.Свойство("Идентификатор") Тогда
ИдентификаторКоманды = ОписаниеКоманды.Идентификатор;
КонецЕсли;

ПараметрыФормы = Новый Структура("МассивОбъектов", ОписаниеКоманды.ОбъектыПечати);

ИмяФормыПараметровПечати = "";
Если ИдентификаторКоманды ="ОбщепитОП1_СПараметрами" Тогда
ИмяФормыПараметровПечати = "Документ.ОбщепитРецептура.Форма.ФормаПараметрыПечатиОП1";

ИначеЕсли ИдентификаторКоманды ="ТехКартаРассчитываемая" Тогда
ИмяФормыПараметровПечати = "Документ.ОбщепитРецептура.Форма.ФормаВводаРасчетногоКоличества";

ИначеЕсли ИдентификаторКоманды ="СоставХЭХ" Тогда
ИмяФормыПараметровПечати = "Документ.ОбщепитРецептура.Форма.ФормаПечатиСоставаХЭХ";

// Для печати из Рецептуры, Выпуска продукции и Плана-Меню
ИначеЕсли ИдентификаторКоманды ="ТехТехнолКартаСПараметрами" Тогда
ИмяФормыПараметровПечати = "ОбщаяФорма.ОбщепитФормаТТК";

ИначеЕсли ИдентификаторКоманды ="ОбщепитОП2Параметры" Тогда
ИмяФормыПараметровПечати = "ОбщаяФорма.ОбщепитФормаНастройкиОП2";

ИначеЕсли ИдентификаторКоманды ="ПотребностьВИнгредиентахОбщее" Тогда
ИмяФормыПараметровПечати = "ОбщаяФорма.ОбщепитНастройкиПотребностьВИнгредиентах";
ПараметрыФормы.Вставить("ИмяФормыВладельца", ОписаниеКоманды.Форма.ИмяФормы);

КонецЕсли;

Если ИмяФормыПараметровПечати <> "" Тогда

Оповещение = Новый ОписаниеОповещения("ВыполнитьКомандуПечатиСПараметрамиЗавершение", ЭтотОбъект, ОписаниеКоманды);
ОткрытьФорму(ИмяФормыПараметровПечати, ПараметрыФормы,,,,,Оповещение, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

Иначе

УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати(ОписаниеКоманды);

КонецЕсли;

КонецФункции

Теги:

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

Рейтинг@Mail.ru

Поиск