Как запретить печать не проведенного документа в 1С Бухгалтерия 3.0 ( документы реализации товаров и услуг )
По теме из базы знаний
- "Процессы 3.0: CRM, Бизнес-процессы, Управление по целям". Универсальная система управления процессами и показателями для любой конфигурации 1С
- Погрешность округления и есть ли средство борьбы с ней возможностями 1С?
- Свертка базы - или как свернуть базу УТ 10.3
- Как автоматизировать учет по проектам в 1С:Бухгалтерии
- Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) asd117, вот есть инфа то что вам конечно не надо но из нее можно подчеркнуть обратное то что вам может пригодится http://infostart.ru/public/188499/
Как вариант, в модуле менеджера документа в процедуре "ДобавитьКомандыПечати" для каждой команды добавить строку КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
получится что-то вида:
В таком случае непроведённый документ не будет печататься.
получится что-то вида:
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "Акт";
КомандаПечати.Представление = НСтр("ru = 'Акт об оказании услуг'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаУслуги";
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
В таком случае непроведённый документ не будет печататься.
Бухгалтерия 3.0
Документ РеализацияТоваровИУслуг,
есть в документе к примеру модуль менеджера, как в нем прописать код который не позволит печатать не проведенный документ
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
// Расходная накладная
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "Накладная";
КомандаПечати.Представление = НСтр("ru = 'Расходная накладная'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаТовары";
// Акт об оказании услуг
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "Акт";
КомандаПечати.Представление = НСтр("ru = 'Акт об оказании услуг'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаУслуги";
// Акт на передачу прав
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "АктНаПередачуПрав";
КомандаПечати.Представление = НСтр("ru = 'Акт на передачу прав'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаТовары,ФормаДокументаУслуги";
// Товарная накладная (ТОРГ-12) с услугами
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "ТОРГ12";
КомандаПечати.Представление = НСтр("ru = 'Товарная накладная (ТОРГ-12) с услугами'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаУслуги";
// Товарная накладная (ТОРГ-12)
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "ТОРГ12_БезУслуг";
КомандаПечати.Представление = НСтр("ru = 'Товарная накладная (ТОРГ-12)'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаТовары";
// Накладная на отпуск материалов на сторону (М-15)
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "М15";
КомандаПечати.Представление = НСтр("ru = 'Накладная на отпуск материалов на сторону (М-15)'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаТовары";
// Транспортная накладная
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьТранспортнойНакладной";
КомандаПечати.Идентификатор = "ТранспортнаяНакладная";
КомандаПечати.Представление = НСтр("ru = 'Транспортная накладная'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаТовары";
// Товарно-транспортная накладная (1-Т)
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьТТН";
КомандаПечати.Идентификатор = "ТТН";
КомандаПечати.Представление = НСтр("ru = 'Товарно-транспортная накладная (1-Т)'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаТовары";
// Счет-фактура
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "СчетФактура";
КомандаПечати.Представление = НСтр("ru = 'Счет-фактура'");
КомандаПечати.Обработчик = "УчетНДСКлиент.ВыполнитьКомандуПечатиСчетовФактур";
// Справка-расчет "Рублевые суммы документа в валюте"
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьРублевыхСуммДокументовВВалюте";
КомандаПечати.Идентификатор = "РублевыеСуммыДокументаВВалюте";
КомандаПечати.Представление = НСтр("ru = 'Справка-расчет ""Рублевые суммы документа в валюте""'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.ФункциональныеОпции = "ИспользоватьВалютныйУчет";
// Универсальный передаточный документ
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "УниверсальныйПередаточныйДокумент";
КомандаПечати.Представление = НСтр("ru = 'Универсальный передаточный документ (УПД)'");
КомандаПечати.Обработчик = "УчетНДСКлиент.ВыполнитьКомандуПечатиУниверсальныхПередаточныхДокументов";
// Реестр документов
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "Реестр";
КомандаПечати.Представление = НСтр("ru = 'Реестр документов'");
КомандаПечати.ЗаголовокФормы= НСтр("ru = 'Реестр документов ""Реализация товаров и услуг""'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечатиРеестраДокументов";
КомандаПечати.СписокФорм = "ФормаСписка";
КомандаПечати.Порядок = 100;
КонецПроцедуры
Документ РеализацияТоваровИУслуг,
есть в документе к примеру модуль менеджера, как в нем прописать код который не позволит печатать не проведенный документ
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
// Расходная накладная
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "Накладная";
КомандаПечати.Представление = НСтр("ru = 'Расходная накладная'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаТовары";
// Акт об оказании услуг
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "Акт";
КомандаПечати.Представление = НСтр("ru = 'Акт об оказании услуг'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаУслуги";
// Акт на передачу прав
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "АктНаПередачуПрав";
КомандаПечати.Представление = НСтр("ru = 'Акт на передачу прав'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаТовары,ФормаДокументаУслуги";
// Товарная накладная (ТОРГ-12) с услугами
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "ТОРГ12";
КомандаПечати.Представление = НСтр("ru = 'Товарная накладная (ТОРГ-12) с услугами'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаУслуги";
// Товарная накладная (ТОРГ-12)
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "ТОРГ12_БезУслуг";
КомандаПечати.Представление = НСтр("ru = 'Товарная накладная (ТОРГ-12)'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаТовары";
// Накладная на отпуск материалов на сторону (М-15)
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "М15";
КомандаПечати.Представление = НСтр("ru = 'Накладная на отпуск материалов на сторону (М-15)'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаТовары";
// Транспортная накладная
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьТранспортнойНакладной";
КомандаПечати.Идентификатор = "ТранспортнаяНакладная";
КомандаПечати.Представление = НСтр("ru = 'Транспортная накладная'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаТовары";
// Товарно-транспортная накладная (1-Т)
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьТТН";
КомандаПечати.Идентификатор = "ТТН";
КомандаПечати.Представление = НСтр("ru = 'Товарно-транспортная накладная (1-Т)'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаТовары";
// Счет-фактура
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "СчетФактура";
КомандаПечати.Представление = НСтр("ru = 'Счет-фактура'");
КомандаПечати.Обработчик = "УчетНДСКлиент.ВыполнитьКомандуПечатиСчетовФактур";
// Справка-расчет "Рублевые суммы документа в валюте"
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьРублевыхСуммДокументовВВалюте";
КомандаПечати.Идентификатор = "РублевыеСуммыДокументаВВалюте";
КомандаПечати.Представление = НСтр("ru = 'Справка-расчет ""Рублевые суммы документа в валюте""'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.ФункциональныеОпции = "ИспользоватьВалютныйУчет";
// Универсальный передаточный документ
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "УниверсальныйПередаточныйДокумент";
КомандаПечати.Представление = НСтр("ru = 'Универсальный передаточный документ (УПД)'");
КомандаПечати.Обработчик = "УчетНДСКлиент.ВыполнитьКомандуПечатиУниверсальныхПередаточныхДокументов";
// Реестр документов
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "Реестр";
КомандаПечати.Представление = НСтр("ru = 'Реестр документов'");
КомандаПечати.ЗаголовокФормы= НСтр("ru = 'Реестр документов ""Реализация товаров и услуг""'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечатиРеестраДокументов";
КомандаПечати.СписокФорм = "ФормаСписка";
КомандаПечати.Порядок = 100;
КонецПроцедуры
(11) asd117, вам в принципе дали ответ в 8 посте но на всякий случай выложу, код процедуры которую вы выложили должен принять вид следующий и тогда все будет работать как надо там видно куда нужно внести изменения
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
// Расходная накладная
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "Накладная";
КомандаПечати.Представление = НСтр("ru = 'Расходная накладная'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаТовары";
//++++ изменения начало 27.08.2014
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
//++++ изменения конец 27.08.2014
// Акт об оказании услуг
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "Акт";
КомандаПечати.Представление = НСтр("ru = 'Акт об оказании услуг'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаУслуги";
//++++ изменения начало 27.08.2014
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
//++++ изменения конец 27.08.2014
// Товарная накладная (ТОРГ-12) с услугами
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "ТОРГ12";
КомандаПечати.Представление = НСтр("ru = 'Товарная накладная (ТОРГ-12) с услугами'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаУслуги";
//++++ изменения начало 27.08.2014
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
//++++ изменения конец 27.08.2014
// Товарная накладная (ТОРГ-12)
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "ТОРГ12_БезУслуг";
КомандаПечати.Представление = НСтр("ru = 'Товарная накладная (ТОРГ-12)'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаТовары";
//++++ изменения начало 27.08.2014
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
//++++ изменения конец 27.08.2014
// Накладная на отпуск материалов на сторону (М-15)
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "М15";
КомандаПечати.Представление = НСтр("ru = 'Накладная на отпуск материалов на сторону (М-15)'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаТовары";
//++++ изменения начало 27.08.2014
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
//++++ изменения конец 27.08.2014
// Транспортная накладная
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьТранспортнойНакладной";
КомандаПечати.Идентификатор = "ТранспортнаяНакладная";
КомандаПечати.Представление = НСтр("ru = 'Транспортная накладная'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаТовары";
//++++ изменения начало 27.08.2014
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
//++++ изменения конец 27.08.2014
// Товарно-транспортная накладная (1-Т)
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьТТН";
КомандаПечати.Идентификатор = "ТТН";
КомандаПечати.Представление = НСтр("ru = 'Товарно-транспортная накладная (1-Т)'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.СписокФорм = "ФормаСписка,ФормаВыбора,ФормаДокументаОбщая,ФормаДокументаТовары";
//++++ изменения начало 27.08.2014
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
//++++ изменения конец 27.08.2014
// Счет-фактура
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "СчетФактура";
КомандаПечати.Представление = НСтр("ru = 'Счет-фактура'");
КомандаПечати.Обработчик = "УчетНДСКлиент.ВыполнитьКомандуПечатиСчетовФактур";
//++++ изменения начало 27.08.2014
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
//++++ изменения конец 27.08.2014
// Справка-расчет "Рублевые суммы документа в валюте"
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.ПечатьРублевыхСуммДокументовВВалюте";
КомандаПечати.Идентификатор = "РублевыеСуммыДокументаВВалюте";
КомандаПечати.Представление = НСтр("ru = 'Справка-расчет ""Рублевые суммы документа в валюте""'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КомандаПечати.ФункциональныеОпции = "ИспользоватьВалютныйУчет";
//++++ изменения начало 27.08.2014
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
//++++ изменения конец 27.08.2014
// Универсальный передаточный документ
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "УниверсальныйПередаточныйДокумент";
КомандаПечати.Представление = НСтр("ru = 'Универсальный передаточный документ (УПД)'");
КомандаПечати.Обработчик = "УчетНДСКлиент.ВыполнитьКомандуПечатиУниверсальныхПередаточныхДокументов";
//++++ изменения начало 27.08.2014
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
//++++ изменения конец 27.08.2014
// Реестр документов
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "Реестр";
КомандаПечати.Представление = НСтр("ru = 'Реестр документов'");
КомандаПечати.ЗаголовокФормы= НСтр("ru = 'Реестр документов ""Реализация товаров и услуг""'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечатиРеестраДокументов";
КомандаПечати.СписокФорм = "ФормаСписка";
КомандаПечати.Порядок = 100;
//++++ изменения начало 27.08.2014
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
//++++ изменения конец 27.08.2014
КонецПроцедуры
Показать
(14) asd117, зайди в общие модули УправлениеПечатью
а лучше всего поставь точки остановок и тебе все будет понятно когда отладчиком пройдешь что зачем выполняется и когда
// * ПроверкаПроведенияПередПечатью - Булево - (необязательный) Признак необходимости проверки проведенности // документов перед печатью. Если параметр не указан, то проверка проведенности // не выполняется.
а лучше всего поставь точки остановок и тебе все будет понятно когда отладчиком пройдешь что зачем выполняется и когда
А намекните пожалуйста как тоже самое в УНФ сделать?
////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ПЕЧАТИ ФОРМЫ
// Функция формирует поле в том числе для печатной формы.
//
// Параметры:
// ВыборкаДляПечати - Выборка из результата запроса.
//
// Возвращаемое значение:
// Строка - текст поля "в том числе".
//
Функция ПолучитьТекстВТомЧисле(ВыборкаДляПечати, РасшифровкаПлатежа = 21)
ТабНДС = РасшифровкаПлатежа.Выгрузить();
ТабНДС.Свернуть("СтавкаНДС", "СуммаНДС");
ТекстСуммаНДС = "";
Если ТабНДС.Количество() > 0 Тогда
Для каждого СтрокаНДС ИЗ ТабНДС цикл
ТекстСуммаНДС = ТекстСуммаНДС
+ Символы.ПС
+ "НДС ("
+ ?(НЕ ЗначениеЗаполнено(СтрокаНДС.СтавкаНДС),
"без налога",
СтрокаНДС.СтавкаНДС)
+ ") "
+ Формат(СтрокаНДС.СуммаНДС, "ЧЦ=15; ЧДЦ=2; ЧРД=-; ЧН=0-00")
+ " "
+ ВыборкаДляПечати.ВалютаПредставление;
КонецЦикла;
Иначе
ТекстСуммаНДС = ТекстСуммаНДС
+ Символы.ПС
+ "НДС (без налога) "
+ Формат(0, "ЧЦ=15; ЧДЦ=2; ЧРД=-; ЧН=0-00")
+ " "
+ ВыборкаДляПечати.ВалютаПредставление;
КонецЕсли;
ТекстСуммаНДС = Сред(ТекстСуммаНДС, 2);
Возврат ТекстСуммаНДС;
КонецФункции
// Функция формирует поле СуммаРубКоп для печатной формы.
//
Функция РубКоп(Сумма)
Руб = Цел(Сумма);
Коп = ОКР(100 * (Сумма - Руб), 0, 1);
СуммаРубКоп = "" + Руб + " руб. " + Цел(Коп/10) + (Коп - 10 * Цел(Коп / 10)) + " коп.";
Возврат СуммаРубКоп;
КонецФункции // РубКоп()
// Функция формирует печатную форму документа по указанному макету.
//
// Параметры:
// ТабличныйДокумент - ТабличныйДокумент в который будет выводится печатная
// форма.
// ИмяМакета - Строка, имя макета печатной формы.
//
Функция ПечатнаяФорма(МассивОбъектов, ОбъектыПечати)
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.КлючПараметровПечати = "ПараметрыПечати_ПоступлениеВКассу";
ПервыйДокумент = Истина;
Для каждого ТекущийДокумент Из МассивОбъектов Цикл
Если НЕ ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
Если ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийПоступлениеВКассу.Прочее
ИЛИ ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийПоступлениеВКассу.ПокупкаВалюты Тогда
СтрокаКредитСубСчет = "ПоступлениеВКассу.Корреспонденция.Код КАК КорСчет,
|НЕОПРЕДЕЛЕНО КАК КорСчетАвансов";
ИначеЕсли ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийПоступлениеВКассу.ОтПодотчетника Тогда
СтрокаКредитСубСчет = "ПоступлениеВКассу.Подотчетник.СчетРасчетовСПодотчетниками.Код КАК КорСчет,
|НЕОПРЕДЕЛЕНО КАК КорСчетАвансов";
ИначеЕсли ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийПоступлениеВКассу.ОтПокупателя Тогда
СтрокаКредитСубСчет = "ПоступлениеВКассу.Контрагент.СчетУчетаРасчетовСПокупателем.Код КАК КорСчет,
|ПоступлениеВКассу.Контрагент.СчетУчетаАвансовПокупателя.Код КАК КорСчетАвансов";
ИначеЕсли ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийПоступлениеВКассу.ОтПоставщика Тогда
СтрокаКредитСубСчет = "ПоступлениеВКассу.Контрагент.СчетУчетаРасчетовСПоставщиком.Код КАК КорСчет,
|ПоступлениеВКассу.Контрагент.СчетУчетаАвансовПоставщику.Код КАК КорСчетАвансов";
Иначе
СтрокаКредитСубСчет = "НЕОПРЕДЕЛЕНО КАК КорСчет,
|НЕОПРЕДЕЛЕНО КАК КорСчетАвансов";
КонецЕсли;
Запрос.Текст =
"ВЫБРАТЬ
| ПоступлениеВКассу.Ссылка КАК Ссылка,
| ПоступлениеВКассу.Номер КАК Номер,
| ПоступлениеВКассу.Дата КАК ДатаДокумента,
| ПоступлениеВКассу.Организация КАК Организация,
| ПоступлениеВКассу.Организация.Префикс КАК Префикс,
| ПоступлениеВКассу.Организация.КодПоОКПО КАК ОрганизацияПоОКПО,
| ПоступлениеВКассу.Организация.НаименованиеПолное КАК ПредставлениеОрганизации,
| ПоступлениеВКассу.Касса.СчетУчета.Код КАК КодДебета,
| ПоступлениеВКассу.ВалютаДенежныхСредств КАК ВалютаДенежныхСредств,
| ПРЕДСТАВЛЕНИЕ(ПоступлениеВКассу.ВалютаДенежныхСредств) КАК ВалютаПредставление,
| ПоступлениеВКассу.ПринятоОт КАК ПринятоОт,
| ПоступлениеВКассу.Основание КАК Основание,
| ПоступлениеВКассу.Приложение КАК Приложение,
| ПоступлениеВКассу.СуммаДокумента КАК СуммаДокумента,
| " + СтрокаКредитСубСчет + "
|ИЗ
| Документ.ПоступлениеВКассу КАК ПоступлениеВКассу
|ГДЕ
| ПоступлениеВКассу.Ссылка = &ТекущийДокумент";
ВыборкаДляПечати = Запрос.Выполнить().Выбрать();
ВыборкаДляПечати.Следующий();
ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПоступлениеВКассу_ПоступлениеВКассу";
Макет = УправлениеПечатью.ПолучитьМакет("Документ.ПоступлениеВКассу.ПФ_MXL_ПКО");
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
Валютный = ВыборкаДляПечати.ВалютаДенежныхСредств <> Константы.НациональнаяВалюта.Получить();
Если ВыборкаДляПечати.ДатаДокумента < Дата('20110101') Тогда
НомерДокумента = УправлениеНебольшойФирмойСервер.ПолучитьНомерНаПечать(ВыборкаДляПечати.Номер, ВыборкаДляПечати.Префикс);
Иначе
НомерДокумента = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(ВыборкаДляПечати.Номер, Истина, Истина);
КонецЕсли;
ОбластьМакета.Параметры.СубСчет = СокрЛП(ВыборкаДляПечати.КорСчет) + ?(ЗначениеЗаполнено(ВыборкаДляПечати.КорСчетАвансов), "," + СокрЛП(ВыборкаДляПечати.КорСчетАвансов), "");
ОбластьМакета.Параметры.СуммаРубКоп = ?(Валютный, Формат(ВыборкаДляПечати.СуммаДокумента, "ЧЦ=15; ЧДЦ=2") + " " + СокрЛП(ВыборкаДляПечати.ВалютаДенежныхСредств), РубКоп(ВыборкаДляПечати.СуммаДокумента));
ОбластьМакета.Параметры.Заполнить(ВыборкаДляПечати);
ОбластьМакета.Параметры.НомерДокумента = НомерДокумента;
ОбластьМакета.Параметры.Сумма = Формат(ВыборкаДляПечати.СуммаДокумента, "ЧЦ=15; ЧДЦ=2") + ?(Валютный, " " + СокрЛП(ВыборкаДляПечати.ВалютаДенежныхСредств), "");
ОбластьМакета.Параметры.СуммаПрописью = УправлениеНебольшойФирмойСервер.ФорматироватьСуммуПрописьюПлатежногоДокумента(
ВыборкаДляПечати.СуммаДокумента,
ВыборкаДляПечати.ВалютаДенежныхСредств,
Ложь
);
Руководители = УправлениеНебольшойФирмойСервер.ОтветственныеЛицаОрганизационнойЕдиницы(ВыборкаДляПечати.Организация, ВыборкаДляПечати.ДатаДокумента);
ОбластьМакета.Параметры.ФИОГлавногоБухгалтера = Руководители.ФИОГлавногоБухгалтера;
ОбластьМакета.Параметры.ФИОКассира = Руководители.ФИОКассира;
ОбластьМакета.Параметры.ВТомЧисле = ПолучитьТекстВТомЧисле(ВыборкаДляПечати, ТекущийДокумент.РасшифровкаПлатежа);
ТабличныйДокумент.Вывести(ОбластьМакета);
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ВыборкаДляПечати.Ссылка);
КонецЦикла;
ТабличныйДокумент.АвтоМасштаб = Истина;
Возврат ТабличныйДокумент;
КонецФункции // ПечатнаяФорма()
//Конец 1С-Минск
// Сформировать печатные формы объектов
//
// ВХОДЯЩИЕ:
// ИменаМакетов - Строка - Имена макетов, перечисленные через запятую
// МассивОбъектов - Массив - Массив ссылок на объекты которые нужно распечатать
// ПараметрыПечати - Структура - Структура дополнительных параметров печати
//
// ИСХОДЯЩИЕ:
// КоллекцияПечатныхФорм - Таблица значений - Сформированные табличные документы
// ПараметрыВывода - Структура - Параметры сформированных табличных документов
//
Процедура Печать(МассивОбъектов, ПараметрыПечати,
КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПКО") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПКО", "Приходный кассовый ордер", ПечатнаяФорма(МассивОбъектов, ОбъектыПечати));
КонецЕсли;
// параметры отправки печатных форм по электронной почте
УправлениеНебольшойФирмойСервер.ЗаполнитьПараметрыОтправки(ПараметрыВывода.ПараметрыОтправки, МассивОбъектов, КоллекцияПечатныхФорм);
//1С-Минск
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПриходныйКассовыйОрдер") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПриходныйКассовыйОрдер", "Приходный кассовый ордер", ПечатнаяФормаРБ(МассивОбъектов, ОбъектыПечати, "ПриходныйКассовыйОрдер"));
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПриходныйКассовыйОрдерПЭВМ") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПриходныйКассовыйОрдерПЭВМ", "Приходный кассовый ордер ПЭВМ", ПечатнаяФормаРБ(МассивОбъектов, ОбъектыПечати, "ПриходныйКассовыйОрдерПЭВМ"));
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПриходныйКассовыйОрдерВалютный") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПриходныйКассовыйОрдерВалютный", "Приходный кассовый ордер валютный", ПечатнаяФормаРБ(МассивОбъектов, ОбъектыПечати, "ПриходныйКассовыйОрдерВалютный"));
КонецЕсли;
//Конец 1С-Минск
КонецПроцедуры
Функция ПолучитьДанныеПечати(знач МассивДокументов, знач МассивИменМакетов) Экспорт
ДанныеПоВсемОбъектам = Новый Соответствие;
ОписаниеОбластей = Новый Соответствие;
ДвоичныеДанныеМакетов = Новый Соответствие;
ТипыМакетов = Новый Соответствие;
Возврат Новый Структура("Данные, Макеты",
ДанныеПоВсемОбъектам,
Новый Структура("ОписаниеОбластей, ТипыМакетов, ДвоичныеДанныеМакетов",
ОписаниеОбластей,
ТипыМакетов,
ДвоичныеДанныеМакетов));
КонецФункции
//1С-Минск
Функция ПечатнаяФормаРБ(МассивОбъектов, ОбъектыПечати, ИмяМакета)
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.КлючПараметровПечати = "ПараметрыПечати_ПоступлениеВКассу";
ПервыйДокумент = Истина;
Для каждого ТекущийДокумент Из МассивОбъектов Цикл
Если НЕ ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
Если ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийПоступлениеВКассу.Прочее
ИЛИ ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийПоступлениеВКассу.ПокупкаВалюты Тогда
СтрокаКредитСубСчет = "ПоступлениеВКассу.Корреспонденция.Код КАК КорСчет,
|НЕОПРЕДЕЛЕНО КАК КорСчетАвансов";
ИначеЕсли ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийПоступлениеВКассу.ОтПодотчетника Тогда
СтрокаКредитСубСчет = "ПоступлениеВКассу.Подотчетник.СчетРасчетовСПодотчетниками.Код КАК КорСчет,
|НЕОПРЕДЕЛЕНО КАК КорСчетАвансов";
ИначеЕсли ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийПоступлениеВКассу.ОтПокупателя Тогда
СтрокаКредитСубСчет = "ПоступлениеВКассу.Контрагент.СчетУчетаРасчетовСПокупателем.Код КАК КорСчет,
|ПоступлениеВКассу.Контрагент.СчетУчетаАвансовПокупателя.Код КАК КорСчетАвансов";
ИначеЕсли ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийПоступлениеВКассу.ОтПоставщика Тогда
СтрокаКредитСубСчет = "ПоступлениеВКассу.Контрагент.СчетУчетаРасчетовСПоставщиком.Код КАК КорСчет,
|ПоступлениеВКассу.Контрагент.СчетУчетаАвансовПоставщику.Код КАК КорСчетАвансов";
Иначе
СтрокаКредитСубСчет = "НЕОПРЕДЕЛЕНО КАК КорСчет,
|НЕОПРЕДЕЛЕНО КАК КорСчетАвансов";
КонецЕсли;
Запрос.Текст =
"ВЫБРАТЬ
| ПоступлениеВКассу.Ссылка КАК Ссылка,
| ПоступлениеВКассу.Номер КАК Номер,
| ПоступлениеВКассу.Дата КАК ДатаДокумента,
| ПоступлениеВКассу.ВидОперации,
| ПоступлениеВКассу.Организация КАК Организация,
| ПоступлениеВКассу.Организация.Префикс КАК Префикс,
| ПоступлениеВКассу.Организация.КодПоОКПО КАК ОрганизацияПоОКПО,
| ПоступлениеВКассу.Организация.НаименованиеПолное КАК ПредставлениеОрганизации,
| ПоступлениеВКассу.Касса.СчетУчета.Код КАК КодДебета,
| ПоступлениеВКассу.ВалютаДенежныхСредств КАК ВалютаДенежныхСредств,
| ПРЕДСТАВЛЕНИЕ(ПоступлениеВКассу.ВалютаДенежныхСредств) КАК ВалютаПредставление,
| ПоступлениеВКассу.ПринятоОт КАК ПринятоОт,
| ПоступлениеВКассу.Основание КАК Основание,
| ПоступлениеВКассу.Приложение КАК Приложение,
| ПоступлениеВКассу.Контрагент КАК Контрагент,
| ПоступлениеВКассу.СуммаДокумента КАК СуммаДокумента,
| " + СтрокаКредитСубСчет + "
|ИЗ
| Документ.ПоступлениеВКассу КАК ПоступлениеВКассу
|ГДЕ
| ПоступлениеВКассу.Ссылка = &ТекущийДокумент";
ВыборкаДляПечати = Запрос.Выполнить().Выбрать();
ВыборкаДляПечати.Следующий();
ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПоступлениеВКассу_ПоступлениеВКассу";
Если ИмяМакета = "ПриходныйКассовыйОрдер" Тогда
Макет = УправлениеПечатью.ПолучитьМакет("ОбщийМакет.ПФ_MXL_КО1_РБ2010");
ЕстьРасчетыСКонтрагентами = (ВыборкаДляПечати.ВидОперации = Перечисления.ВидыОперацийПоступлениеВКассу.ОтПоставщика или ВыборкаДляПечати.ВидОперации = Перечисления.ВидыОперацийПоступлениеВКассу.ОтПокупателя);
Валютный = (НЕ ВыборкаДляПечати.ВалютаДенежныхСредств= Константы.ВалютаУчета.Получить());
// Выводим шапку ПКО
СведенияОбОрганизации = УправлениеНебольшойФирмойСервер.СведенияОЮрФизЛице(ВыборкаДляПечати.Организация, ВыборкаДляПечати.ДатаДокумента);
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
ОбластьМакета.Параметры.Заполнить(ВыборкаДляПечати);
Если ВыборкаДляПечати.ДатаДокумента < Дата('20110101') Тогда
НомерДокумента = УправлениеНебольшойФирмойСервер.ПолучитьНомерНаПечать(ВыборкаДляПечати.Номер, ВыборкаДляПечати.Префикс);
Иначе
НомерДокумента = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(ВыборкаДляПечати.Номер, Истина, Истина);
КонецЕсли;
ОбластьМакета.Параметры.ПредставлениеОрганизации = УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(СведенияОбОрганизации, "ПолноеНаименование,");
ОбластьМакета.Параметры.Сумма = Формат(ВыборкаДляПечати.СуммаДокумента,"ЧЦ=15; ЧДЦ=0")+?(Валютный," "+СокрЛП(ВыборкаДляПечати.ВалютаДенежныхСредств),"");
ОбластьМакета.Параметры.СуммаПрописью = УправлениеНебольшойФирмойСервер.СформироватьСуммуПрописью(ВыборкаДляПечати.СуммаДокумента,ВыборкаДляПечати.ВалютаДенежныхСредств );
ОбластьМакета.Параметры.ДатаДокумента = Формат(ВыборкаДляПечати.ДатаДокумента, "ДФ = 'дд ММММ гггг'");
ОбластьМакета.Параметры.НомерДокумента = НомерДокумента;
ТабНДС = ТекущийДокумент.РасшифровкаПлатежа.Выгрузить();
ТабНДС.Свернуть("СтавкаНДС","СуммаНДС");
СуммаНДС = 0;
Если ТабНДС.Количество() > 0 Тогда
ОбластьМакета.Параметры.НДС = ТабНДС[0].СтавкаНДС;
Для Каждого СтрокаНДС ИЗ ТабНДС цикл
СуммаНДС = СуммаНДС + СтрокаНДС.СуммаНДС;
КонецЦикла;
ОбластьМакета.Параметры.СуммаНДС = СуммаНДС;
КонецЕсли;
Руководители = УправлениеНебольшойФирмойСервер.ОтветственныеЛицаОрганизационнойЕдиницы(ВыборкаДляПечати.Организация, КонецДня(ВыборкаДляПечати.ДатаДокумента));
Бухгалтер = Руководители.ФИОГлавногоБухгалтера;
Кассир = Руководители.ФИОКассира;
ОбластьМакета.Параметры.ФИОГлавногоБухгалтера = Бухгалтер;
ОбластьМакета.Параметры.ФИОКассира = Кассир;
ТекстПринятоОт = ВыборкаДляПечати.ПринятоОт;
Если ТекстПринятоОт = "" И ЗначениеЗаполнено(ВыборкаДляПечати.Контрагент) Тогда
Если ЕстьРасчетыСКонтрагентами Тогда
ТекстПринятоОт = ?(ВыборкаДляПечати.Контрагент.НаименованиеПолное = "", ВыборкаДляПечати.Контрагент.Наименование, ВыборкаДляПечати.Контрагент.НаименованиеПолное);
КонецЕсли;
КонецЕсли;
ОбластьМакета.Параметры.ПринятоОт = ТекстПринятоОт;
ОбластьМакета.Параметры.Основание = ВыборкаДляПечати.Основание;
ОбластьМакета.Параметры.Приложение = ВыборкаДляПечати.Приложение;
ТабличныйДокумент.Вывести(ОбластьМакета);
ИначеЕсли ИмяМакета = "ПриходныйКассовыйОрдерПЭВМ" Тогда
Макет = УправлениеПечатью.ПолучитьМакет("ОбщийМакет.ПФ_MXL_КО1_ПЭВМ2010");
ЕстьРасчетыСКонтрагентами = (ВыборкаДляПечати.ВидОперации = Перечисления.ВидыОперацийПоступлениеВКассу.ОтПоставщика или ВыборкаДляПечати.ВидОперации = Перечисления.ВидыОперацийПоступлениеВКассу.ОтПокупателя);
Валютный=(НЕ ВыборкаДляПечати.ВалютаДенежныхСредств= Константы.ВалютаУчета.Получить());
// Выводим шапку ПКО
СведенияОбОрганизации = УправлениеНебольшойФирмойСервер.СведенияОЮрФизЛице(ВыборкаДляПечати.Организация, ВыборкаДляПечати.ДатаДокумента);
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
Если ВыборкаДляПечати.ДатаДокумента < Дата('20110101') Тогда
НомерДокумента = УправлениеНебольшойФирмойСервер.ПолучитьНомерНаПечать(ВыборкаДляПечати.Номер, ВыборкаДляПечати.Префикс);
Иначе
НомерДокумента = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(ВыборкаДляПечати.Номер, Истина, Истина);
КонецЕсли;
ОбластьМакета.Параметры.Заполнить(ВыборкаДляПечати);
ОбластьМакета.Параметры.ПредставлениеОрганизации = УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(СведенияОбОрганизации, "ПолноеНаименование,");
ОбластьМакета.Параметры.Сумма = Формат(ВыборкаДляПечати.СуммаДокумента,"ЧЦ=15; ЧДЦ=0")+?(Валютный," "+СокрЛП(ВыборкаДляПечати.ВалютаДенежныхСредств),"");
ОбластьМакета.Параметры.СуммаПрописью = УправлениеНебольшойФирмойСервер.СформироватьСуммуПрописью(ВыборкаДляПечати.СуммаДокумента,ВыборкаДляПечати.ВалютаДенежныхСредств );
ОбластьМакета.Параметры.ДатаДокумента = Формат(ВыборкаДляПечати.ДатаДокумента, "ДФ = 'дд ММММ гггг'");
ТабНДС = ТекущийДокумент.РасшифровкаПлатежа.Выгрузить();
ТабНДС.Свернуть("СтавкаНДС","СуммаНДС");
СуммаНДС = 0;
Если ТабНДС.Количество() > 0 Тогда
ОбластьМакета.Параметры.НДС = ТабНДС[0].СтавкаНДС;
Для Каждого СтрокаНДС ИЗ ТабНДС цикл
СуммаНДС = СуммаНДС + СтрокаНДС.СуммаНДС;
КонецЦикла;
ОбластьМакета.Параметры.СуммаНДС = СуммаНДС;
КонецЕсли;
Руководители = УправлениеНебольшойФирмойСервер.ОтветственныеЛицаОрганизационнойЕдиницы(ВыборкаДляПечати.Организация, КонецДня(ВыборкаДляПечати.ДатаДокумента));
Бухгалтер = Руководители.ФИОГлавногоБухгалтера;
Кассир = Руководители.ФИОКассира;
ОбластьМакета.Параметры.ФИОГлавногоБухгалтера = Бухгалтер;
ОбластьМакета.Параметры.ФИОКассира = Кассир;
ТекстПринятоОт = ВыборкаДляПечати.ПринятоОт;
Если ТекстПринятоОт = "" И ЗначениеЗаполнено(ВыборкаДляПечати.Контрагент) Тогда
Если ЕстьРасчетыСКонтрагентами Тогда
ТекстПринятоОт = ?(ВыборкаДляПечати.Контрагент.НаименованиеПолное = "", ВыборкаДляПечати.Контрагент.Наименование, ВыборкаДляПечати.Контрагент.НаименованиеПолное);
КонецЕсли;
КонецЕсли;
ОбластьМакета.Параметры.ПринятоОт = ТекстПринятоОт;
ОбластьМакета.Параметры.Основание = ВыборкаДляПечати.Основание;
ОбластьМакета.Параметры.Приложение = ВыборкаДляПечати.Приложение;
ТабличныйДокумент.Вывести(ОбластьМакета);
ИначеЕсли ИмяМакета = "ПриходныйКассовыйОрдерВалютный" Тогда
Макет = УправлениеПечатью.ПолучитьМакет("ОбщийМакет.ПФ_MXL_КО1В_РБ2010");
ЕстьРасчетыСКонтрагентами = (ВыборкаДляПечати.ВидОперации = Перечисления.ВидыОперацийПоступлениеВКассу.ОтПоставщика или ВыборкаДляПечати.ВидОперации = Перечисления.ВидыОперацийПоступлениеВКассу.ОтПокупателя);
Валютный = (НЕ ВыборкаДляПечати.ВалютаДенежныхСредств= Константы.ВалютаУчета.Получить());
СтруктураКурса = ПолучитьКурсВалюты(ВыборкаДляПечати.ВалютаДенежныхСредств, ВыборкаДляПечати.ДатаДокумента);
// Выводим шапку ПКО
СведенияОбОрганизации = УправлениеНебольшойФирмойСервер.СведенияОЮрФизЛице(ВыборкаДляПечати.Организация, ВыборкаДляПечати.ДатаДокумента);
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
Если ВыборкаДляПечати.ДатаДокумента < Дата('20110101') Тогда
НомерДокумента = УправлениеНебольшойФирмойСервер.ПолучитьНомерНаПечать(ВыборкаДляПечати.Номер, ВыборкаДляПечати.Префикс);
Иначе
НомерДокумента = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(ВыборкаДляПечати.Номер, Истина, Истина);
КонецЕсли;
ОбластьМакета.Параметры.Заполнить(ВыборкаДляПечати);
ОбластьМакета.Параметры.Сумма = Формат(ВыборкаДляПечати.СуммаДокумента,"ЧЦ=15; ЧДЦ=0")+?(Валютный," "+СокрЛП(ВыборкаДляПечати.ВалютаДенежныхСредств),"");
ОбластьМакета.Параметры.СуммаПрописью = УправлениеНебольшойФирмойСервер.СформироватьСуммуПрописью(ВыборкаДляПечати.СуммаДокумента,ВыборкаДляПечати.ВалютаДенежныхСредств );
ОбластьМакета.Параметры.ДатаДокумента = Формат(ВыборкаДляПечати.ДатаДокумента, "ДФ = 'дд ММММ гггг'");
ОбластьМакета.Параметры.ВалютаКурс = СтруктураКурса.Курс;
Кратность = ?(СтруктураКурса.Кратность = 0, 1, СтруктураКурса.Кратность);
ВалютаРег = Константы.ВалютаУчета.Получить();
СтрокаПараметров = СтрЗаменить(ВыборкаДляПечати.ВалютаДенежныхСредств.ПараметрыПрописиНаРусском, ",", Символы.ПС);
ДлинаДробнойЧасти = Число(Лев(СокрЛП(СтрПолучитьСтроку(СтрокаПараметров, 9)),1));
ОбластьМакета.Параметры.СуммаРуб = Окр(ВыборкаДляПечати.СуммаДокумента * СтруктураКурса.Курс / Кратность,ДлинаДробнойЧасти,1);
ОбластьМакета.Параметры.НомерДокумента = НомерДокумента;
ТабНДС = ТекущийДокумент.РасшифровкаПлатежа.Выгрузить();
ТабНДС.Свернуть("СтавкаНДС","СуммаНДС");
СуммаНДС = 0;
Если ТабНДС.Количество() > 0 Тогда
ОбластьМакета.Параметры.СтавкаНДС = ТабНДС[0].СтавкаНДС;
Для Каждого СтрокаНДС ИЗ ТабНДС цикл
СуммаНДС = СуммаНДС + СтрокаНДС.СуммаНДС;
КонецЦикла;
КонецЕсли;
ОбластьМакета.Параметры.СуммаНДС = Формат(СуммаНДС,"ЧЦ=15; ЧДЦ=2")+?(Валютный," "+СокрЛП(ВыборкаДляПечати.ВалютаДенежныхСредств),"");
Руководители = УправлениеНебольшойФирмойСервер.ОтветственныеЛицаОрганизационнойЕдиницы(ВыборкаДляПечати.Организация, КонецДня(ВыборкаДляПечати.ДатаДокумента));
Бухгалтер = Руководители.ФИОГлавногоБухгалтера;
Кассир = Руководители.ФИОКассира;
ОбластьМакета.Параметры.ГлавБух = Бухгалтер;
ОбластьМакета.Параметры.Кассир = Кассир;
ТекстПринятоОт = ВыборкаДляПечати.ПринятоОт;
Если ТекстПринятоОт = "" И ЗначениеЗаполнено(ВыборкаДляПечати.Контрагент) Тогда
Если ЕстьРасчетыСКонтрагентами Тогда
ТекстПринятоОт = ?(ВыборкаДляПечати.Контрагент.НаименованиеПолное = "", ВыборкаДляПечати.Контрагент.Наименование, ВыборкаДляПечати.Контрагент.НаименованиеПолное);
КонецЕсли;
КонецЕсли;
ОбластьМакета.Параметры.ПринятоОт = ТекстПринятоОт;
ОбластьМакета.Параметры.Основание = ВыборкаДляПечати.Основание;
ОбластьМакета.Параметры.Приложение = ВыборкаДляПечати.Приложение;
ТабличныйДокумент.Вывести(ОбластьМакета);
КонецЕсли;
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ВыборкаДляПечати.Ссылка);
КонецЦикла;
ТабличныйДокумент.АвтоМасштаб = Истина;
Возврат ТабличныйДокумент;
КонецФункции // ПечатнаяФормаРБ()
//1с-минск
// Возвращает курс валюты на дату.
//
Функция ПолучитьКурсВалюты(Валюта, ДатаКурса)
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот