не найдено поле замены 1с скд что это значит
Форум (регистрация не требуется)
Пропадает поле в СКД..
В данном разделе можно задавать вопросы по программированию на платформе 1С:Предприятие 8.
(Раздел предназначен для тех, кто уже прошел обучение в нашем учебном центре)
p.s. Просьба задавать вопросы только по программированию. На вопросы по типовым конфигурациям обычно не отвечаю по двум причинам
1. В последнее время редко с ними работаю.
2. Чтобы ответить на вопрос требуется: установить соответствующую базу нужного релиза, смоделировать ситуацию, и только после этого возможно залезть в конфигуратор и разобраться что не так (к сожалению, у меня нет столько времени).
Пропадает поле в СКД..
Есть отчет на СКД с огроменным сложным запросом, в нем есть поле ПериодМесяц(Получается приведением даты к началу месяца). Итоговый запрос состоит из объединения запросов, в каждом из которых есть поле ПериодМесяц, в настройках СКД, вывод в таблицу в столбцах группировка по ПериодМесяц.
Под пользователем с полными правами отчет работает. Если у пользователя нет полных прав, то в настройках поле пропадает ПериодМесяц(в группировке отображается крестиком в списке полей вообще нету), и отчет не работает.
Отдельно запрос в консоле запросов работает и можно делать итоги по полю ПериодМесяц.
В базе настроены РЛС(может это как то влияет). Версия платформы 1С:Предприятие 8.2 (8.2.15.301).
Вопрос что может быть, и где искать ошибку?
Взарание спасибо.
Re: Пропадает поле в СКД..
Re: Пропадает поле в СКД..
Кто сейчас на форуме
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
1С отчет скд поле не найдено
1с. СКД. Таблица значений как источник данных.
Чтобы полученную запросом или как угодно таблицу значений вывести в отчет СКД надо:
1. В отчете создать табличную часть с перечнем полей отчета. Название и типы полей должны быть такими же как в таблице значений с данными. Это облегчит загрузку данных до одной строки кода.
2. В качестве набора данных отчета СКД 1с использовать Объект. Имя объекта – имя табличной части.
3. Добавить поля, одноименные и однотипные с реквизитами табличной части. Какого-то автоматического создания полей на основе ТЧ я не нашел. Так что всё в руки.
Если в запросе используется конструкция вида регистратор.дата или получение еще какого-либо реквизита через регистратор и это поле не отображается в полях отчета СКД, то:
Проблема в том – что у регистратором может выступать несколько документов и видимо права чтение/просмотр есть не на все – поэтому через скд эта таблица целиком недоступна, решение:
1. открыть доступ на все регистраторы регистра
Описание ошибки:
При разработке очередного отчета с помощью системы компоновки данных на 1С 8 при необходимости использовать функцию языка запросов ДОБАВИТЬКДАТЕ() в выражении вычисляемого поля, возникла ошибка «Поле не найдено «День».
Вроде бы ничего особенного? Использовал в выражении вычисляемого поля СКД функцию встроенного языка запросов, что в принципе в данном месте не возбраняется. Но вочему-то конфигуратор 1С сообщает об ошибке.
Не найдено поле замены 1с скд что это значит
Сегодня неожиданно столкнулся с такой проблемой. Был очень удивлен.
Сделал сложный запрос в консоли запросов. Этот запрос планировал использовать для отчета СКД.
Радостный добавил запрос в СКД и тут получаю другой результат.
До этого ни разу с такой проблемой не сталкивался и поэтому долго искал причину. СКД изменил запрос! Это. как бы помягче сказать очень неприятно!
В итоге обрезал место, где скд меняет запрос и через консоль СКД начал мучать отчет.
Вот простейший запрос. 2 временные таблицы и выборка.
Что делает запрос:
Нужно по менеджеру выбрать клиентов, которым он продал на сумму параметра &порогВыручкиПоТорговойТочке. Просуммировать сколько у каждого менеджера таких клиентов.
Как делает:
1 Из регистра накопления «ПродажиОбороты» выбирает записи за определенный период во временную таблицу «ПродажиЗаПериод».
2 Делает выборку Менеджер, Контрагент, Выручка, выч.поле «Торговая точка подходит под категорию»(если сумма выручки больше &порог то 1 иначе 0). Пишет выборку во временную таблицу «Торговые точки».
3 Делает выборку из «торговые точки». Группирует по менеджерам, суммирует поле «ТорговаяТочкаПодходитПодДиректорию».
ВЫБРАТЬ
ПродажиОбороты.Контрагент КАК Контрагент,
ПродажиОбороты.Контрагент.ОсновнойМенеджерПокупателя КАК Менеджер,
ЕСТЬNULL(ПродажиОбороты.СтоимостьОборот, 0) КАК Выручка
ПОМЕСТИТЬ ПродажиЗаПериод
ИЗ
РегистрНакопления.Продажи.Обороты(НАЧАЛОПЕРИОДА(&датаНачала, ДЕНЬ), КОНЕЦПЕРИОДА(&датаКонца, ДЕНЬ), Регистратор, ) КАК ПродажиОбороты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ПродажиЗаПериод.Менеджер КАК Менеджер,
ВЫБОР
КОГДА СУММА(ПродажиЗаПериод.Выручка) > &порогВыручкиПоТорговойТочкеДляУчетаТоргТочки
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ КАК ТорговаяТочкаПодходитПодКатегорию,
ПродажиЗаПериод.Контрагент,
СУММА(ПродажиЗаПериод.Выручка) КАК Выручка
ПОМЕСТИТЬ торговыеТочки
ИЗ
ПродажиЗаПериод КАК ПродажиЗаПериод
СГРУППИРОВАТЬ ПО
ПродажиЗаПериод.Менеджер,
ПродажиЗаПериод.Контрагент
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
торговыеТочки.Менеджер КАК Менеджер,
СУММА(торговыеТочки.ТорговаяТочкаПодходитПодКатегорию) КАК ТорговыеТочки
ИЗ
торговыеТочки КАК торговыеТочки
СГРУППИРОВАТЬ ПО
торговыеТочки.Менеджер
Красным я выделил что удалит СКД. Можете сами проверить. Соответственно запрос становится совершенно неправильным.
Теперь выручка считается не по контрагентам, а просто по каждому менеджеру.
Вот сравнение через блокнот.
Причина найдена.
Удаляет он «ПродажиЗаПериод.Контрагент» потому что я не использую это поле далее. Логично. Мне нужно чтобы он не удалял группировку по «ПродажиЗаПериод.Контрагент«.
Искал ответ в интернете.
Предложили такие способы. НЕ ПЫТАЙТЕСЬ ВСЕ ИХ СРАЗУ ПРОВЕРИТЬ, В КОНЦЕ ПРЕДЛОЖУ ПРОСТЕЙШЕЕ РЕШЕНИЕ.
1 В выборку добавлять не просто поле, а через выразить. Типо «Выразить(ПродажиЗаПериод.Контрагент как справочник.пользователи). НЕ СРАБОТАЛО
2 Вытащить это поле в конечную выборку и для поля в роли выбрать «обязательное». У меня 10 временных таблиц до конечной выборки, через все буду тащить? НЕ СТАЛ ПРОВЕРЯТЬ
3 Грузить в скд уже готовый набор данных. Вот это верный подход. Посмотреть его можно тут. Работать он точно будет. Возьму на вооружение.
Итак простейшее решение.
1 НЕ ДОБАВЛЯТЬ В ВЫБОРКУ ПОЛЯ, КОТОРЫЕ НЕ БУДЕТЕ ИСПОЛЬЗОВАТЬ ДАЛЬШЕ.
2 А КАК ЖЕ ДЕЛАТЬ ГРУППИРОВКУ? ЛЕГКО! ДЛЯ ЭТОГО НЕ НУЖНО ДОБАВЛЯТЬ ПОЛЕ В ВЫБОРКУ. НУЖНО ПРОСТО ПЕРЕЙТИ НА ВКЛАДКУ «ГРУППИРОВКА», ОТКРЫТЬ СПИСОК «ВСЕ ПОЛЯ» И ВЫБРАТЬ НУЖНОЕ ПОЛЕ. ВОТ ТОГДА СКД НЕ БУДЕТ УДАЛЯТЬ ВАШУ ГРУППИРОВКУ!
Очевидно, но т.к. я нигде не нашел такого решения, решил сделать эту статью.
Покажу на этом же примере.
И т.к. далее я не использовал «Контрагент» СКД удалила поле и из выборки и из группировки.
Вот как нужно делать:
Этот запрос СКД не будет оптимизировать, т.к. теперь он сделан корректно.