Имя: Пароль:
1C
1C 7.7
v7: Редактирование печатной формы счета в1с7.7
,
0 jojojoba2
 
08.10.19
11:58
Добрый день!

Помогите начинающему программисту и просьба не судить строго))). Я изучаю программирование в 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.

Заранее спасибо.
1 runoff_runoff
 
08.10.19
12:00
(0) там нет параметров.. все идентификаторы из области видимости процедуры печати..
2 Масянька
 
08.10.19
12:02
(0) У тебя в  \1cv77_db\Management\ExtForms\ есть еще что?
3 jojojoba2
 
08.10.19
12:24
"У тебя в  \1cv77_db\Management\ExtForms\ есть еще что?"

Да там куча файлов и папок.
4 Birmingem
 
08.10.19
12:25
В твоей печатной форме \1cv77_db\Management\ExtForms\PrnForms  SF3_ukr.mxl. (т.е. в макете термином 1С8) в нужной тебе ячейке пишешь имя переменной, например МойБанк, в свойствах ячейки в поле  Тип выбираешь Выражение.
В модуле пишешь
МойБанк = Спр.ТудымСюдым;

Все.
5 jojojoba2
 
08.10.19
12:31
В справочнике Контрагенты нету непосредственно реквизита р/р ,но есть пРС(он отвечает за вывод информации) В модуле формы нашел пРС = РС.НомерСчета;

Как это прописать правильно в модуле формы документа счет-фактура в процедуре ПЕЧАТЬ,чтобы коректно выводилось на форме печате
6 Масянька
 
08.10.19
12:44
(3) В папке отсортируй по имени.
Возьми 2 файла с одинаковым именем.
Открой файл с расширением .EFD. Посмотри, подумай. (этот файл можно открыть текстовым редактором)
Открой файл с расширением .ert. Этот файл открывается в конфигураторе.
Разница между семеркой и восьмеркой, есесьно, есть. Семерка проще. Подумаешь - возможно разберешься.
Макеты семерки и восьмерки - почти одинаковы (печатные).
Печать разная.
7 user-ok
 
08.10.19
12:57
(5) Расчетніе счета хранятся в подчиненном справочнике. И в общем случае их может быть много. Реквизит "сРС" есть только на форме и заполняется в том случае, когда РС один. Что ты будешь выводить когда счетов несколько?
Если задача вывести единственный или первый попавшийся РС - смотри процедуру ПроверитьКвоРС() в форме элемента справочника Контрагенты. и получай счет по образу и подобию
8 Злопчинский
 
08.10.19
15:05
если РС банка нет в док.реализация - то смотреть в заячвке покупателя/счете на основании которой введен Реализация. Все.
Если неоткуда взять - брать РС, назначенный основным для фирмы.
если нет понятия "основной" - брать первый из РС который не закрыт (в карточке РС) или последний из незакрытых который открыт позже всех.
я бы так примерно сделал
2 + 2 = 3.9999999999999999999999999999999...