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

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

Автор Восходящий, 18 мая 2014, 22:05

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

Восходящий

Не могу понять, куда добавить эти строки. Натыкаюсь на переменная не определена. Определяю - не заполняется поле в печатной форме. Понимаю, что код рабочий, но не понимаю, где он должен стоять

cska-fanat-kz

хоть код приведите что ли... где ругается.
а то разговор глухого со слепым...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Восходящий

Я не знаю, куда и как правильно вставлять ваш код. Подскажите, пожалуйста. Просто в модуль между Процедура() и КонецПроцедуры или в менеджера добавлять... Конфигурация УНФ без изменений, только добавлены реквизиты в документы к стандартным и добавлена форма к стандартным

cska-fanat-kz

конфиги такой нет под рукой ибо Казахстан ;)

не проще спецов по 1С вызвать? они вам это за пару секунд сделают...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Восходящий

Из-за 1 поля спецов вызывать не удобно) к тому же думаю не суть в конфигурации, а в месте, где должен работать этот код присвоения. Если его добавлять в модуль формы, то приведу код, на что ругается, если в менеджере, то куда добавлять, в процедуру создания данных заполнения макета или отдельную процедуру создать?

cska-fanat-kz

создайте тестовую печатную форму этого документа конструктором печати - увидите, как типовым образом все устроено: где располагается код и т.д.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Восходящий

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

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Шапка = Макет.ПолучитьОбласть("Шапка");
ТабДок.Очистить();

ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;

ТабДок.Вывести(ОбластьЗаголовок);

Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());

ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
//}}
КонецПроцедуры


А нужно, чтобы запрос выбирался не из реквизита КлиентТелефон в Документы-ЗаказПокупателя, а из реквизита НомерТелефона В Справочники-Контрагенты-Таблица КонтактнаяИнформация

cska-fanat-kz

вот это

Шапка.Параметры.Заполнить(Выборка);     
ТабДок.Вывести(Шапка, Выборка.Уровень());


замените на
Шапка.Параметры.Заполнить(Выборка);
Шапка.Параметры.КлиентТелефон = Выборка.Контрагент.КонтактнаяИнформация[0].НомерТелефона;
ТабДок.Вывести(Шапка, Выборка.Уровень());
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

SERG30RUS

Всем доброго дня. Имею печатную форму которая формируется из документа ВыписатьСчет. Получил задачу - добавить параметр в печатную форму, который будет "тянуть" информацию из Справочника Контрагенты из реквизита "ВсеРеквизитыСтрокой".
Области созданы, параметр - ВсеРеквизиты создал....но переменная не определяется.Прошу помощи у знатоков!

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

   ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
   Шапка = Макет.ПолучитьОбласть("Шапка");   
   ОбластьПереченьНоменклатурыШапка = Макет.ПолучитьОбласть("ПереченьНоменклатурыШапка");
   ОбластьПереченьНоменклатуры = Макет.ПолучитьОбласть("ПереченьНоменклатуры");
   ОбластьИтог = Макет.ПолучитьОбласть("ОбластьИтог");
   Всего = Макет.ПолучитьОбласть("Всего");
   Подвал = Макет.ПолучитьОбласть("Подвал");

   
   ТабДок.Очистить();

   ВставлятьРазделительСтраниц = Ложь;
   Пока Выборка.Следующий() Цикл
      Если ВставлятьРазделительСтраниц Тогда
         ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
      КонецЕсли;

      ТабДок.Вывести(ОбластьЗаголовок);
      Шапка.Параметры.Заполнить(Выборка);
      
      Шапка.Параметры.ВсеРеквизиты = Контрагент.ВсеРеквизиты;
      
      Шапка.Параметры.Дата = Формат(Выборка.Дата, "ДЛФ=DD; ДП='Нет даты'");
      
      ТабДок.Вывести(Шапка, Выборка.Уровень());
      ТабДок.Вывести(ОбластьПереченьНоменклатурыШапка);
      ВыборкаПереченьНоменклатуры = Выборка.ПереченьНоменклатуры.Выбрать();
      СуммаИтог = 0;
      Пока ВыборкаПереченьНоменклатуры.Следующий() Цикл
         ОбластьПереченьНоменклатуры.Параметры.Заполнить(ВыборкаПереченьНоменклатуры);
         ТабДок.Вывести(ОбластьПереченьНоменклатуры, ВыборкаПереченьНоменклатуры.Уровень());
         
      СуммаИтог = СуммаИтог + ВыборкаПереченьНоменклатуры.Сумма;
            КонецЦикла;
            
      ОбластьИтог.Параметры.ВсегоПоДокументу = СуммаИтог;
      ТабДок.Вывести(ОбластьИтог);
      
      Всего.Параметры.Заполнить(Выборка);
      ТабДок.Вывести(Всего);
      ТабДок.Вывести(Подвал);

      ВставлятьРазделительСтраниц = Истина;
   КонецЦикла;
   
КонецПроцедуры

Теги:

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

Рейтинг@Mail.ru

Поиск