Внешняя печатная форма печатается только под полными правами
Подскажите пожалуйста может кто то сталкивался. При запуске внешней печатной формы из документа "Реализация товаров и услуг" у пользователей с не полными правами появляется ошибка:
-----
Не удалось сформировать внешнюю печатную форму!
Ошибка при вызове метода контекста (Создать): Нарушение прав доступа!
-----
У всех ролей пользователя стоят галочки:
-Интерактивное открытие внешних отчётов
-Интерактивное открытие внешних обработок
-В настройках пользователя стоит разрешение на печать непроведенных документов
-----
В журнале регистрации событий :
Событие - Доступ. Отказ в доступе
Данные - Право. Использование
-----
Подскажите где нужно дать доступ пользователю на внешнюю печатную форму?
Саму форму и скриншоты прикрепил к сообщению
-----
Не удалось сформировать внешнюю печатную форму!
Ошибка при вызове метода контекста (Создать): Нарушение прав доступа!
-----
У всех ролей пользователя стоят галочки:
-Интерактивное открытие внешних отчётов
-Интерактивное открытие внешних обработок
-В настройках пользователя стоит разрешение на печать непроведенных документов
-----
В журнале регистрации событий :
Событие - Доступ. Отказ в доступе
Данные - Право. Использование
-----
Подскажите где нужно дать доступ пользователю на внешнюю печатную форму?
Саму форму и скриншоты прикрепил к сообщению
Прикрепленные файлы:
Печать по складам.epf


По теме из базы знаний
- Внешняя печатная форма ТОРГ-12 для Управление Торговлей 11
- Шаблон для внешней печатной формы на тонком клиенте с возможностью отладки
- Изготовление внешних печатных форм
- Пользовательские макеты для внешних печатных форм (обработок)
- Печать договора поставки для УТ 11.5, УТ 11.4, КА 2.4 и ERP 2.4 (внешняя печатная форма)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(6)
У меня в ERP ,была похожая ситуация. При печать данные брались из регистра сведений "Сумма документов в валюте Регл". В конфигураторе у это регистра доступ только для пользователя с полными правами. Тогда не стала разбираться, почему так. Дала через расширение права на этот регистр. Все стало печататься.
У меня в ERP ,была похожая ситуация. При печать данные брались из регистра сведений "Сумма документов в валюте Регл". В конфигураторе у это регистра доступ только для пользователя с полными правами. Тогда не стала разбираться, почему так. Дала через расширение права на этот регистр. Все стало печататься.
Вот собственно модуль обработки:
-----
Перем мВалютаРегламентированногоУчета Экспорт;
Функция Печать() Экспорт
Если ТипЗнч(Ссылканаобъект) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
ТабДокумент = ПечатьРеализация();
Иначе
ТабДокумент = Новый ТабличныйДокумент;
КонецЕсли;
Возврат ТабДокумент;
КонецФункции
// Функция формирует табличный документ с печатной формой накладной,
// разработанной методистами
//
// Возвращаемое значение:
// Табличный документ - печатная форма накладной
//
Функция ПечатьРеализация() Экспорт
ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
ВыводитьКоды = Истина;
Колонка = "Артикул";
ТекстКодАртикул = "Артикул";
ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
ВыводитьКоды = Истина;
Колонка = "Код";
ТекстКодАртикул = "Код";
Иначе
ВыводитьКоды = Ложь;
Колонка = "";
ТекстКодАртикул = "Код";
КонецЕсли;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
Запрос.Текст =
"ВЫБРАТЬ
| Номер,
| Дата,
| ДоговорКонтрагента,
| ДоговорКонтрагента.ВидДоговора КАК ВидДоговораКонтрагента,
| ДоговорКонтрагента.ВедениеВзаиморасчетов КАК ДоговорВедениеВзаиморасчетов,
| ДоговорКонтрагента.НаименованиеДляПечати КАК ДоговорНаименованиеДляПечати,
| ДоговорКонтрагента.ВыводитьИнформациюОСделкеПриПечатиДокументов КАК ПечататьСделку,
| Контрагент КАК Покупатель,
| Организация,
| Организация КАК Поставщик,
| Ответственный.ФизЛицо.Наименование КАК Отпустил,
| ОтпускПроизвел,
| СуммаДокумента,
| ВалютаДокумента,
| УчитыватьНДС,
| СуммаВключаетНДС
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
Запрос.Текст =
"ВЫБРАТЬ
| ВложенныйЗапрос.НомерТЧ,
| ВложенныйЗапрос.Номенклатура,
| ВложенныйЗапрос.Товар,
| ВложенныйЗапрос.Код,
| ВложенныйЗапрос.КодАртикул,
| СУММА(ВложенныйЗапрос.Количество) КАК Количество,
| СУММА(ВложенныйЗапрос.КоличествоМест) КАК КоличествоМест,
| ВложенныйЗапрос.Склад КАК Склад,
| ВложенныйЗапрос.Характеристика,
| ВложенныйЗапрос.ЕдиницаЦены,
| ВложенныйЗапрос.ЕдиницаМест,
| ВложенныйЗапрос.Серия,
| ЕСТЬNULL(СУММА(ВложенныйЗапрос.Количество * ВложенныйЗапрос.Номенклатура.ЕдиницаХраненияОстатков.Вес * ВложенныйЗапрос.ЕдиницаИзмерения.Коэффициент), 0) КАК Вес,
| ВложенныйЗапрос.ЕдиницаИзмерения,
| ЕСТЬNULL(СУММА(ВложенныйЗапрос.Количество * ВложенныйЗапрос.Номенклатура.ЕдиницаХраненияОстатков.Объем * ВложенныйЗапрос.ЕдиницаИзмерения.Коэффициент), 0) КАК Объем
|ИЗ
| (ВЫБРАТЬ
| ВложенныйЗапросПоТоварам.НомерТЧ КАК НомерТЧ,
| ВложенныйЗапросПоТоварам.НомерСтрокиТЧ КАК НомерСтрокиТЧ,
| ВложенныйЗапросПоТоварам.Номенклатура КАК Номенклатура,
| ВЫРАЗИТЬ(ВложенныйЗапросПоТоварам.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК Товар,
| ВложенныйЗапросПоТоварам.Номенклатура.Код КАК Код,
| ВложенныйЗапросПоТоварам.Номенклатура."+ ТекстКодАртикул + " КАК КодАртикул,
| ВложенныйЗапросПоТоварам.Количество КАК Количество,
| ВложенныйЗапросПоТоварам.КоличествоМест КАК КоличествоМест,
| ВложенныйЗапросПоТоварам.Склад КАК Склад,
| ВложенныйЗапросПоТоварам.ЕдиницаИзмерения.Представление КАК ЕдиницаЦены,
| ВложенныйЗапросПоТоварам.ЕдиницаИзмеренияМест.Представление КАК ЕдиницаМест,
| ВложенныйЗапросПоТоварам.ХарактеристикаНоменклатуры КАК Характеристика,
| ВложенныйЗапросПоТоварам.СерияНоменклатуры КАК Серия,
| ВложенныйЗапросПоТоварам.ЕдиницаИзмерения КАК ЕдиницаИзмерения
| ИЗ
| (ВЫБРАТЬ
| 1 КАК НомерТЧ,
| МИНИМУМ(РеализацияТоваровУслуг.НомерСтроки) КАК НомерСтрокиТЧ,
| РеализацияТоваровУслуг.Номенклатура КАК Номенклатура,
| РеализацияТоваровУслуг.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| РеализацияТоваровУслуг.ЕдиницаИзмеренияМест КАК ЕдиницаИзмеренияМест,
| РеализацияТоваровУслуг.СерияНоменклатуры КАК СерияНоменклатуры,
| РеализацияТоваровУслуг.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| РеализацияТоваровУслуг.Склад КАК Склад,
| СУММА(РеализацияТоваровУслуг.Количество) КАК Количество,
| СУММА(РеализацияТоваровУслуг.КоличествоМест) КАК КоличествоМест
| ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг
| ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
|
| СГРУППИРОВАТЬ ПО
| РеализацияТоваровУслуг.Склад,
| РеализацияТоваровУслуг.Номенклатура,
| РеализацияТоваровУслуг.ЕдиницаИзмерения,
| РеализацияТоваровУслуг.ЕдиницаИзмеренияМест,
| РеализацияТоваровУслуг.СерияНоменклатуры,
| РеализацияТоваровУслуг.ХарактеристикаНоменклатуры) КАК ВложенныйЗапросПоТоварам
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| 2,
| РеализацияТоваровУслуг.НомерСтроки,
| РеализацияТоваровУслуг.Номенклатура,
| ВЫРАЗИТЬ(РеализацияТоваровУслуг.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)),
| РеализацияТоваровУслуг.Номенклатура.Код,
| РеализацияТоваровУслуг.Номенклатура."+ ТекстКодАртикул + ",
| РеализацияТоваровУслуг.Количество,
| NULL,
| РеализацияТоваровУслуг.Склад,
| РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.Представление,
| NULL,
| NULL,
| NULL,
| РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков
| ИЗ
| Документ.РеализацияТоваровУслуг.ВозвратнаяТара КАК РеализацияТоваровУслуг
| ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Склад,
| ВложенныйЗапрос.НомерТЧ,
| ВложенныйЗапрос.Серия,
| ВложенныйЗапрос.Характеристика,
| ВложенныйЗапрос.КодАртикул,
| ВложенныйЗапрос.Код,
| ВложенныйЗапрос.Товар,
| ВложенныйЗапрос.Номенклатура,
| ВложенныйЗапрос.ЕдиницаМест,
| ВложенныйЗапрос.ЕдиницаЦены,
| ВложенныйЗапрос.ЕдиницаИзмерения
|ИТОГИ
| СУММА(Количество),
| СУММА(КоличествоМест),
| СУММА(Вес),
| СУММА(Объем)
|ПО
| Склад";
ВыборкаТовары = Запрос.Выполнить();
ЗапросТовары = ВыборкаТовары.Выгрузить();
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_НакладнаяПоСкладам";
Макет = ПолучитьМакет("НакладнаяПоСкладам");
// печать производится на языке, указанном в настройках пользователя
КодЯзыкаПечать = Локализация.ПолучитьЯзыкФормированияПечатныхФорм(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "РежимФормированияПечатныхФорм"));
Макет.КодЯзыкаМакета = КодЯзыкаПечать;
// Выводим шапку нкладной
СведенияОПоставщике = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Поставщик, Шапка.Дата,,,КодЯзыкаПечать);
СведенияОПокупателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Покупатель, Шапка.Дата,,,КодЯзыкаПечать);
Если ЗначениеЗаполнено(СсылкаНаОбъект.БанковскийСчетОрганизации) Тогда
НомерСчета = СсылкаНаОбъект.БанковскийСчетОрганизации.НомерСчета;
Банк = СсылкаНаОбъект.БанковскийСчетОрганизации.Банк;
МФО = СсылкаНаОбъект.БанковскийСчетОрганизации.Банк.Код;
СведенияОПоставщике.Вставить("НомерСчета", НомерСчета);
СведенияОПоставщике.Вставить("Банк", Банк);
СведенияОПоставщике.Вставить("МФО", МФО);
КонецЕсли;
ВыборкаСтрокТоварыОбщий = ВыборкаТовары.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаСтрокТоварыОбщий.Следующий() Цикл
ВсегоВес = 0;
ВсегоОбъем = 0;
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
ОбластьМакета.Параметры.ТекстЗаголовка = НСтр("ru='Накладная на склад';uk='Накладна на склад'",КодЯзыкаПечать) + " № " + ОбщегоНазначения.ПолучитьНомерНаПечать(Ссылканаобъект.ПолучитьОбъект())
+ НСтр("ru=' от ';uk=' від '",КодЯзыкаПечать) + Формат(Ссылканаобъект.Дата, "ДЛФ=DDT; Л="+ Локализация.ОпределитьКодЯзыкаДляФормат(КодЯзыкаПечать));
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
ОбластьМакета.Параметры.Склад = ВыборкаСтрокТоварыОбщий.Склад;
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
ОбластьМакета.Параметры.Заполнить(Шапка);
ОбластьМакета.Параметры.ПредставлениеПокупателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование,",,КодЯзыкаПечать) + " (код: " + Шапка.Покупатель.Код + ")";
ТабДокумент.Вывести(ОбластьМакета);
// Выводим дополнительно информацию о договоре и сделке
СписокДополнительныхПараметров = "ДоговорНаименованиеДляПечати,";
Если Шапка.ПечататьСделку = Истина Тогда
СписокДополнительныхПараметров = СписокДополнительныхПараметров + "Сделка,";
КонецЕсли;
СписокДополнительныхПараметров = СписокДополнительныхПараметров;
МассивСтруктурСтрок = ФормированиеПечатныхФорм.ДополнительнаяИнформация(Шапка,СписокДополнительныхПараметров,КодЯзыкаПечать);
ОбластьМакета = Макет.ПолучитьОбласть("ДопИнформация");
Для каждого СтруктураСтроки Из МассивСтруктурСтрок Цикл
ОбластьМакета.Параметры.Заполнить(СтруктураСтроки);
ТабДокумент.Вывести(ОбластьМакета);
КонецЦикла;
Если ВыводитьКоды Тогда
ОбластьШапки = "ШапкаСКодом";
ОбластьСтроки = "СтрокаСКодом";
Иначе
ОбластьШапки = "ШапкаТаблицы";
ОбластьСтроки = "Строка";
Конецесли;
Если ЗапросТовары.Итог("КоличествоМест") > 0 Тогда
ОбластьШапки = ОбластьШапки + "Мест";
ОбластьСтроки = ОбластьСтроки + "Мест";
Конецесли;
// Вывести табличную часть (товары и услуги)
ОбластьМакета = Макет.ПолучитьОбласть(ОбластьШапки);
Если ВыводитьКоды Тогда
ОбластьМакета.Параметры.Колонка = Колонка;
КонецЕсли;
ОбластьМакета.Параметры.Вес = НСтр("ru='Вес';uk='Вага'",КодЯзыкаПечать);
ОбластьМакета.Параметры.Объем = НСтр("ru='Объем';uk='Об''єм'",КодЯзыкаПечать);
ТабДокумент.Вывести(ОбластьМакета);
ВыборкаСтрокТоварыДетали = ВыборкаСтрокТоварыОбщий.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
мИндекс = 0;
Пока ВыборкаСтрокТоварыДетали.Следующий() Цикл
ОбластьМакета = Макет.ПолучитьОбласть(ОбластьСтроки);
Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТоварыДетали.Номенклатура) Тогда
Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
Продолжить;
КонецЕсли;
ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТоварыДетали);
ОбластьМакета.Параметры.НомерСтроки = мИндекс + 1;
мИндекс = мИндекс + 1;
ОбластьМакета.Параметры.Товар = СокрЛП(ВыборкаСтрокТоварыДетали.Товар) + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТоварыДетали);
Если ВыводитьКоды Тогда
ОбластьМакета.Параметры.КодАртикул = ВыборкаСтрокТоварыДетали.КодАртикул;
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
ВсегоВес = ВсегоВес + ВыборкаСтрокТоварыДетали.Вес;
ВсегоОбъем = ВсегоОбъем + ВыборкаСтрокТоварыДетали.Объем;
КонецЦикла;
ОбластьИтого = "Итого";
// Вывести Итого
ОбластьМакета = Макет.ПолучитьОбласть(ОбластьИтого);
ОбластьМакета.Параметры.ВсегоВес = ВсегоВес;
ОбластьМакета.Параметры.ВсегоОбъем = ВсегоОбъем;
ТабДокумент.Вывести(ОбластьМакета);
// Вывести Сумму прописью
ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
СуммаКПрописиВес = ВсегоВес;
СуммаКПрописиОбъем = ВсегоОбъем;
ОбластьМакета.Параметры.ИтоговаяСтрока = НСтр("ru='Всего наименований ';uk='Всього найменувань '",КодЯзыкаПечать) + ВыборкаСтрокТоварыДетали.Количество() + ","
+ НСтр("ru=' общий вес ';uk=' загальна вага '",КодЯзыкаПечать) + ОбщегоНазначения.ФорматСумм(ВсегоВес)
+ НСтр("ru=' общий объем ';uk=' загальний об''єм '",КодЯзыкаПечать) + ОбщегоНазначения.ФорматСумм(ВсегоОбъем);
ТабДокумент.Вывести(ОбластьМакета);
// Вывести подписи
ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
ОбластьМакета.Параметры.Заполнить(Шапка);
// Отпуск товара произвел.
// Из "ОтпускПроизвел", если заполнено, иначе по умолчанию из реквизита "Отпустил".
Если ЗначениеЗаполнено(Шапка.ОтпускПроизвел) Тогда
ФамилияИмяОтчествоФизЛица = ФормированиеПечатныхФорм.ФамилияИмяОтчество(Шапка.ОтпускПроизвел, Шапка.Дата);
ФамилияИмяОтчествоОтпускПроизвел = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество;
ОбластьМакета.Параметры.Отпустил = ОбщегоНазначения.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоОтпускПроизвел);
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
РазбиватьПоЛистам = Ложь;
Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") И ДополнительныеПараметры.Свойство("РазбиватьПоЛистам") Тогда
Если ДополнительныеПараметры.РазбиватьПоЛистам Тогда
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
Иначе
ОбластьМакета = Макет.ПолучитьОбласть("ЛинияОтреза");
ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли;
Иначе
ОбластьМакета = Макет.ПолучитьОбласть("ЛинияОтреза");
ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли;
КонецЦикла;
Возврат ТабДокумент;
КонецФункции // ПечатьДокумента()
мВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить();
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот