кусок модуля, если кому интересно
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныеПроцедурыИФункции
Функция СведенияОВнешнейОбработке() Экспорт
Перем ПараметрыРегистрации;
Если ОбщегоНазначения.ПодсистемаСуществует(«СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки») Тогда
МодульДополнительныеОтчетыИОбработки = ОбщегоНазначения.ОбщийМодуль(«ДополнительныеОтчетыИОбработки»);
МодульДополнительныеОтчетыИОбработкиКлиентСервер = ОбщегоНазначения.ОбщийМодуль(«ДополнительныеОтчетыИОбработкиКлиентСервер»);
ПараметрыРегистрации = МодульДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(«2.1.3.1»);
ПараметрыРегистрации.Вид = МодульДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет();
ПараметрыРегистрации.Версия = «2017.08.17»;
ПараметрыРегистрации.БезопасныйРежим = Ложь;
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = ЭтотОбъект.Метаданные().Представление();
НоваяКоманда.Идентификатор = «ОткрытьОтчет»;
НоваяКоманда.Использование = МодульДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
НоваяКоманда.ПоказыватьОповещение = Ложь;
//Команды — ТаблицаЗначений — Необязательный для отчетов. Настройки команд, поставляемых внешним объектом.
//** Идентификатор — Строка — Внутреннее имя команды.
// Для внешних печатных форм (когда Вид = «ПечатнаяФорма»):
// Идентификатор может содержать имена одной или нескольких команд печати,
// разделенных запятыми. Подробнее см. описание колонки Идентификатор
// в функции СоздатьКоллекциюКомандПечати() общего модуля УправлениеПечатью.
//
//** Представление — Строка — Пользовательское представление команды.
//
//** Использование — Строка — Тип команды.
// Для определения рекомендуется использовать функции
// ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКоманды<ИмяТипа>().
// Шаблоны процедур — обработчиков команд описаны в комментариях к этим функциям.
//
// Также Использование можно определить явно:
// *** «ВызовКлиентскогоМетода»
// *** «ВызовСерверногоМетода»
// *** «ЗаполнениеФормы»
// *** «ОткрытиеФормы»
// *** «СценарийВБезопасномРежиме».
//
//** ПоказыватьОповещение — Булево — Истина = при запуске команды будет показано стандартное оповещение.
// Не работает для команд по открытию формы (когда Использование = «ОткрытиеФормы»).
//
//** Модификатор — Строка — Дополнительная классификация команды.
// Для внешних печатных форм (когда Вид = «ПечатнаяФорма»):
// *** «ПечатьMXL» — для печатных форм на основе табличных макетов.
// Для загрузки данных из файла (когда Вид = «ПечатнаяФорма» и Использование = «ЗагрузкаДанныхИзФайла»):
// Модификатор является обязательным для заполнения
// и должен содержать полное имя объекта метаданных (справочника),
// для которого выполняется загрузка данных.
//
//** Скрыть — Булево — Необязательный. Признак того, что это служебная команда.
// Если установить в значение Истина, то команда скрывается в карточке дополнительного объекта.
КонецЕсли;
Возврат ПараметрыРегистрации;
КонецФункции
#КонецОбласти
#Область ОбработчикиСобытий
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПользовательскиеНастройкиМодифицированы = Ложь;
УстановитьОбязательныеНастройки(ПользовательскиеНастройкиМодифицированы);
НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
// Сообщим форме отчета, что настройки модифицированы
Если ПользовательскиеНастройкиМодифицированы Тогда
КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства.Вставить(«ПользовательскиеНастройкиМодифицированы», Истина);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецЕсли
Делаю отчет в СКД. В качестве набора данных Объект типа таблица значений. В Объекте и имени совпадают имена Таб_ЗН и Таб_ЗН. Все написала как у Хрусталевой. Выдает ошибку: Ошибка исполнения отчета. {Форма.ФормаОтчета.Форма}: Ошибка при вызове метода контекста (СкомпоноватьРезультат) СкомпоноватьРезультат(ЭлементыФормы.Результат,ДанныеРасшифровки); по причине: Ошибка исполнения отчета по причине: Ошибка инициализации по причине: Ошибка создания набора данных «Табл_ЗН» по причине: Не найден внешний набор данных «Табл_ЗН»
Не попутала с Таб_Зн и Табл_Зн Так-то все, вроде, ровно
Может у кого пример есть представления набора данных в качестве Таблицы значений?
нет не попутала. Этот код в процедуре ДействиеФормыДействие. Может эту таблицу как-то надо зарегистрировать?
Ничо регистрировать не надо В наборах данных у тебя есть набор данных — объект, скажем так, «НаборДанных1».
Сделала так как здесь все равно не работает.
кинь на ЯД Может, кто-нить посмотрит
Яндекс Диск. Или его аналог.
Положила сюда посмотрите если можете
у меня сформировался , (8.3.8.2054)
Это мой отчет. ТС ссылку попутала
справа — Поделиться ссылкой — вкл.
Вместо той таблицы значений можно взять любую где даже одна колонка
Вот эти 2 последние строчки — зачем?
У меня все получилось. Все большое спасибо!
Тэги: 1С 8
Комментарии доступны только авторизированным пользователям
Не работает Отчет по зарплатным листкам
Автор Fedrr, 01 сен 2017, 11:32
0 Пользователей и 1 гость просматривают эту тему.
Добрый день!
— Версия 1С — Клиент Сервер
— 1С:Предприятие 8.3 (8.3.10.2466) — платформа сервера и клиента
— Зарплата и управление персоналом, редакция 3.1 (3.1.3.136) — конфигурация
— СУБД Postgres
Все выполняется под Администратором.
При формировании зарплатных листков вылетает ошибка. «В настройку отчёта «Расчётный листок» внесены критичные изменения. У пользователя недостаточно прав на исполнение операций над базой данных
В Журнале Регистрации следующее
Ошибка при формировании:
{ОбщийМодуль.ВариантыОтчетов.Модуль(1752)}: Ошибка при вызове метода контекста (СкомпоноватьРезультат)
ОтчетОбъект.СкомпоноватьРезультат(Результат.ТабличныйДокумент, Результат.Расшифровка);
по причине:
Ошибка исполнения отчета
по причине:
Ошибка при выполнении обработчика — ‘ПриКомпоновкеРезультата’
по причине:
{ОбщийМодуль.ЗарплатаКадрыОтчеты.Модуль(1703)}: В настройку отчета «Расчетный листок» внесены критичные изменения. Отчет не будет сформирован. У пользователя недостаточно прав на исполнение операции над базой данных.
+ » » + КраткоеПредставлениеОшибки(Инфо);
Причем по отдельности для старых сотрудников отчет формируется, а для новых и по всем сотрудникам нет.
Может кто знает в чем проблема может быть?
Смотрите журнал регистрации по отказу, там будет написано на что конкретно у пользователя нет прав
Помог, нажми спасибо. Не помог, нажми спасибо
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google
Цитата: oleg-x от 01 сен 2017, 11:52
Смотрите журнал регистрации по отказу, там будет написано на что конкретно у пользователя нет прав
А где можно посмотреть именно по отказу?
И причем тут права, если пользователь Администратор и права у него полные!?
Цитата: Fedrr от 01 сен 2017, 12:09
Цитата: oleg-x от 01 сен 2017, 11:52
Смотрите журнал регистрации по отказу, там будет написано на что конкретно у пользователя нет правА где можно посмотреть именно по отказу?
И причем тут права, если пользователь Администратор и права у него полные!?
ЦитироватьУ пользователя недостаточно прав на исполнение операции над базой данных.
Здесь в ошибке конкретно пишут что у пользователя нет прав, вопрос остается, каких?
По отказу можно посмотреть настроив отбор
Помог, нажми спасибо. Не помог, нажми спасибо
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google
Цитата: oleg-x от 01 сен 2017, 12:12
Цитата: Fedrr от 01 сен 2017, 12:09
Цитата: oleg-x от 01 сен 2017, 11:52
Смотрите журнал регистрации по отказу, там будет написано на что конкретно у пользователя нет правА где можно посмотреть именно по отказу?
И причем тут права, если пользователь Администратор и права у него полные!?ЦитироватьУ пользователя недостаточно прав на исполнение операции над базой данных.
Здесь в ошибке конкретно пишут что у пользователя нет прав, вопрос остается, каких?
По отказу можно посмотреть настроив отбор
Тогда почему по старым сотрудникам Отчет формируется, по новым и по всем нет. Если бы не было прав, вообще бы ничего не формировалось!? Или я что-то не понимаю…
Может в платформе косяк, недавно обновляли!
Добавлено: 01 сен 2017, 12:34
ВОТ ОШИБКА
ОбщийМодуль.ВариантыОтчетов.Модуль(1752)}: Ошибка при вызове метода контекста (СкомпоноватьРезультат)
по причине:
по причине:
Ошибка исполнения отчета
по причине:
Ошибка при выполнении обработчика — ‘ПриКомпоновкеРезультата’
по причине:
{ОбщийМодуль.ЗарплатаКадрыОтчеты.Модуль(1703)}: В настройку отчета «Расчетный листок» внесены критичные изменения. Отчет не будет сформирован. У пользователя недостаточно прав на исполнение операции над базой данных.
Но где искать права для этого модуля не знаю. Можете сказать куда дальше смотреть?
Журнал регистрации!
Можно написать в запрос «ВЫБРАТЬ РАЗРЕШЕННЫЕ». Ругаться не будет, но могут быть не все данные. И видно будет чего не хватает.
Но лучше искать сообщения в журнале регистрации.
Спасибо за Сказать спасибо
Тема: Задача 2.6 (Прочитано 13006 раз)
0 Пользователей и 1 Гость просматривают эту тему.
Делаю задачу 2.6 по аналогии с задачей 2.4 из предыдущего сборника задачек.
Все время выдает ошибку «Значение не является значением объектного типа (Значение)».
Если не сложно, посмотрите пожалуйста, в чем там дело, всю голову уже сломала…
Вложения:
_2.6.erf
Записан
В схеме СКД отсутствует параметры ИспользуетсяОтборПоСегментуНоменклатуры и ИспользуетсяОтборПоСегментуПартнеров, а в модуле объекта данные параметры обрабатываются. Посмотрите оригинальный отчёт ВыручкаИСебестоимостьПродаж в конфигурации.
Записан
Решил задачу модификацией штатного отчёта ВыручкаИСебестоимостьПродаж. В запросе подтягивается плановая стоимость (плановая цена номенклатуры * количество) и в вычисляемых полях определяем разницу между планом и факту. Видимо по данной задаче проверяется владеет ли кандидат вычисляемыми полями СКД. Новые поля внесены во все варианты отчёта.
Вложения:
_2_6.erf
Записан
а у кого нить такая ошибка возникала:
{ОбщаяФорма.ФормаОтчета.Форма(1148)}: Ошибка при вызове метода контекста (СкомпоноватьРезультат)
СкомпоноватьРезультат(РежимКомпоновкиРезультата.Авто);
по причине:
Ошибка исполнения отчета
по причине:
Ошибка при выполнении обработчика — ‘ПриКомпоновкеРезультата’
по причине:
{Отчет.ВыручкаИСебестоимостьПродаж.МодульОбъекта(18)}: Ошибка при вызове метода контекста (Выполнить)
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);
по причине:
Ошибка компоновки макета
по причине:
Не установлено значение параметра «ДанныеПоПродажам»
что за параметр???
Записан
Gray, спасибо, пойду исправлять!)
Записан
Задания не сложное, но у меня один вопрос, не могу понять почему, в прикрепленном файле 2_6_ запрос в СКД по таблице цен номенклатуры имеет параметры виртуальной таблицы
Код
ВидЦены = &ВидЦены
И (Номенклатура, Характеристика) В
(ВЫБРАТЬ
врПодготовленнаяОтбор.Номенклатура,
врПодготовленнаяОтбор.Характеристика
ИЗ
врПодготовленная КАК врПодготовленнаяОтбор)
так вот ругается на поле характеристики:
Цитата
{Форма.ФормаОтчета.Форма(1148)}: Ошибка при вызове метода контекста (СкомпоноватьРезультат)
СкомпоноватьРезультат(РежимКомпоновкиРезультата.Авто);
по причине:
Ошибка исполнения отчета
по причине:
Ошибка при выполнении обработчика — ‘ПриКомпоновкеРезультата’
по причине:
{ВнешнийОтчет.ВыручкаИСебестоимостьПродаж.МодульОбъекта(26)}: Ошибка при вызове метода контекста (Инициализировать)
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
по причине:
Ошибка компоновки данных
по причине:
Ошибка инициализации
по причине:
Ошибка создания набора данных «ВыручкаИСебестоимостьПродаж»
по причине:
Ошибка при исполнении запроса набора данных
по причине:
{(171, 30)}: Поле не найдено «врПодготовленнаяОтбор.Характеристика»
врПодготовленнаяОтбор.<<?>>Характеристика
Не могу понять почему, можно конечно не ограничивать параметры виртуальной таблицы по характеристикам, но как то неприятно
Вложения:
2_6.erf
2_6_.erf
Записан
Glime, варианты не рабочие, у меня выдаёт ошибку:
Поле не найдено «врПодготовленнаяОтбор.Номенклатура»
врПодготовленнаяОтбор.<<?>>Номенклатура,
Соответственно и характеристика будет тоже не найдена….
Записан
Nechipury, ты скачал 2_6_(как раз описана эта проблема выше), попробуй 2_6.
Записан
Gray,ток вопрос у меня!
в задаче написано разница продажной стоимости и плановой стоимости, а в своём отчете ты отнимаешь СебестоимостьИтоги — ПлановаяСтоимость,
может надо отнимать от Выручки?
Записан
здравствуйте, а подскажите пожалуйста по задаче, пользователь должен сам выбирать Вид цены, или же нужно жестко прикручивать к виду цены Плановая себестоимость?
Записан
Задачка казалась элементарной, попалась на экзамене, но в итоге поставили 2 за:
«Задача на конфигурирование: не учитывается валюта, не учитываются единицы измерения,использование условия в запросе вместо отбора в параметрах ВТ». Так что к задаче стоит подойти гораздо щепетильнее. Конечно, про параметры ВТ знала, просто на экзамене не взлетело с ними сделать, поэтому пришлось сделать через условие. Ну по крайней мере опыт,что оценивают строго. Всем удачи, друзья!
Записан
Выкладываю с учтенной валютой, параметрами виртуальных таблиц и упаковкой. Прошу критики.
Вложения:
9828193.erf
Записан
gugenotka, у меня то же самое
Цитата
Задача на конфигурирование: задание выполнено неверно, не учитывается валюта, не учитываются единицы измерения, не учитывается количество, предусмотрена возможность очистки поля, приводящая к ошибке; Задача пользователя: описание отсутствует
нужно проверять заполненность и корректность вводимых данных?
какое еще описание должно быть?
зачем учитывать упаковки и валюты, если в задании не сказано, что учет ведется по нескольким валютами и используются упаковки.(((
В описании требований к экзамену на сайте 1c.ru об этом не сказано.
« Последнее редактирование: Ноябрь 18, 2013, 02:40:50 pm от Nathalie »
Записан
В моем решении, учитываются разные комбинации валют, также сделан пересчет цен для номенклатуры в упаковках.
Оцените решение.
Вложения:
7409900.erf
« Последнее редактирование: Январь 29, 2014, 07:14:09 pm от Сергей »
Записан
Попалась на экзамене, сделал ну примерно как Nylander, делил на коэффициент упаковки, 2 таблицы с курсами валют для вида цены и для валюты учета. Вид цены завел предопределенный, поле разница сделал вычисляемым, чтобы не дублировать в запросе. В примере завел плановую себестоимость в долларах, на одну из позиций указал цену за упаковку. Отчет зарегистрировал как внешнюю обработку. Оценка 5.
« Последнее редактирование: Апрель 12, 2014, 09:47:35 am от Александр »
Записан
1C 8 Система компоновки данных (СКД): вывод вычисляемых полей при программном формировании отчета
Описание ошибки:
Отчет на СКД формируется программно. При этом используется одно вычисляемое поле, в выражении которого указана экспортная функция глобального модуля. При формировании отчета возникает ошибка:
{Форма.ФормаОтчета.Форма(137)}: Ошибка при вызове метода контекста (Следующий)
ЭлементРезультата = ПроцессорКомпановки.Следующий();
по причине:
Ошибка компоновки данных
по причине:
Ошибка получения данных
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка «УчетДрагМеталловГлобальный.ОтчетКоличествоМеталла»
Найденные решения:
Подробное изучение методической информации дало понять, что при программном выводе отчета в коде было отключено использование внешних функций. См. текст из синтаксис-помощника метода Инициализировать() процессора компоновки данных (ПроцессорКомпоновкиДанных):
Инициализировать(<Макет>, <ВнешниеНаборыДанных>, <ДанныеРасшифровки>, <ВозможностьИспользованияВнешнихФункций>),
где <ВозможностьИспользованияВнешнихФункций> (необязательный)
Тип: Булево.
Указывает возможность использования функции общих модулей конфигурации в выражениях компоновки данных.
Значение по умолчанию: Ложь
Поэтому в код программного вывода отчета было добавлено отсутствующее условие (выделено жирным):
ПроцессорКомпановки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпановки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
Но после этого СКД отказалсь вывести отчет, рапортуя ошибку:
{Форма.ФормаОтчета.Форма(137)}: Ошибка при вызове метода контекста (Следующий)
ЭлементРезультата = ПроцессорКомпановки.Следующий();
по причине:
Ошибка компоновки данных
по причине:
Ошибка получения данных
по причине:
Функция не найдена «УчетДрагМеталловГлобальный.ОтчетКоличествоМеталла»
При этом функция по всем правилам была экспортной и к этому моменту проверок размещена в глобальном модуле. Поэтому название модуля было исключено из значения выражения вычисляемого поля системы компоновки данных и отчет вывелся.
А для случая, если функция для расчета выражения вычисляемого поля скд, размещена не в глобальном модуле, то необходимо указать и имя самого модуля, содержащего используемую функцию (пример рис. 01).
Оцените, помогло ли Вам предоставленное описание решения ошибки?
© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.
22-05-2015
Журавлев А.С.
(www.azhur-c.ru)