|
Можно ли внешней обработкой вызвать процедуру из модуля документа? | ☑ | ||
---|---|---|---|---|
0
Азат
22.11.12
✎
00:24
|
Собственно, суть...
мутится очередная нетленная печатка, надо вызвать пару процедур из модуля документа... но проблема в том, что слова "Экспорт" нет... конфа базовая! есть ли возможность как-то поиметь систему или тупо придется копировать код? |
|||
1
zak555
22.11.12
✎
00:26
|
нетленка -- базовая ? о_О
|
|||
2
zak555
22.11.12
✎
00:26
|
> печатка
это что ? |
|||
3
servs
22.11.12
✎
00:27
|
(0) помощь стоит 3 косаря
|
|||
4
Азат
22.11.12
✎
00:31
|
(3) ты очень крут, разрешаю тебе самому себя удовлетворить орально
|
|||
5
Азат
22.11.12
✎
00:31
|
(2) печатная форма из нескольких частей
|
|||
6
servs
22.11.12
✎
00:41
|
(4) Тараканами на кухне будешь командовать!
П.С.: Твои родители когда-нибудь попросили тебя убежать из дома? |
|||
7
zak555
22.11.12
✎
01:18
|
а чего печать не в модуле менеджере *
|
|||
8
Азат
22.11.12
✎
01:22
|
(7) спроси у 1С-а, почему они так в типовой сделали... еще и все функции, возвращающие табличный документ, без экспорта...
|
|||
9
zak555
22.11.12
✎
01:33
|
(8)
1. открыл бп 3.0 -- там экспорт в модулях менеджера есть 2. ответь на (1) |
|||
10
Азат
22.11.12
✎
01:35
|
(9) конфа базовая... нетленка - это моя печатка :)
|
|||
11
zak555
22.11.12
✎
01:39
|
сделать небазовой ?
|
|||
12
Азат
22.11.12
✎
01:43
|
(11) не вариант
|
|||
13
zak555
22.11.12
✎
01:49
|
это что за конфа ?
|
|||
14
Азат
22.11.12
✎
02:33
|
плат. документы
|
|||
15
zak555
22.11.12
✎
02:35
|
по-моему, без слова экспорт -- никак
|
|||
16
Азат
22.11.12
✎
02:40
|
(15) лан, спасиб, будем биться... не хотелось, канеш, код копировать...
|
|||
17
zak555
22.11.12
✎
02:42
|
какие процедуры и из какого модуля ?
|
|||
18
Азат
22.11.12
✎
02:47
|
ПещатьСчета... из модуля счета, ПечатьТОРГ12 из модуля накладной и тп
|
|||
19
zak555
22.11.12
✎
02:52
|
что-то не могу найти алкоголь =)
|
|||
20
zak555
22.11.12
✎
03:00
|
эти что ли ?
Функция ПечатьСчетаЗаказа(Тип) Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка); Запрос.Текст =" |ВЫБРАТЬ | Номер, | Дата, | Организация, | Контрагент КАК Получатель, | Организация КАК Руководители, | Организация КАК Поставщик, | СуммаДокумента, | УчитыватьНДС, | СуммаВключаетНДС |ИЗ | Документ.СчетНаОплатуПокупателю КАК ЗаказПокупателя | |ГДЕ | ЗаказПокупателя.Ссылка = &ТекущийДокумент"; Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_СчетЗаказ"; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка); ЧастьЗапросаДляВыбораСодержанияУслуг = ФормированиеПечатныхФорм.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("ЗаказПокупателя"); Запрос.Текст = "ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура КАК Номенклатура, | ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар, | ВложенныйЗапрос.Номенклатура.Код КАК Код, | ВложенныйЗапрос.Количество, | ВложенныйЗапрос.ЕдиницаИзмерения, | ВложенныйЗапрос.Цена, | ВложенныйЗапрос.Сумма, | ВложенныйЗапрос.СуммаНДС, | ВложенныйЗапрос.НомерСтроки КАК НомерСтроки, | 1 КАК ID |ИЗ | (ВЫБРАТЬ | ЗаказПокупателя.Номенклатура КАК Номенклатура, | ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения, | ЗаказПокупателя.Цена КАК Цена, | СУММА(ЗаказПокупателя.Количество) КАК Количество, | СУММА(ЗаказПокупателя.Сумма) КАК Сумма, | СУММА(ЗаказПокупателя.СуммаНДС) КАК СуммаНДС, | МИНИМУМ(ЗаказПокупателя.НомерСтроки) КАК НомерСтроки | ИЗ | Документ.СчетНаОплатуПокупателю.Товары КАК ЗаказПокупателя | | ГДЕ | ЗаказПокупателя.Ссылка = &ТекущийДокумент | | СГРУППИРОВАТЬ ПО | ЗаказПокупателя.Номенклатура, | ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование, | ЗаказПокупателя.Цена) КАК ВложенныйЗапрос | |УПОРЯДОЧИТЬ ПО | ID, | НомерСтроки"; ЗапросТовары = Запрос.Выполнить().Выгрузить(); Макет = ФормированиеПечатныхФорм.ПолучитьМакетДляПечати("СчетЗаказ"); // Выводим шапку накладной СведенияОПоставщике = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Поставщик, Шапка.Дата); Если Тип = "Счет" Тогда ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокСчета"); ОбластьМакета.Параметры.Заполнить(Шапка); ОбластьМакета.Параметры.ИНН = СведенияОПоставщике.ИНН; ОбластьМакета.Параметры.КПП = СведенияОПоставщике.КПП; Если ТипЗнч(СтруктурнаяЕдиница) = Тип("СправочникСсылка.БанковскиеСчета") Тогда Банк = ?(НЕ ЗначениеЗаполнено(СтруктурнаяЕдиница.БанкДляРасчетов), СтруктурнаяЕдиница.Банк, СтруктурнаяЕдиница.БанкДляРасчетов); БИК = Банк.Код; КоррСчет = Банк.КоррСчет; ГородБанка = Банк.Город; НомерСчета = ВернутьРасчетныйСчет(СтруктурнаяЕдиница); ОбластьМакета.Параметры.БИКБанкаПолучателя = БИК; ОбластьМакета.Параметры.БанкПолучателя = Банк; ОбластьМакета.Параметры.БанкПолучателяПредставление = СокрЛП(Банк) + " " + ГородБанка; ОбластьМакета.Параметры.СчетБанкаПолучателя = КоррСчет; ОбластьМакета.Параметры.СчетБанкаПолучателяПредставление = КоррСчет; ОбластьМакета.Параметры.СчетПолучателяПредставление = НомерСчета; ОбластьМакета.Параметры.СчетПолучателя = НомерСчета; КонецЕсли; Если ПустаяСтрока(СтруктурнаяЕдиница.ТекстКорреспондента) Тогда ТекстКорреспондента = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике,"НаименованиеДляПечатныхФорм"); Если ЗначениеЗаполнено(СтруктурнаяЕдиница.БанкДляРасчетов) Тогда ТекстКорреспондента = ТекстКорреспондента + " р/с " + СтруктурнаяЕдиница.НомерСчета + " в " + СтруктурнаяЕдиница.Банк + " " + СтруктурнаяЕдиница.Банк.Город; КонецЕсли; Иначе ТекстКорреспондента = СтруктурнаяЕдиница.ТекстКорреспондента; КонецЕсли; ОбластьМакета.Параметры.ПредставлениеПоставщика = ТекстКорреспондента; ТабДокумент.Вывести(ОбластьМакета); КонецЕсли; ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); ОбластьМакета.Параметры.ТекстЗаголовка = РаботаСДиалогами.СформироватьЗаголовокДокумента(Шапка, "Счет на оплату"); ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Поставщик"); ОбластьМакета.Параметры.Заполнить(Шапка); ОбластьМакета.Параметры.ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "ИНН,КПП,НаименованиеДляПечатныхФорм,ЮридическийАдрес,Телефоны,"); ТабДокумент.Вывести(ОбластьМакета); СведенияОПолучателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата); ОбластьМакета = Макет.ПолучитьОбласть("Покупатель"); ОбластьМакета.Параметры.Заполнить(Шапка); ОбластьМакета.Параметры.ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата), "ИНН,КПП,НаименованиеДляПечатныхФорм,ЮридическийАдрес,Телефоны,"); ТабДокумент.Вывести(ОбластьМакета); ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки"); ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные"); ОбластьСуммы = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма"); ТабДокумент.Вывести(ОбластьНомера); ТабДокумент.Присоединить(ОбластьДанных); ТабДокумент.Присоединить(ОбластьСуммы); ОбластьКолонкаТовар = Макет.Область("Товар"); ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки"); ОбластьДанных = Макет.ПолучитьОбласть("Строка|Данные"); ОбластьСуммы = Макет.ПолучитьОбласть("Строка|Сумма"); Сумма = 0; СуммаНДС = 0; ВсегоСкидок = 0; ВсегоБезСкидок = 0; Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл ОбластьНомера.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1; ТабДокумент.Вывести(ОбластьНомера); ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары); ОбластьДанных.Параметры.Товар = СокрЛП(ВыборкаСтрокТовары.Товар); ТабДокумент.Присоединить(ОбластьДанных); ОбластьСуммы.Параметры.Заполнить(ВыборкаСтрокТовары); ТабДокумент.Присоединить(ОбластьСуммы); Сумма = Сумма + ВыборкаСтрокТовары.Сумма; СуммаНДС = СуммаНДС + ВыборкаСтрокТовары.СуммаНДС; КонецЦикла; // Вывести Итого ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки"); ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные"); ОбластьСуммы = Макет.ПолучитьОбласть("Итого|Сумма"); ТабДокумент.Вывести(ОбластьНомера); ТабДокумент.Присоединить(ОбластьДанных); ОбластьСуммы.Параметры.Всего = ФормированиеПечатныхФорм.ФорматСумм(Сумма); ТабДокумент.Присоединить(ОбластьСуммы); // Вывести ИтогоНДС ОбластьНомера = Макет.ПолучитьОбласть("ИтогоНДС|НомерСтроки"); ОбластьДанных = Макет.ПолучитьОбласть("ИтогоНДС|Данные"); ОбластьСуммы = Макет.ПолучитьОбласть("ИтогоНДС|Сумма"); ТабДокумент.Вывести(ОбластьНомера); Если СуммаНДС <> 0 Тогда ОбластьДанных.Параметры.НДС = ?(Шапка.СуммаВключаетНДС, "В том числе НДС:", "Сумма НДС:"); ОбластьСуммы.Параметры.ВсегоНДС = ФормированиеПечатныхФорм.ФорматСумм(СуммаНДС); Иначе ОбластьДанных.Параметры.НДС = "Без налога (НДС)"; ОбластьСуммы.Параметры.ВсегоНДС = "-"; КонецЕсли; ТабДокумент.Присоединить(ОбластьДанных); ТабДокумент.Присоединить(ОбластьСуммы); // Вывести Сумму прописью ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью"); СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС); ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего наименований " + ЗапросТовары.Количество() + ", на сумму " + ФормированиеПечатныхФорм.ФорматСумм(СуммаКПрописи, "руб."); ОбластьМакета.Параметры.СуммаПрописью = РаботаСДиалогами.СформироватьСуммуПрописью(СуммаКПрописи, ); ТабДокумент.Вывести(ОбластьМакета); // Вывести подписи Если Тип = "Счет" Тогда ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчета"); Руководители = ОбщегоНазначения.ОтветственныеЛица(Организация, Дата); Руководитель = Руководители.РуководительПредставление; Бухгалтер = Руководители.ГлавныйБухгалтерПредставление; ОбластьМакета.Параметры.ФИОРуководителя = Руководитель; ОбластьМакета.Параметры.ФИОБухгалтера = Бухгалтер; Иначе ОбластьМакета = Макет.ПолучитьОбласть("ПодвалЗаказа"); КонецЕсли; ОбластьМакета.Параметры.Заполнить(Шапка); ТабДокумент.Вывести(ОбластьМакета); Возврат ТабДокумент; КонецФункции Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь, НепосредственнаяПечать = Ложь) Экспорт ПризнакПечати = Ложь; // Получить экземпляр документа на печать Если ИмяМакета = "Счет" Тогда ТабДокумент = ПечатьСчетаЗаказа(ИмяМакета); КонецЕсли; ФормированиеПечатныхФорм.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, РаботаСДиалогами.СформироватьЗаголовокДокумента(ЭтотОбъект, ЭтотОбъект.Метаданные().Представление()), НепосредственнаяПечать, Ссылка, ИмяМакета); КонецПроцедуры |
|||
21
zak555
22.11.12
✎
03:04
|
странно как-то
функция ПечатьСчетаЗаказа вызывает только из процедуры Печать и предполагает использование нескольких значений переменной Тип = "Счет" и иначе а вот процедура Печать вызывает функцию только со значением переменной "Счет" т.е. косяк |
|||
22
zak555
22.11.12
✎
23:28
|
в 1с написал вопрос ?
|
|||
23
Азат
22.11.12
✎
23:29
|
(22) нет, решили иначе...
|
|||
24
zak555
22.11.12
✎
23:31
|
(23) копи-паст ?
|
|||
25
Азат
22.11.12
✎
23:32
|
ага, сделал свою внешнюю обработку, которая возвращает табличный документ... и вызываю ее... клиент доволен, конфа-целка, все щастливы
|
|||
26
Азат
22.11.12
✎
23:33
|
плат. доки редко меняются, поэтому особых геморроев с этим можно не ждать
|
|||
27
zak555
22.11.12
✎
23:33
|
надо было написать в 1с
|
|||
28
Азат
22.11.12
✎
23:37
|
(27) еще чего...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |