![]() |
![]() |
![]() |
|
Создание внешних печатных форм, 1С7.7 | ☑ | ||
---|---|---|---|---|
0
soloveichik
27.02.09
✎
13:13
|
Добрый день, уважаемые форумчане!
Подскажите, пожалуйста, в чем может быть ошибка. Необходимо сделать внешнюю печатную форму в 1С7.7. Для версии 1С8.1 ответы есть в интернете. Сделать по аналогии мне не удалось - появились ошибки, которые пока не знаю, как исправить. Может быть, в принципе сделано не верно. Делал внешнюю обработку для документа Поступление МПЗ в конфигурации 1С7.7 Бухгалтерия Упрощенная система налогообложения. 1. Создал внешнюю обработку. 2. Скопировал ее из необходимого документа макет ("Таблица") и пометил его в свою внешнюю обработку. И тут появился первый вопрос. Для документа Поступление МПЗ мне не удалось найти форму М-4 (искал среди документов, отчетов, обработок) Подскажите, где ее (форму М-4) можно найти в конфигураторе ? 3. Далее, скоприровал из документа часть модуля печатной формы. Часть, названную Печать. И тут возникли следующие вопросы. В 8.1 для внешней обработки, для печати измененного документа используется функция Печать (), а в 7.7 идет Процедура Печать(). Понятно, что функция в отличие от процедуры возвращает значение. Нужно ли переименовывать в случае 7.7 Процедуру в Функцию? И если да, то тогда, соответственно функция должна возвращать значение, какое? Объект Таб, который создает новую таблицу? 4. В тексте модуля создаваемой процедуры создал ссылку на необходимый документ, чтобы обработка "подцепляла" тот документ, котрый нам нужен СсылкаНаОбъект = СоздатьОбъект ("Документ.ПоступлениеМПЗ"); //Документ.ПоступлениеМПЗ - это тот документ, который мне необходимо отредактировать. 5. И далее, везде в тексте модуля, где появляются синтаксические ошибки (или функция Проведен не обнаружена, или переменная НомерДок не определена), или другие переменные не определены, поставил ссылку на документ (СсылкаНаОбъект.Проведен или СсылкаНаОбъект.НомерДок) И так исправляю все ошибки, которые выделяет синтаксическая проверка. И наконец, синтаксических ошибок нет. Ура! 6. В форме обработки добавляю поле "РеквизитДиалога", в свойствах которого указал тип "Документ.ПоступлениеМПЗ", идентификатор "СсылкаНаОбъект"). 7. Подцепил в 1С Предприятии созданную печатную форму, выбрал в поле диалога свой документ и ..... появляется надпись об ошибке в строке: СекцияШапка.МестоХранения = ?(СсылкаНаОбъект.МестоХранения.Выбран()=1,СсылкаНаОбъект.МестоХранения.Наименование,""); Значение не представляет агрегатный объект (Выбран) Мои дальнейшие попытки что-то откорректировать, к сожалению, ни к чему не привели... Пожалуйста, подскажите, как и что нужно сделать правильно. В данном случае это документ "Поступление МПЗ", но могут быть и другие документы. Спасибо! |
|||
1
ТелепатБот
гуру
27.02.09
✎
13:13
|
||||
2
AeDen
27.02.09
✎
13:18
|
2. Общие таблицы, скорее всего (дерево конфигурации - на самом верхнем уровне правый клик).
3. Не нужно. 5. А спозиционироваться на документ? И вообще нифига не понятно. Что надо было? В 7-ке есть штатный механизм регистрации внешних печатных форм для типовых конфиг. Обработка какая-то... Ищите:) |
|||
3
soloveichik
27.02.09
✎
13:30
|
Спасибо! В общих таблицах нашел нужную мне М-4!
Что означает спозиционирваться на документ? (извините за глупыый вопрос :)) ) Что нужно было сделать - нужно было написать внешнюю обработку, которая бы печатала нужный документ, но который был бы изменен. То есть в него необходимо внести простые изменения - добавить логотип и т.п. |
|||
4
kalleka
27.02.09
✎
14:09
|
(3) в 1с есть стандартный механизм подключения печатных форм, в ТиСе он выглядит так
в папке ExtForms\PrnForms лежат файлы ert и efd например: torg-12 изм.ert torg-12 изм.EFD в последнем следующий текст Объект="Документ.Реализация" Название=Торг-12 Кнопка=Торг-12 в самом внешнем отчете создаешь процедуру приоткрытии() в ней пишешь что то вроде Процедура ПриОткрытии() ТекДок = Форма.Параметр.Получить("Контекст"); Печать(); СтатусВозврата(0); Возврат; КонецПроцедуры текдок я обычно делаю глобальной переменной в процедуру печать копируешь алгоритм печати из оригинального дока, везде где идет работа с документом и его реквизитами (вместо выбратьстроки(), текдок.выбратьстроки(), вместо контрагент, текдок.выбратьконтрагент ) Печатную форму тоже копируешь. Все это правишь как тебе надо |
|||
5
kalleka
27.02.09
✎
14:13
|
(4)+ теперь когда в документе нажимаешь кнопку выбора печатной формы - твоя печатная форма появится в списке. В моем случае появится надпись "торг-12". Список печатных форм формируется при открытии документа
|
|||
6
Хряк
27.02.09
✎
14:16
|
http://webfile.ru/2987105
правда это для бух, подрихтуешь сам |
|||
7
kalleka
27.02.09
✎
14:29
|
ну вот столько букв написал, а автор пропал, не сообщив о результатах))
|
|||
8
andrewalexk
27.02.09
✎
14:35
|
:)
вот и появилось поколение которое азы на семерке пытается делать по аналогии с восьмеркой.. "я слишком стар для этого дерьма"(с) |
|||
9
soloveichik
27.02.09
✎
14:58
|
Господа, спасибо за содержательные ответы!
действительно отлучался :)) Сейчас буду пробовать :)), надеюсь все заработает :)) Спасибо! |
|||
10
kalleka
27.02.09
✎
15:24
|
(9) главное велосипед с квадратными колесами не изобретай)
|
|||
11
soloveichik
01.03.09
✎
17:06
|
Доброго времени суток!
Почти все заработало :)) То есть внешняя форма регистрируется, из окна регистрации внешних форм открывается и при выборе нужного документа (в форму внес такое поле)открывает печатную форму документа. Ура!!! Но не получилось пока сделать так, чтобы из открытого документа моя форма работала. В списке печатных форм она есть, ее можно выбрать наряду с основной формой, но, выбрав, печатная форма не вызывается. Копирование в модуль ответственных за это процедур из модуля изначального документа ни к чему кроме появления ошибок не водит :(. Подскажите, пожалуйста, как и что нужно еще добавить в модуль внешней формы! Спасибо! |
|||
12
victuan1
01.03.09
✎
17:08
|
(11) Посмотри по аналогии как сделаны "родные" внешние печатные формы. Их код унифицирован.
|
|||
13
soloveichik
03.03.09
✎
12:41
|
Доброго времени суток!
Спасибо всем за дельные рекомендации! Внешняя форма заработала, как надо :)) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |