БП3.0 - внешняя ТОРГ_12 для ПередачаОС ошибка
Подскажите что изменилось при печати внешних печатных форм для
Бухгалтерия предприятия, редакция 3.0.66.53)
Бухгалтерия предприятия, редакция 3.0.66.53)
{ОбщийМодуль.ПечатьТорговыхДокументов.Модуль(260)}: Значение не является значением объектного типа (ИмяПараметровПечати)
ИмяПараметровПечати = ПараметрыПечати.ИмяПараметровПечати;
ИмяПараметровПечати = ПараметрыПечати.ИмяПараметровПечати;
Прикрепленные файлы:
ПередачаОС_ТОРГ12.epf
Найденные решения
(10) чё вот вот? ))
лень самому разобраться...я ж написал всё вроде
на тебе готовую через файл открыть
на название не обращай внимания...лень было перешмякивать
лень самому разобраться...я ж написал всё вроде
на тебе готовую через файл открыть
на название не обращай внимания...лень было перешмякивать
Прикрепленные файлы:
ПередачаОС (ВПФ).epf
Остальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
Ну так откройте ПараметрыПечати и посмотрите ЧТО там изменилось.
Может имя поменяли - это сейчас модно в 1с
Все изменения только обеспечивают работой програмистов - я даже подумал : удобно, не останешься без хлеба...
Может имя поменяли - это сейчас модно в 1с
Все изменения только обеспечивают работой програмистов - я даже подумал : удобно, не останешься без хлеба...
(4)
- не понятно... код из модуля базы
- не понятно... код из модуля базы
Функция ПечатьТОРГ12(СведенияТОРГ12, ОбъектыПечати, ПараметрыПечати) Экспорт
УстановитьПривилегированныйРежим(Истина);
ИмяПараметровПечати = ПараметрыПечати.ИмяПараметровПечати;
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.АвтоМасштаб = Истина;
ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабличныйДокумент.КлючПараметровПечати = ИмяПараметровПечати;
УстановитьМинимальныеПоляПечати(ТабличныйДокумент);
Макет = УправлениеПечатью.МакетПечатнойФормы("ОбщийМакет.ПФ_MXL_ТОРГ12");
ЕстьОбластьГосконтракты = (Макет.Области.Найти("ДатаНомерГосконтракт") <> Неопределено);
ПервыйДокумент = Истина;
СведенияОКонтрагентах = Новый Соответствие;
КонтрагентыДляПечати = Новый Структура("Поставщик, Грузоотправитель, Покупатель, Грузополучатель");
Для Каждого СведенияОДокументе Из СведенияТОРГ12 Цикл
Если НЕ ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
// Запомним номер строки, с которой начали выводить текущий документ.
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
ТаблицаДокумента = СведенияОДокументе.ТаблицаДокумента;
ОбластьМакетаШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьМакетаЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаб");
ОбластьМакетаСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьМакетаИтогоПоСтранице = Макет.ПолучитьОбласть("ИтогоПоСтранице");
ОбластьМакетаВсего = Макет.ПолучитьОбласть("Всего");
ОбластьМакетаПодвал = Макет.ПолучитьОбласть("Подвал");
// Получаем сведения об используемых в документе контрагентах с разными ролями в документообороте.
Для каждого КонтрагентДляПечати Из КонтрагентыДляПечати Цикл
КонтрагентИзДокумента = СведенияОДокументе[КонтрагентДляПечати.Ключ];
СведенияОКонтрагенте = СведенияОКонтрагентах[КонтрагентИзДокумента];
Если СведенияОКонтрагенте = Неопределено Тогда
БанковскийСчетКонтрагента = ?(КонтрагентДляПечати.Ключ = "Поставщик", СведенияОДокументе.БанковскийСчетПродавца, Неопределено);
СведенияОКонтрагенте = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(
КонтрагентИзДокумента, СведенияОДокументе.ДатаДляПолученияСведений, БанковскийСчетКонтрагента);
СведенияОКонтрагентах.Вставить(КонтрагентИзДокумента, СведенияОКонтрагенте);
КонецЕсли;
КонтрагентыДляПечати.Вставить(КонтрагентДляПечати.Ключ, СведенияОКонтрагенте);
КонецЦикла;
// Выводим общие реквизиты шапки.
ОбластьМакетаШапка.Параметры.Заполнить(СведенияОДокументе);
ДополнительныеПараметрыШапки = Новый Структура;
Если СведенияОДокументе.Поставщик = СведенияОДокументе.Грузоотправитель Тогда
ДополнительныеПараметрыШапки.Вставить("ПредставлениеОрганизации", ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(КонтрагентыДляПечати.Поставщик));
Иначе
ДополнительныеПараметрыШапки.Вставить("ПредставлениеОрганизации", ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
КонтрагентыДляПечати.Грузоотправитель, "НаименованиеДляПечатныхФорм,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет"));
КонецЕсли;
Если ЗначениеЗаполнено(СведенияОДокументе.Подразделение) Тогда
СведенияОПодразделении = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(СведенияОДокументе.Подразделение, "ОбособленноеПодразделение, НаименованиеПолное");
ДополнительныеПараметрыШапки.Вставить("ПредставлениеПодразделения", ?(СведенияОПодразделении.ОбособленноеПодразделение, СведенияОПодразделении.НаименованиеПолное, ""));
КонецЕсли;
Если СокрЛП(СведенияОДокументе.АдресДоставки) <> "" Тогда
ПредставлениеГрузополучателяДоАдреса = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
КонтрагентыДляПечати.Грузополучатель, "НаименованиеДляПечатныхФорм,ИНН,");
ПредставлениеГрузополучателяПослеАдреса = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
КонтрагентыДляПечати.Грузополучатель, "Телефоны,НомерСчета,Банк,БИК,КоррСчет,");
ДополнительныеПараметрыШапки.Вставить("ПредставлениеГрузополучателя", ?(СокрЛП(ПредставлениеГрузополучателяДоАдреса) = "",
"", ПредставлениеГрузополучателяДоАдреса+", ") + СведенияОДокументе.АдресДоставки
+ ?(СокрЛП(ПредставлениеГрузополучателяПослеАдреса)="", "", ", "+ПредставлениеГрузополучателяПослеАдреса));
Иначе
ДополнительныеПараметрыШапки.Вставить("ПредставлениеГрузополучателя", ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
КонтрагентыДляПечати.Грузополучатель, "НаименованиеДляПечатныхФорм,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет"));
КонецЕсли;
ДополнительныеПараметрыШапки.Вставить("ПредставлениеПоставщика", ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(КонтрагентыДляПечати.Поставщик));
ДополнительныеПараметрыШапки.Вставить("ПредставлениеПлательщика", ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(КонтрагентыДляПечати.Покупатель));
// Выводим всевозможные коды
ДополнительныеПараметрыШапки.Вставить("ОрганизацияПоОКПО", КонтрагентыДляПечати.Грузоотправитель.КодПоОКПО);
ДополнительныеПараметрыШапки.Вставить("ВидДеятельностиПоОКДП", "");
ДополнительныеПараметрыШапки.Вставить("ГрузополучательПоОКПО", КонтрагентыДляПечати.Грузополучатель.КодПоОКПО);
ДополнительныеПараметрыШапки.Вставить("ПоставщикПоОКПО", КонтрагентыДляПечати.Поставщик.КодПоОКПО);
ДополнительныеПараметрыШапки.Вставить("ПлательщикПоОКПО", КонтрагентыДляПечати.Покупатель.КодПоОКПО);
ДополнительныеПараметрыШапки.Вставить("ТранспортнаяНакладнаяНомер", "");
ДополнительныеПараметрыШапки.Вставить("ТранспортнаяНакладнаяДата", "");
ОбластьМакетаШапка.Параметры.Заполнить(ДополнительныеПараметрыШапки);
Если ЕстьОбластьГосконтракты Тогда
Если ЗначениеЗаполнено(СведенияОДокументе.ГосударственныйКонтракт) Тогда
ОбластьМакетаДатаНомер = Макет.ПолучитьОбласть("ДатаНомерГосконтракт");
ОбластьНомерИсправления = ОбластьМакетаДатаНомер.Области.Найти("НомерИсправленияГосконтракт");
ОбластьДатаИсправления = ОбластьМакетаДатаНомер.Области.Найти("ДатаИсправленияГосконтракт");
Иначе
ОбластьМакетаДатаНомер = Макет.ПолучитьОбласть("ДатаНомер");
ОбластьНомерИсправления = ОбластьМакетаДатаНомер.Области.Найти("НомерИсправления");
ОбластьДатаИсправления = ОбластьМакетаДатаНомер.Области.Найти("ДатаИсправления");
КонецЕсли;
Иначе
ОбластьМакетаДатаНомер = ОбластьМакетаШапка;
ОбластьНомерИсправления = ОбластьМакетаШапка.Области.Найти("НомерИсправления");
ОбластьДатаИсправления = ОбластьМакетаШапка.Области.Найти("ДатаИсправления");
КонецЕсли;
ПараметрыИсправление = Новый Структура;
Если ЗначениеЗаполнено(СведенияОДокументе.НомерИсправления) И ЗначениеЗаполнено(СведенияОДокументе.ДатаИсправления) Тогда
ПараметрыИсправление.Вставить("ТекстИсправления", НСтр("ru='Исправление '"));
ПараметрыИсправление.Вставить("НомерИсправления", СведенияОДокументе.НомерИсправления);
ПараметрыИсправление.Вставить("ДатаИсправления", Формат(СведенияОДокументе.ДатаИсправления, "ДФ=dd.MM.yyyy"));
ЛинияГраницыРеквизитовИсправления = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
ОбластьНомерИсправления.ГраницаСнизу = ЛинияГраницыРеквизитовИсправления;
ОбластьНомерИсправления.ГраницаСлева = ЛинияГраницыРеквизитовИсправления;
ОбластьНомерИсправления.ГраницаСправа = ЛинияГраницыРеквизитовИсправления;
ОбластьДатаИсправления.ГраницаСнизу = ЛинияГраницыРеквизитовИсправления;
ОбластьДатаИсправления.ГраницаСлева = ЛинияГраницыРеквизитовИсправления;
ОбластьДатаИсправления.ГраницаСправа = ЛинияГраницыРеквизитовИсправления;
КонецЕсли;
ОбластьМакетаДатаНомер.Параметры.Заполнить(СведенияОДокументе);
ОбластьМакетаДатаНомер.Параметры.Заполнить(ПараметрыИсправление);
ТабличныйДокумент.Вывести(ОбластьМакетаШапка);
Если ЕстьОбластьГосконтракты Тогда
ТабличныйДокумент.Вывести(ОбластьМакетаДатаНомер);
КонецЕсли;
// Инициализация счетчика страниц
НомерСтраницы = 1;
// Инициализация итогов по странице
ИтогоМестНаСтранице = 0;
ИтогоКоличествоНаСтранице = 0;
ИтогоСуммаБезНДСНаСтранице = 0;
ИтогоНДСНаСтранице = 0;
ИтогоСуммаСНДСНаСтранице = 0;
// Инициализация итогов по документу
ИтогоМест = 0;
ИтогоКоличество = 0;
ИтогоСуммаСНДС = 0;
ИтогоСуммаБезНДС = 0;
ИтогоНДС = 0;
// Инициализация счетчика строк
НомерСтроки = 0;
КоличествоСтрок = ТаблицаДокумента.Количество();
// Выводим заголовок многострочной части
ОбластьМакетаЗаголовокТаблицы.Параметры.Заполнить(Новый Структура("НомерСтраницы", "Страница " + НомерСтраницы));
ТабличныйДокумент.Вывести(ОбластьМакетаЗаголовокТаблицы);
НДСИсчисляетсяНалоговымАгентом = СведенияОДокументе.НДСИсчисляетсяНалоговымАгентом = Истина
И УчетНДС.ВедетсяУчетНДСПоФЗ335(СведенияОДокументе.ДатаДокумента);
// Выводим многострочную часть документа
Для Каждого СтрокаДокумента Из ТаблицаДокумента Цикл
НомерСтроки = НомерСтроки + 1;
ПараметрыСтроки = Новый Структура;
ПараметрыСтроки.Вставить("Номер", НомерСтроки);
ПараметрыСтроки.Вставить("ТоварНаименование", СтрокаДокумента.ТоварНаименование);
ПараметрыСтроки.Вставить("ТоварКод", СтрокаДокумента.ТоварКод);
ПараметрыСтроки.Вставить("БазоваяЕдиницаНаименование", СтрокаДокумента.ЕдиницаИзмеренияНаименование);
ПараметрыСтроки.Вставить("БазоваяЕдиницаКодПоОКЕИ", СтрокаДокумента.ЕдиницаИзмеренияКод);
ПараметрыСтроки.Вставить("КоличествоМест", СтрокаДокумента.КоличествоМест);
Если НЕ ЗначениеЗаполнено(СтрокаДокумента.КоличествоМест) Тогда
ПараметрыСтроки.Вставить("ВидУпаковки", "");
ПараметрыСтроки.Вставить("КоличествоВОдномМесте", "");
Иначе
ПараметрыСтроки.Вставить("ВидУпаковки", СтрокаДокумента.ВидУпаковкиНаименование);
ПараметрыСтроки.Вставить("КоличествоВОдномМесте", СтрокаДокумента.КоличествоВОдномМесте);
КонецЕсли;
ПараметрыСтроки.Вставить("Количество", СтрокаДокумента.Количество);
ПараметрыСтроки.Вставить("Цена", СтрокаДокумента.Цена);
ПараметрыСтроки.Вставить("СуммаБезНДС", СтрокаДокумента.СуммаБезНДС);
Если НДСИсчисляетсяНалоговымАгентом Тогда
ПараметрыСтроки.Вставить("СтавкаНДС", УчетНДС.НадписьСтавкаНДСИсчисляетсяНалоговымАгентом());
ПараметрыСтроки.Вставить("СуммаНДС", УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
ПараметрыСтроки.Вставить("СуммаСНДС", УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
Иначе
ПараметрыСтроки.Вставить("СтавкаНДС", СтрокаДокумента.СтавкаНДС);
ПараметрыСтроки.Вставить("СуммаНДС", СтрокаДокумента.СуммаНДС);
ПараметрыСтроки.Вставить("СуммаСНДС", СтрокаДокумента.СуммаСНДС);
КонецЕсли;
ОбластьМакетаСтрока.Параметры.Заполнить(ПараметрыСтроки);
// Проверим вывод
СтрокаСПодвалом = Новый Массив;
Если НомерСтроки = 1 Тогда
СтрокаСПодвалом.Добавить(ОбластьМакетаЗаголовокТаблицы); // если первая строка, то должен
КонецЕсли; // помещаться заголовок
СтрокаСПодвалом.Добавить(ОбластьМакетаСтрока);
СтрокаСПодвалом.Добавить(ОбластьМакетаИтогоПоСтранице);
Если НомерСтроки = КоличествоСтрок Тогда // если последняя строка, должен
СтрокаСПодвалом.Добавить(ОбластьМакетаВсего); // помещаться и подвал документа
СтрокаСПодвалом.Добавить(ОбластьМакетаПодвал);
КонецЕсли;
Если НЕ ОбщегоНазначения.ПроверитьВыводТабличногоДокумента(ТабличныйДокумент, СтрокаСПодвалом) Тогда
Если КоличествоСтрок > 1 Тогда
// Выводим итоги по странице
ПараметрыИтоги = Новый Структура;
ПараметрыИтоги.Вставить("ИтогМестПоСтранице", ИтогоМестНаСтранице);
ПараметрыИтоги.Вставить("ИтогКоличествоПоСтранице", ИтогоКоличествоНаСтранице);
ПараметрыИтоги.Вставить("ИтогСуммыПоСтранице", ИтогоСуммаБезНДСНаСтранице);
Если НДСИсчисляетсяНалоговымАгентом Тогда
ПараметрыИтоги.Вставить("ИтогНДСПоСтранице", УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
ПараметрыИтоги.Вставить("ИтогСуммыСНДСПоСтранице", УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
Иначе
ПараметрыИтоги.Вставить("ИтогНДСПоСтранице", ИтогоНДСНаСтранице);
ПараметрыИтоги.Вставить("ИтогСуммыСНДСПоСтранице", ИтогоСуммаСНДСНаСтранице);
КонецЕсли;
ОбластьМакетаИтогоПоСтранице.Параметры.Заполнить(ПараметрыИтоги);
ТабличныйДокумент.Вывести(ОбластьМакетаИтогоПоСтранице);
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
// Очистим итоги по странице
ИтогоМестНаСтранице = 0;
ИтогоКоличествоНаСтранице = 0;
ИтогоСуммаБезНДСНаСтранице = 0;
ИтогоНДСНаСтранице = 0;
ИтогоСуммаСНДСНаСтранице = 0;
// Выведем заголовок таблицы
НомерСтраницы = НомерСтраницы + 1;
ОбластьМакетаЗаголовокТаблицы.Параметры.Заполнить(Новый Структура("НомерСтраницы", "Страница " + НомерСтраницы));
ТабличныйДокумент.Вывести(ОбластьМакетаЗаголовокТаблицы);
КонецЕсли;
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьМакетаСтрока);
// Увеличим итоги по странице
ИтогоМестНаСтранице = ИтогоМестНаСтранице + СтрокаДокумента.КоличествоМест;
ИтогоКоличествоНаСтранице = ИтогоКоличествоНаСтранице + СтрокаДокумента.Количество;
ИтогоСуммаБезНДСНаСтранице = ИтогоСуммаБезНДСНаСтранице + СтрокаДокумента.СуммаБезНДС;
ИтогоНДСНаСтранице = ИтогоНДСНаСтранице + СтрокаДокумента.СуммаНДС;
ИтогоСуммаСНДСНаСтранице = ИтогоСуммаСНДСНаСтранице + СтрокаДокумента.СуммаСНДС;
// Увеличим итоги по документу
ИтогоМест = ИтогоМест + СтрокаДокумента.КоличествоМест;
ИтогоКоличество = ИтогоКоличество + СтрокаДокумента.Количество;
ИтогоСуммаБезНДС = ИтогоСуммаБезНДС + СтрокаДокумента.СуммаБезНДС;
ИтогоНДС = ИтогоНДС + СтрокаДокумента.СуммаНДС;
ИтогоСуммаСНДС = ИтогоСуммаСНДС + СтрокаДокумента.СуммаСНДС;
КонецЦикла;
// Выводим итоги по странице
ПараметрыИтоги = Новый Структура;
ПараметрыИтоги.Вставить("ИтогМестПоСтранице", ИтогоМестНаСтранице);
ПараметрыИтоги.Вставить("ИтогКоличествоПоСтранице", ИтогоКоличествоНаСтранице);
ПараметрыИтоги.Вставить("ИтогСуммыПоСтранице", ИтогоСуммаБезНДСНаСтранице);
Если НДСИсчисляетсяНалоговымАгентом Тогда
ПараметрыИтоги.Вставить("ИтогНДСПоСтранице", УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
ПараметрыИтоги.Вставить("ИтогСуммыСНДСПоСтранице", УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
Иначе
ПараметрыИтоги.Вставить("ИтогНДСПоСтранице", ИтогоНДСНаСтранице);
ПараметрыИтоги.Вставить("ИтогСуммыСНДСПоСтранице", ИтогоСуммаСНДСНаСтранице);
КонецЕсли;
ОбластьМакетаИтогоПоСтранице.Параметры.Заполнить(ПараметрыИтоги);
ТабличныйДокумент.Вывести(ОбластьМакетаИтогоПоСтранице);
// Выводим итоги по документу в целом
ПараметрыИтоги = Новый Структура;
ПараметрыИтоги.Вставить("ИтогМест", ИтогоМест);
ПараметрыИтоги.Вставить("ИтогКоличество", ИтогоКоличество);
ПараметрыИтоги.Вставить("ИтогСуммы", ИтогоСуммаБезНДС);
Если НДСИсчисляетсяНалоговымАгентом Тогда
ПараметрыИтоги.Вставить("ИтогНДС", УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
ПараметрыИтоги.Вставить("ИтогСуммыСНДС", УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом());
Иначе
ПараметрыИтоги.Вставить("ИтогНДС", ИтогоНДС);
ПараметрыИтоги.Вставить("ИтогСуммыСНДС", ИтогоСуммаСНДС);
КонецЕсли;
ОбластьМакетаВсего.Параметры.Заполнить(ПараметрыИтоги);
ТабличныйДокумент.Вывести(ОбластьМакетаВсего);
// Выводим подвал документа
ПараметрыПодвал = Новый Структура;
ПараметрыПодвал.Вставить("КоличествоПорядковыхНомеровЗаписейПрописью", ЧислоПрописью(ТаблицаДокумента.Количество(), ,",,,,,,,,0"));
ПараметрыПодвал.Вставить("ВсегоМестПрописью", ?(ИтогоМест = 0, "", ЧислоПрописью(ИтогоМест, ,",,,С,,,,,0")));
ПараметрыПодвал.Вставить("СуммаПрописью", ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью(ИтогоСуммаСНДС, СведенияОДокументе.Валюта));
ЗаРуководителяНаОсновании = ?(СведенияОДокументе.ЗаРуководителяНаОснованииНаименование = "", "" , ", "+СведенияОДокументе.ЗаРуководителяНаОснованииНаименование);
ПараметрыПодвал.Вставить("ФИОРуководителя", СведенияОДокументе.РуководительФИО + ЗаРуководителяНаОсновании);
ПараметрыПодвал.Вставить("ДолжностьРуководителя", СведенияОДокументе.РуководительДолжностьНаименование);
ЗаГлавногоБухгалтераНаОсновании = ?(СведенияОДокументе.ЗаГлавногоБухгалтераНаОснованииНаименование = "", "" , ", "+СведенияОДокументе.ЗаГлавногоБухгалтераНаОснованииНаименование);
ПараметрыПодвал.Вставить("ФИОГлавБухгалтера", СведенияОДокументе.ГлавныйБухгалтерФИО + ЗаГлавногоБухгалтераНаОсновании);
ПараметрыПодвал.Вставить("ФИОКладовщика", СведенияОДокументе.КладовщикФИО);
ПараметрыПодвал.Вставить("ДолжностьКладовщика", СведенияОДокументе.КладовщикДолжность);
Если ЗначениеЗаполнено(СведенияОДокументе.ДатаПодписанияДокумента) Тогда
ПолнаяДатаДокумента = Формат(СведенияОДокументе.ДатаПодписанияДокумента, "ДФ=""дд ММММ гггг """"года""""""");
ДлинаСтроки = СтрДлина(ПолнаяДатаДокумента);
ПервыйРазделитель = СтрНайти(ПолнаяДатаДокумента," ");
ВторойРазделитель = СтрНайти(Прав(ПолнаяДатаДокумента,ДлинаСтроки - ПервыйРазделитель), " ") + ПервыйРазделитель;
ПараметрыПодвал.Вставить("ДатаДокументаДень", """" + Лев(ПолнаяДатаДокумента, ПервыйРазделитель - 1) + """");
ПараметрыПодвал.Вставить("ДатаДокументаМесяц", Сред(ПолнаяДатаДокумента, ПервыйРазделитель + 1, ВторойРазделитель - ПервыйРазделитель - 1));
ПараметрыПодвал.Вставить("ДатаДокументаГод", Прав(ПолнаяДатаДокумента, ДлинаСтроки - ВторойРазделитель));
Иначе
ПараметрыПодвал.Вставить("ДатаДокументаДень", """ """);
ПараметрыПодвал.Вставить("ДатаДокументаМесяц", "");
ПараметрыПодвал.Вставить("ДатаДокументаГод", " 20 года");
КонецЕсли;
ДлинаСтрокиДоверенность = СтрДлина(СведенияОДокументе.ДоверенностьВыдана);
Если ДлинаСтрокиДоверенность < 70 Тогда
ДоверенностьВыдана = СведенияОДокументе.ДоверенностьВыдана;
ДоверенностьВыдана1 = "";
Иначе
// Разбиваем строку на две подстроки, таким образом чтобы первая строка была не более 70ти символов
// Для этого ищем очередной пробел и проверяем длину строк в предположении, что перенос будет выполнен по найденной позиции.
ДоверенностьВыдана1 = СведенияОДокументе.ДоверенностьВыдана;
ПозицияПоиска = СтрНайти(ДоверенностьВыдана1," ")+1;
// Если найден очередной пробел и длина первой строки после операции будет менее 70ти символов, то выполняем еще одну итерацию.
Пока ПозицияПоиска > 1 И ДлинаСтрокиДоверенность - СтрДлина(ДоверенностьВыдана1) + ПозицияПоиска < 70 Цикл
ДоверенностьВыдана1 = Сред(ДоверенностьВыдана1, ПозицияПоиска);
ПозицияПоиска = СтрНайти(ДоверенностьВыдана1," ")+1;
КонецЦикла;
ДоверенностьВыдана = Лев(СведенияОДокументе.ДоверенностьВыдана,ДлинаСтрокиДоверенность - СтрДлина(ДоверенностьВыдана1));
КонецЕсли;
ДанныеДоверенность = Новый Структура;
ДанныеДоверенность.Вставить("ДоверенностьНомер", СведенияОДокументе.ДоверенностьНомер);
ДанныеДоверенность.Вставить("ДоверенностьВыдана", ДоверенностьВыдана);
ДанныеДоверенность.Вставить("ДоверенностьВыдана1", ДоверенностьВыдана1);
ДанныеДоверенность.Вставить("ДоверенностьЧерезКого", СведенияОДокументе.ДоверенностьЧерезКого);
ДанныеДоверенность.Вставить("ДоверенностьДата",?(ЗначениеЗаполнено(СведенияОДокументе.ДоверенностьДата), Формат(СведенияОДокументе.ДоверенностьДата, "ДЛФ=ДД"), ""));
ОбластьМакетаПодвал.Параметры.Заполнить(ДанныеДоверенность);
ОбластьМакетаПодвал.Параметры.Заполнить(ПараметрыПодвал);
ТабличныйДокумент.Вывести(ОбластьМакетаПодвал);
// В табличном документе зададим имя области, в которую был
// выведен объект. Нужно для возможности печати покомплектно.
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент,
НомерСтрокиНачало, ОбъектыПечати, СведенияОДокументе.Документ);
УправлениеПечатьюБП.ДополнитьДокументПодписьюИПечатью(ТабличныйДокумент, СведенияОДокументе, ОбъектыПечати, ПараметрыПечати);
КонецЦикла;
Возврат ТабличныйДокумент;
КонецФункции
Показать
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ВключатьУслуги = Ложь;
ТаблицаСведенийТОРГ12 = ПолучитьТаблицуСведенийТОРГ12(МассивОбъектов, ВключатьУслуги);
КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПередачаОС_ТОРГ12";
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТОРГ_12", "ТОРГ-12 (Товарная накладная)",
ПечатьТорговыхДокументов.ПечатьТОРГ12(ТаблицаСведенийТОРГ12, ОбъектыПечати, КлючПараметровПечати),,"ОбщийМакет.ПФ_MXL_ТОРГ12");
КонецПроцедуры // Печать()
Функция ПолучитьТаблицуСведенийТОРГ12(Знач МассивДокументов, Знач ВключатьУслуги) Экспорт
УстановитьПривилегированныйРежим(Истина);
ТаблицаСведений = ПечатьТорговыхДокументов.ПолучитьОписаниеТОРГ12();
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов);
Запрос.УстановитьПараметр("ВключатьУслуги", ВключатьУслуги);
Запрос.УстановитьПараметр("ДополнительнаяКолонкаПечатныхФормДокументов", Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить());
Запрос.Текст = ПолучитьТекстЗапросаДляФормированияТаблицыСведенийТОРГ12();
РезультатыЗапроса = Запрос.ВыполнитьПакет();
ВалютаРегУчета = ОбщегоНазначенияБПВызовСервераПовтИсп.ПолучитьВалютуРегламентированногоУчета();
РеквизитыВалютыРегУчета = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ВалютаРегУчета, "Код, Наименование");
Выборка = РезультатыЗапроса[2].Выбрать();
СтрокиДокументов = РезультатыЗапроса[3].Выгрузить();
СтрокиДокументов.Индексы.Добавить("Документ");
Пока Выборка.Следующий() Цикл
СведенияОДокументе = ТаблицаСведений.Добавить();
ЗаполнитьЗначенияСвойств(СведенияОДокументе, Выборка);
СведенияОДокументе.Валюта = ВалютаРегУчета;
СведенияОДокументе.ВалютаКод = РеквизитыВалютыРегУчета.Код;
СведенияОДокументе.ВалютаНаименование = РеквизитыВалютыРегУчета.Наименование;
ТаблицаДокумента = ПечатьТорговыхДокументов.ПолучитьОписаниеТаблицыТОРГ12();
Отбор = Новый Структура("Документ", Выборка.Документ);
СтрокиДокумента = СтрокиДокументов.НайтиСтроки(Отбор);
НуженПересчетВРубли = НЕ (Выборка.ВалютаДокумента = ВалютаРегУчета);
Для Каждого Строка Из СтрокиДокумента Цикл
СтрокаТаблицыДокумента = ТаблицаДокумента.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаблицыДокумента, Строка);
Если НуженПересчетВРубли Тогда
Если Строка.СуществуютЗаписиРублевыхСумм Тогда
СтрокаТаблицыДокумента.СуммаНДС = Строка.НДСВРублях;
СтрокаТаблицыДокумента.СуммаБезНДС = Строка.ВсегоВРублях - Строка.НДСВРублях;
Иначе
Кратность = ?(Выборка.Кратность = 0, 1, Выборка.Кратность);
СтрокаТаблицыДокумента.СуммаНДС = Строка.СуммаНДС * Выборка.Курс / Кратность;;
СтрокаТаблицыДокумента.СуммаБезНДС = (Строка.СуммаБезНДС + Строка.СуммаНДС) * Выборка.Курс / Кратность - СтрокаТаблицыДокумента.СуммаНДС;
КонецЕсли;
КонецЕсли;
СтрокаТаблицыДокумента.СуммаСНДС = СтрокаТаблицыДокумента.СуммаБезНДС + СтрокаТаблицыДокумента.СуммаНДС;
Если НуженПересчетВРубли
ИЛИ (Выборка.СуммаВключаетНДС И СтрокаТаблицыДокумента.СуммаНДС <> 0) Тогда
СтрокаТаблицыДокумента.Цена = ?(СтрокаТаблицыДокумента.Количество = 0,
СтрокаТаблицыДокумента.СуммаБезНДС,
СтрокаТаблицыДокумента.СуммаБезНДС / СтрокаТаблицыДокумента.Количество);
КонецЕсли;
КонецЦикла;
СведенияОДокументе.ТаблицаДокумента = ТаблицаДокумента;
ПорядокЗаполнения = Новый Структура("ЗаполнятьРуководителя, ЗаполнятьГлавногоБухгалтера, ЗаполнятьКладовщика");
ПечатьТорговыхДокументов.ЗаполнитьДанныеОтветственныхЛиц(СведенияОДокументе, ПорядокЗаполнения);
Если НЕ ОбщегоНазначенияБПВызовСервераПовтИсп.ЭтоЮрЛицо(СведенияОДокументе.Организация) Тогда
ИндивидуальныйПредприниматель = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СведенияОДокументе.Организация, "ИндивидуальныйПредприниматель");
Если ИндивидуальныйПредприниматель = СведенияОДокументе.Руководитель Тогда
СведенияОДокументе.РуководительДолжностьНаименование = "Индивидуальный предприниматель";
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат ТаблицаСведений;
КонецФункции
Функция ПолучитьТекстЗапросаДляФормированияТаблицыСведенийТОРГ12()
ТекстЗапроса =
"ВЫБРАТЬ
| РегистрСведенийРублевыеСуммыДокументовВВалюте.Регистратор КАК Регистратор,
| РегистрСведенийРублевыеСуммыДокументовВВалюте.НомерСтрокиДокумента КАК НомерСтрокиДокумента,
| РегистрСведенийРублевыеСуммыДокументовВВалюте.ТабличнаяЧастьДокумента КАК ТабличнаяЧастьДокумента,
| РегистрСведенийРублевыеСуммыДокументовВВалюте.Всего,
| РегистрСведенийРублевыеСуммыДокументовВВалюте.НДС,
| РегистрСведенийРублевыеСуммыДокументовВВалюте.НалоговаяБазаНДС
|ПОМЕСТИТЬ РегистрСведенийРублевыеСуммыДокументовВВалюте
|ИЗ
| РегистрСведений.РублевыеСуммыДокументовВВалюте КАК РегистрСведенийРублевыеСуммыДокументовВВалюте
|ГДЕ
| РегистрСведенийРублевыеСуммыДокументовВВалюте.Регистратор В(&МассивДокументов)
|
|ИНДЕКСИРОВАТЬ ПО
| Регистратор,
| НомерСтрокиДокумента,
| ТабличнаяЧастьДокумента
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| ПередачаОС.Ссылка КАК Ссылка,
| ПередачаОС.СуммаВключаетНДС КАК СуммаВключаетНДС,
| ПередачаОС.Дата КАК ДатаДокумента
|ПОМЕСТИТЬ ДокументыДляПечати
|ИЗ
| Документ.ПередачаОС КАК ПередачаОС
|ГДЕ
| ПередачаОС.Ссылка В(&МассивДокументов)
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| ПередачаОС.Ссылка КАК Документ,
| ПередачаОС.Дата КАК ДатаДляПолученияСведений,
| ДанныеПервичныхДокументов.Номер КАК НомерДокумента,
| ДанныеПервичныхДокументов.Дата КАК ДатаДокумента,
| ПередачаОС.Дата КАК ДатаПодписанияДокумента,
| ВЫБОР
| КОГДА ПередачаОС.Организация.ОбособленноеПодразделение
| ТОГДА ПередачаОС.Организация.ГоловнаяОрганизация
| ИНАЧЕ ПередачаОС.Организация
| КОНЕЦ КАК Поставщик,
| ПередачаОС.ПодразделениеОрганизации КАК Подразделение,
| ПередачаОС.Организация КАК Организация,
| ПередачаОС.Контрагент КАК Покупатель,
| ВЫБОР
| КОГДА ПередачаОС.Грузополучатель = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| ТОГДА ПередачаОС.Контрагент
| ИНАЧЕ ПередачаОС.Грузополучатель
| КОНЕЦ КАК Грузополучатель,
| ВЫБОР
| КОГДА ПередачаОС.Грузоотправитель = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| ТОГДА ПередачаОС.Организация
| ИНАЧЕ ПередачаОС.Грузоотправитель
| КОНЕЦ КАК Грузоотправитель,
| ПередачаОС.Организация.ОсновнойБанковскийСчет КАК БанковскийСчетПродавца,
| """" КАК АдресДоставки,
| ПередачаОС.ДоговорКонтрагента КАК Договор,
| ПередачаОС.ДоговорКонтрагента.Представление КАК Основание,
| ПередачаОС.ДоговорКонтрагента.Номер КАК ОснованиеНомер,
| ПередачаОС.ДоговорКонтрагента.Дата КАК ОснованиеДата,
| ПередачаОС.ВалютаДокумента КАК ВалютаДокумента,
| ПередачаОС.КурсВзаиморасчетов КАК Курс,
| ПередачаОС.КратностьВзаиморасчетов КАК Кратность,
| ПередачаОС.СуммаВключаетНДС КАК СуммаВключаетНДС
|ИЗ
| Документ.ПередачаОС КАК ПередачаОС
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПервичныхДокументов КАК ДанныеПервичныхДокументов
| ПО ПередачаОС.Организация = ДанныеПервичныхДокументов.Организация
| И ПередачаОС.Ссылка = ДанныеПервичныхДокументов.Документ
|ГДЕ
| ПередачаОС.Ссылка В
| (ВЫБРАТЬ
| ДокументыДляПечати.Ссылка
| ИЗ
| ДокументыДляПечати КАК ДокументыДляПечати)
|
|УПОРЯДОЧИТЬ ПО
| ДатаДокумента,
| Документ
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| ПередачаОС.Ссылка КАК Документ,
| ДокументыДляПечати.ДатаДокумента КАК ДатаДокумента,
| ЗНАЧЕНИЕ(Перечисление.ТабличныеЧастиДокументов.ОС) КАК ТабличнаяЧасть,
| 1 КАК ПорядокТабличнойЧасти,
| ПередачаОС.НомерСтроки КАК НомерСтроки,
| ПередачаОС.ОсновноеСредство КАК Товар,
| ПередачаОС.ОсновноеСредство.НаименованиеПолное КАК ТоварНаименование,
| ПередачаОС.ОсновноеСредство.Код КАК ТоварКод,
| ПередачаОС.Количество,
| ПередачаОС.Количество КАК КоличествоМест,
| ПередачаОС.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
| ПередачаОС.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
| ПередачаОС.ЕдиницаИзмерения.Код КАК ВидУпаковкиКод,
| ПередачаОС.ЕдиницаИзмерения.Наименование КАК ВидУпаковкиНаименование,
| 1 КАК КоличествоВОдномМесте,
| ПередачаОС.Цена КАК Цена,
| ВЫБОР
| КОГДА ДокументыДляПечати.СуммаВключаетНДС
| ТОГДА ПередачаОС.Сумма - ПередачаОС.СуммаНДС
| ИНАЧЕ ПередачаОС.Сумма
| КОНЕЦ КАК СуммаБезНДС,
| ПередачаОС.СуммаНДС КАК СуммаНДС,
| ПередачаОС.СтавкаНДС,
| ЕСТЬNULL(РегистрСведенийРублевыеСуммыДокументовВВалюте.Всего, 0) КАК ВсегоВРублях,
| ЕСТЬNULL(РегистрСведенийРублевыеСуммыДокументовВВалюте.НДС, 0) КАК НДСВРублях,
| ВЫБОР
| КОГДА РегистрСведенийРублевыеСуммыДокументовВВалюте.Регистратор ЕСТЬ NULL
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК СуществуютЗаписиРублевыхСумм,
| """" КАК НомерТД,
| """" КАК КодСтраныПроисхождения
|ИЗ
| ДокументыДляПечати КАК ДокументыДляПечати
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПередачаОС.ОС КАК ПередачаОС
| ПО ДокументыДляПечати.Ссылка = ПередачаОС.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведенийРублевыеСуммыДокументовВВалюте КАК РегистрСведенийРублевыеСуммыДокументовВВалюте
| ПО (ПередачаОС.Ссылка = РегистрСведенийРублевыеСуммыДокументовВВалюте.Регистратор)
| И (ПередачаОС.НомерСтроки = РегистрСведенийРублевыеСуммыДокументовВВалюте.НомерСтрокиДокумента)
| И (РегистрСведенийРублевыеСуммыДокументовВВалюте.ТабличнаяЧастьДокумента = ЗНАЧЕНИЕ(Перечисление.ТабличныеЧастиДокументов.ОС))
|
|УПОРЯДОЧИТЬ ПО
| ДатаДокумента,
| Документ,
| ПорядокТабличнойЧасти,
| НомерСтроки";
Возврат ТекстЗапроса;
КонецФункции
Показать
(10) чё вот вот? ))
лень самому разобраться...я ж написал всё вроде
на тебе готовую через файл открыть
на название не обращай внимания...лень было перешмякивать
лень самому разобраться...я ж написал всё вроде
на тебе готовую через файл открыть
на название не обращай внимания...лень было перешмякивать
Прикрепленные файлы:
ПередачаОС (ВПФ).epf
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)