Автор: jojojoba2 08.10.19, 10:56
Добрый день!
Помогите начинающему программисту и просьба не судить строго))). Я изучаю программирование в 1С 8 . Поставили задачу по 1с 7.7 Предприятие (Бухгалтерский учет по Украине) - доработать печатную форму документа счет-фактура. Начал разбиратся и увидел что 7 очень сильно отличается от 8. Есть внешний макет каторый лежит в \1cv77_db\Management\ExtForms\PrnForms SF3_ukr.mxl. В печатной форме нужно вывести р/р и банк контрагента. В документе счет-фактура нашел процедуру ПЕЧАТЬ
КодПроцедура Печать()
//----
Ф=_глПолучитьИмяФайлаПечатнойФормы("SF3",Метаданные.Документ(Вид()).Представление());
ЕстьСкидка = 1;
фУкр = ?(Константа.ФормыНаУкраинском = Да, 1, 0);
Если (Константа.ИспользоватьСкидку<>Да) Или (ЧтоПродаем<>Перечисление.ЧтоПродаем.ТМЦ) Тогда
ЕстьСкидка = 0;
КонецЕсли;
Таб = СоздатьОбъект("Таблица");
Если ПустоеЗначение(Ф)=0 Тогда
Таб.ИсходнаяТаблица(КаталогИБ()+"ExtForms\PrnForms\"+Ф);
Иначе
Таб.ИсходнаяТаблица("Таблица"+?(Константа.ФормыНаУкраинском = Да,"_Укр",""));
КонецЕсли;
Если Заказ.Выбран() = 1 Тогда
Номер = Заказ.НомерДок;
Если Заказ.Вид() = "Договор" Тогда
Если ПустоеЗначение(Заказ.НомерДоговора) = 0 Тогда
Номер = Заказ.НомерДоговора;
КонецЕсли;
КонецЕсли;
тЗаказ = глУкр(Заказ.ПредставлениеВида()) + " № " +СокрЛП(Номер) + ?(фУкр = 1, " від "," от ") + Заказ.ДатаДок;;
Иначе
тЗаказ = ?(фУкр = 1,"Без замовлення","Без заказа");
КонецЕсли;
глУстПропись(Валюта);
Таб.ВывестиСекцию("Шапка");
Ном = 1;
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
ЕдИзм = ?(ТМЦ.Вид()="ТМЦ",Ед,ТМЦ.БазЕдиница);
Таб.ВывестиСекцию("Строка");
Если ФКомп = 1 Тогда
СпрКомп = СоздатьОбъект("Справочник.СоставКомплекта");
СпрКомп.ИспользоватьВладельца(ТМЦ);
СпрКомп.ВыбратьЭлементы();
Пока СпрКомп.ПолучитьЭлемент() = 1 Цикл
Таб.ВывестиСекцию("Составляющая");
КонецЦикла;
КонецЕсли;
Ном = Ном+1;
КонецЦикла;
Если ЕстьСкидка=1 Тогда
Таб.ВывестиСекцию("Скидка");
КонецЕсли;
Если (ВидНДС.Код = "БезНДС") Тогда
Таб.ВывестиСекцию("БезНДС");
Иначе
Таб.ВывестиСекцию("ДноНДС");
КонецЕсли;
Таб.ВывестиСекцию("Дно");
Таб.Защита(Константа.ФлагЗащитыТаблиц);
Таб.ТолькоПросмотр(1);
Таб.Опции(0,0,,);
Таб.Показать("ПЕЧАТЬ: Счет-фактура","");
КонецПроцедуры
Я не могу понять где в коде и в каких модулях выводятся параметры и шаблоны печатной формы каторые есть на форме . Где код с запросами по выводу данных. Искал во всех модулял в конфигурации,не нашел. Может есть какой-то внешний модуль?Где он может находиться? Как правильно в 1с7.7 прописать новый параметр в коде?
Помогите разобраться.Если можно скиньте примеры или какую-то инструкцию. Смотрел видео - там редактируют печатную форму вместе с макетом и с модулем *.ert . У меня внешний только макет *.xml.
Заранее спасибо.
! |
| https://pro1c.org.ua/index.php?act=announce&id=2: 9
|
Автор: nik389 08.10.19, 11:19
так а что тут непонятного?
тут нет запроса, идет перебором
вот тут цикл, перебираются строки документа:
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
ЕдИзм = ?(ТМЦ.Вид()="ТМЦ",Ед,ТМЦ.БазЕдиница);
т.к. этот код у вас выполняется в контексте документа, сразу идет обращение к данным самого объекта документа, если можно так выразится
ТМЦ - это у вас реквизит табличной части документа, все предельно просто
"прописать параметр" - прямо тут берете и пишите
Автор: jojojoba2 08.10.19, 11:44
nik389 @ Сегодня, 12:19
,
Если можно напишите,пожалуйста, пример.
jojojoba2 @ Сегодня, 12:35
,
Дело в том, что реквизита Р/р и Найменование банка нету в документе счет-фактура. Его нужно "подвязать" из справочника контрагенты.
Автор: nik389 08.10.19, 11:53
jojojoba2 @ Сегодня, 12:35
,
пример?
ну вот вам пример.
Допустим, нам в счете в макете нужно сделать еще одну колонку, и если ТМЦ - услуга, писать туда "Услуга"
тогда делаем колонку, в строке Тип Выражение, пишем туда переменную пУслуга
а в цикл добавляем:
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
пУслуга = ""; //пустая строка
Если ТМЦ.Услуга = 1 Тогда//(предположим что у нас в справочнике тмц есть такой реквизит)
пУслуга = "Услуга";
КонецЕсли;
Цитата(jojojoba2 @ 08.10.19, 12:44)
Дело в том, что реквизита Р/р и Найменование банка нету в документе счет-фактура. Его нужно "подвязать" из справочника контрагенты.
У вас есть ссылка на контрагента в счете?
вот и доставайте оттуда рр и наименование счета
если расчетный счет это реквизит справочника контрагенты, будет что-то вроде
мойРСчет = Контрагент.РСчет
Автор: jojojoba2 08.10.19, 11:54
nik389 @ Сегодня, 12:53
,
Спасибо.Буду пробовать.