|
|||
Valerianich
26.08.16 — 10:37 |
Добрый день. Добавил к справочнику 3 доп реквизита. Надо сделать отчет(на СКД), в котором вывести несколько реквизитов справочника и все доп реквизиты. Подскажите пожалуйста, как сделать, чтобы доп реквизиты выводились: свойство в колонке, а значение в ячейке? Например
Наименование Номер Свойство1(Цвет) Свойство2(Ширина) Свойство3(Длина) |
||
birkoFFFF
1 — 26.08.16 — 10:39 |
Что пробовали, что не получилось? |
||
Valerianich
2 — 26.08.16 — 10:41 |
(1)В настройках СКД добавил таблицу. В колонки вывел Свойство. Не получается вывести Значения в ячейки. |
||
vicof
3 — 26.08.16 — 10:41 |
(1) ну не стыдно человеку такие вопросы задавать?) |
||
vicof
4 — 26.08.16 — 10:45 |
(2) а почему не использовал вкладку характеристики в конструктора запроса? |
||
Valerianich
5 — 26.08.16 — 11:30 |
(4) Спасибо за подсказку. |
||
Valerianich
6 — 26.08.16 — 11:52 |
(5) Значения характеристик получаю из запроса по ТЧ Доп реквизиты справочника. Но не появляются доп реквизиты на закладке Настройки в СКД. В предприятие при изменение варианта также доп реквизитов нет. |
||
Deon
7 — 26.08.16 — 11:56 |
(6) Кидай уже скриншот вкладки Характеристики, поглядим |
||
Valerianich
8 — 26.08.16 — 12:00 |
http://s018.radikal.ru/i503/1608/45/efce9754cb07.jpg |
||
Deon
9 — 26.08.16 — 12:31 |
(8) Вроде всё правильно, правда можно запрос не писать, а просто указать ТЧ характеристик. |
||
Valerianich
10 — 26.08.16 — 12:55 |
Разобрался, спасибо! |
||
Deon
11 — 26.08.16 — 13:09 |
(10) В чём косяк-то был? |
||
Худой
12 — 26.08.16 — 13:17 |
(11)Он уже убег. |
||
Deon
13 — 26.08.16 — 13:20 |
(12) Тут проще погуглить: http://1cskd.ru/2011/09/ispolzovanie-xarakteristik-v-skd/ |
||
Худой
14 — 26.08.16 — 13:23 |
(13)Спасибо. То, что надо. |
||
Valerianich 15 — 26.08.16 — 13:29 |
(10) Я не вывел ссылку на договор.) |
Быстрый старт в Python для 1С Разработчиков | 1s-to-python.ru
Что у нас есть?
Пример будем приводить на конфигурации «Управление производственным предприятием» версии 1.3. В информационной базе для всех элементов справочника «Организации» добавлены свойства «Основной склад», «Связанный контрагент» и «Страна размещения». Нам нужно создать отчет в системе компоновки данных (СКД), в котором мы сможем накладывать отбор по дополнительным характеристиками организаций.
При этом мы будем использовать стандартный функционал СКД для работы с характеристиками объектов. Также рассмотрим особенность разработки подобных отчетов, а именно — отсутствие возможности использовать дополнительные характеристики в конструкторе схемы компоновки данных в режиме «Конфигуратор». Последнее не позволяет использовать поля характеристик в настройке выводимых полей в отчете, отборах, группировка в структуре отчета и так далее.
Создаем отчет и настраиваем характеристики
Создадим простой отчет. В нем будет один набор данных со следующим запросом:
ВЫБРАТЬ Организации.Ссылка КАК Организация, Организации.ИНН, Организации.КПП ИЗ Справочник.Организации КАК Организации
Структура отчета будет иметь вывод только по детальным записям со всеми полями, выбираемыми в запросе. В конструкторе настройка структуры отчета будет выглядит следующим образом:
На скриншоте ниже представлен вывод отчета с текущими настройками.
Отлично. Теперь перейдем к настройке характеристик, но перед этим напомню в общих чертах работу механизма характеристик в большинстве типовых конфигураций, в том числе и УПП. Для этого используются несколько объектов конфигурации.
- План видов характеристик
СвойстваОбъектов
- Регистр сведений
ЗначенияСвойствОбъектов
Графически связь между объектом информационной базы и его характеристиками можно изобразить по такой схеме:
Опишем схему подробнее. В регистре сведений ЗначенияСвойствОбъектов
в измерении Объект
содержится ссылка на элемент информационной базы, для которого сохраняется свойство. В нашем примере это ссылка на элемент справочника Организации
. Все возможные свойства объекта определяются в плане видов характеристик (ПВХ) СвойстваОбъектов
. Значение характеристики, сохраняемое в регистре сведений, зависиот от доступных типов данных для элемента плана видов характеристик, записанного в измерение Свойство
. Это описание должно дать лишь общее представление о механизме доп.свойств. На практике он сложнее.
Теперь перейдем к настройке характеристик в схеме компоновки данных. Для этого запустим конструктор запроса и перейдем на вкладку «Характеристики». Здесь нужно добавить поле связи объекта информационной базы с таблицами свойств и значений свойств. Ранее мы рассматривали схему связи между объектами конфигурации для хранения доп.свойств/характеристик. В соответствии с этой информацией настройка будет следюущей:
После этого запрос набора данных дополнится инструкциями получения характеристик объектов.
ВЫБРАТЬ Организации.Ссылка КАК Организация, Организации.ИНН, Организации.КПП ИЗ Справочник.Организации КАК Организации // Доп. инструкции для получения характеристик {ХАРАКТЕРИСТИКИ ТИП(Справочник.Организации) ВИДЫХАРАКТЕРИСТИК ПланВидовХарактеристик.СвойстваОбъектов ПОЛЕКЛЮЧА Ссылка ПОЛЕИМЕНИ Наименование ПОЛЕТИПАЗНАЧЕНИЯ ТипЗначения ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.ЗначенияСвойствОбъектов ПОЛЕОБЪЕКТА Объект ПОЛЕВИДА Свойство ПОЛЕЗНАЧЕНИЯ Значение}
На этом все. Функционал отчета теперь позволяет выбрать поля дополнительных характеристик в отчете (поля вывода, отборы и т.д.). Но есть одно НО. Использовать эти поля в настройках отчета мы можем только в режиме 1С:Предприятия. В конфигураторе мы не можем увидеть поля характеристик, что логично, ведь характеристики вводятся пользователем и хранятся в информационной базе.
Но если есть необходимость, мы можем добавить поля характеристик, например, в отбор перед его открытием. Рассмотрим небольшой пример.
Программная работа с характеристиками
При открытии формы отчета выполним следующим программный код:
ТекущиеНастройки = КомпоновщикНастроек.Настройки; КоллекцияОтборов = ТекущиеНастройки.Отбор.Элементы; // Добавляем отбор по доп. реквизиту номенклатуры "Основной склад" НовЭл = КоллекцияОтборов.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); НовЭл.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; НовЭл.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Организация.[Основной склад]"); НовЭл.Использование = Ложь; // Добавляем отбор по доп. реквизиту номенклатуры "Страна размещения" НовЭл = КоллекцияОтборов.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); НовЭл.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; НовЭл.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Организация.[Страна размещения]"); НовЭл.Использование = Ложь; // Добавляем отбор по доп. реквизиту номенклатуры "Связанный контрагент" НовЭл = КоллекцияОтборов.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); НовЭл.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; НовЭл.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Организация.[Связанный контрагент]"); НовЭл.Использование = Ложь;
Тогда если мы посмотрим в отбор отчета в режиме 1С:Предприятие, то увидим следующиую картину:
Таким образом, мы программно добавили отбор по дополнительным характеристикам справочника Организации, не смотря на то, что в конструкторе СКД эти поля не были доступны. Обратите внимание на синтаксис определения поля компоновки данных.
Новый ПолеКомпоновкиДанных("Организация.[Связанный контрагент]")
а именно на текст [Связанный контрагент]
. Если мы напишем вот так:
Новый ПолеКомпоновкиДанных("Организация.СвязанныйКонтрагент"),
то при запуске отчета СКД неправильно определит поля компоновки. В настройках поля отбора будут выделены как некорректные:
Для дополнительных свойст и реквизитов, которые не доступны в конструкторе СКД, при программном обращении необходимо использовать следующий синтаксис:
Новый ПолеКомпоновкиДанных(".[]")
Таким образом, мы можем устанавливать настройки отчета, даже если поля недоступны в конструкторе СКД.
Вывод
Использование настройки характеристик в СКД позволяет значительно упростить разработку сложных отчетов. Несмотря на некоторые недостатки в работе, такие как отсутствие возможности настройки отбора по доп. свойствам в конструкторе и т.д., механизм характеристик можно считать значительным шагом в упрощении разработки отчетов в системе 1С:Предприятие.
В статье мы рассмотрели далеко не все возможности характеристик в СКД. За рамками статьи остались такие возможности как: произвольное определение источников данных, как для свойств, так и для значений характеристик, а также отбор по владельцу для всех доступных характеристик в информационной базе и многое другое. Тема большая, есть куда расширять круг своих знания.
Дополнительные реквизиты объектов с помощью плана видов характеристик
Достаточно часто возникает необходимость в добавлении объектам дополнительных реквизитов (характеристик). При этом каждый раз вносить для этого изменения в конфигурацию и проводить реструктуризацию базы данных не хочется.
В этой статье я расскажу о том, как реализовать такую возможность с помощью плана видов характеристик и регистра сведений и поделюсь парой приёмов использования этих реквизитов в отчётах и списках.
Быстрый переход
- Изменения в конфигурации
- Использование дополнительных реквизитов в отчётах и списках
- Вариант №1
- Вариант №2
Изменения в конфигурации
Разработку конфигурации будем вести на базе платформе 1С: Предприятие 8.2 с установленным свойством “Основной режим запуска” – “Управляемое приложение”. В качестве основы для разработки подойдет любая демо-конфигурация. Добавим новый план видов характеристик “Виды характеристик”. На закладке “Основные” плана видов характеристик в поле “Тип значения характеристик” выберем необходимые типы.
В качестве одного из возможных типов значений характеристик выберем предварительно добавленный в конфигурацию справочник “Значения характеристик”, подчиненный плану видов характеристик “Виды характеристик”. Его же выберем в поле “Дополнительные значения характеристик”. Это позволит добавлять характеристики с произвольными ссылочными значениями (например, цвет или размер).
Создадим регистр сведений “Характеристики” с измерениями “Объект”, “Вид характеристики” и ресурсом “Значение”. Измерение “Объект” должно включать в себя все типы объектов для которых необходимо использовать дополнительные реквизиты. В нашем случае это будет справочник “Контрагенты”, В свойствах измерения “Объект” должны быть установлены флаги “Ведущее”, “Основной отбор” и “Запрет незаполненных”.
Это обеспечит связь объекта с записями регистра сведений. В форме элемента справочника “Контрагенты” переход к редактированию характеристик будет возможен с помощью соответствующего пункта меню “Перейти” в левой части формы.
Измерению “Вид характеристики” необходимо назначить тип “ПланВидовХарактеристикСсылка.ВидыХарактеристик”, а ресурсу “Значение” – “Характеристика.ВидыХарактеристик”.
Для обеспечения взаимосвязи значений ресурса “Значение” со значениями измерения “ВидХарактеристик” регистра “Характеристики” необходимо чтобы в свойстве “Связи параметров выбора” ресурса “Значение” было указано “Отбор.Владелец(ВидХарактеристики)”, а в свойстве “Связь по типу” – “ВидХарактеристики”
Теперь всё готово для того чтобы мы могли вводить в базу данных дополнительные реквизиты справочника “Контрагенты”.
Попробуем добавить дополнительный реквизит “Адрес”
Использование дополнительных реквизитов в отчётах и списках
После того как все необходимые изменения в конфигурации выполнены возникает вопрос о том как использовать дополнительные реквизиты для вывода и фильтрации данных в отчётах и списках.
Вариант №1
Начнём с использования характеристик в отчёте, разработанном с использованием системы компоновки данных. За основу возьмём отчёт “Ведомость взаиморасчетов”. Добавим в конфигурацию копию этого отчёта и назовём его “Ведомость взаиморасчетов (с характеристиками)”.
Оригинал отчёта нам понадобится для демонстрации второго варианта использования характеристик.
Итак, откроем набор данных “Взаиморасчеты” схемы компоновки данных нашего отчета в конструкторе запросов и перейдем на закладку “Характеристики”.
- В таблицу на вкладке “Характеристики” добавим строку.
- В поле “Тип” выберем “СправочникСсылка.Контрагенты” (это объект для которого в отчёте необходимо использовать дополнительные характеристики).
- В поле “Источник видов” выберем вариант “Запрос” (хотя в нашем случае можно ограничиться и вариантом “Таблица”).
- В колонку “Виды характеристик” внесём текст запроса, которым будут выбираться виды характеристик, используемые для справочника “Контрагенты”.
Текст запроса обязательно должен содержать три поля – ссылка на вид характеристики, наименование характеристики и тип значения характеристики. Наименования этих полей выбираются в колонках “Поле ключа”, “Поле имени” и “Поле типа значения” таблицы на закладке “Характеристики”.
- Для визуального выделения дополнительных реквизитов объекта в запросе по видам характеристик к наименованиям добавлен текст “(доп. реквизит)”.
- В колонке “Источник значений” на вкладке “Характеристики” выберем вариант “Таблица”.
- В колонке “Значения характеристик” выберем “РегистрСведений.Характеристики”,
- в колонке “Поле объекта” – наименование измерения регистра “Объект”,
- в колонке “Поле вида” – наименование измерения “ВидХарактеристики”,
- в колонке “Поле значения” – наименование ресурса “Значение”.
В тексте запроса схемы компоновки результат добавления характеристик выглядит следующим образом (в обычных запросах применение таких конструкций невозможно):
{ХАРАКТЕРИСТИКИ
ТИП(Справочник.Контрагенты)
ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ
ВидыХарактеристик.Ссылка,
ВидыХарактеристик.Наименование + » (доп. реквизит)» КАК Наименование,
ВидыХарактеристик.ТипЗначения
ИЗ
ПланВидовХарактеристик.ВидыХарактеристик КАК ВидыХарактеристик)
ПОЛЕКЛЮЧА Ссылка
ПОЛЕИМЕНИ Наименование
ПОЛЕТИПАЗНАЧЕНИЯ ТипЗначения
ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.Характеристики
ПОЛЕОБЪЕКТА Объект
ПОЛЕВИДА ВидХарактеристики
ПОЛЕЗНАЧЕНИЯ Значение }
Проверим работу отчёта. Для этого откроем отчёт “Ведомость взаиморасчетов (с характеристиками)”. Перейдем в пункт меню “Все действия -> Изменить вариант”. В окне настроек перейдём на закладку “Отбор” и добавим отбора по дополнительному реквизиту контрагента “Адрес”
Вариант №2
Рассмотрим более универсальный вариант работы с характеристикам объектов, благодаря которому характеристики возможно будет использовать в любых отчетах, содержащих объект-владелец характеристик, а также устанавливать отборы по значению этих характеристик в формах списков.
Перейдём на закладку “Данные” справочника “Контрагенты” и нажмём кнопку “Характеристики”.
- В открывшемся окне “Дополнительных характеристик объекта метаданных” добавим строку.
- В колонке “Виды характеристик” выберем “ПланВидовХарактеристик.ВидыХарактеристик”, в колонке “Поле ключа” – “Ссылка”.
- В колонке “Значения характеристик” выберем “РегистрСведений.Характеристики”, в колонке “Поле объекта” – “Объект”,
- в колонке “Поле вида” – “ВидХарактеристики”, в колонке “Поле значения” – “Значение”.
Сохраним конфигурацию и попробуем воспользоваться дополнительными характеристиками справочника “Контрагенты” в форме списка (в отчёте “Ведомость взаиморасчетов” использование дополнительных реквизитов будет выглядеть аналогичному тому как это было описано в Варианте №1, с той лишь разницей, что наименованию вида характеристики не будет добавляться текст “(доп. реквизит)”).
Откроем список справочника “Контрагенты”, перейдем в пункт меню “Все действия -> Настройка списка” и установим отбор по дополнительному реквизиту “Адрес”.
Стоит отметить, что при использовании Варианта №1 в отчётах с использованием СКД отключается приведенный механизм платформы и используется описанный пользователем.
Статья найдена на просторах интернета.
Вы обязательно истратите слишком много, если захотите сэкономить на хорошей рекламе. Это подобно покупке билета на три четверти пути в Европу: вы потратили деньги, но туда не доехали.
Доброго дня, коллеги!
Умеете ли вы работать с вкладкой Характеристики конструктора запросов в СКД? Если нет, то следующий разбор вопроса для вас. Тренер на простом примере продемонстрирует, как в отчете на СКД легко добавить возможность использования дополнительных свойств объектов. При этом ни один ПВХ задействован не будет))
Вопрос
Вроде все понятно в теории, а на практике не получается вывести в отчете дополнительные сведения. Помогите мне на моем примере, пожалуйста.
Пример: есть документы, где физ. лицам производят определенные начисления. У каждого физ. лица есть свой внутренний идентификатор (ИД), который не является реквизитом справочника физ. лица. Значение ИД хранится в регистре сведений “ИД физ. лиц”. Нужно в отчет вывести данные о начислениях документов за период и отдельной колонкой этот ИД. Не понимаю, как на вкладке Характеристики конструктора запроса в СКД задать эту связь.
Ответ
Добрый день!
Создаем пустую базу, добавляем в конфигураторе справочник Физлица и независимый непериодический регистр сведений ИдентификаторыФизлиц следующей структуры:
В пользовательском режиме создаем элемент справочника, заполняем идентификатор в регистре:
В конструкторе схемы компоновки на закладке Характеристики выполняем следующие настройки:
(нажмите, чтобы увеличить картинку)
Обратите внимание, что ни одного ПВХ в базе нет.
Настройки выполняем именно таким образом:
- В колонке Тип указываем, для какого объекта настраиваем характеристики – это справочник Физлица.
- Поскольку в базе нет объекта (таблицы), где хранится перечень используемых видов характеристик (например, ПВХ), то в качестве источника видов характеристик используем запрос. В качестве ключа и имени вида характеристики указываем строку “Идентификатор физлица”. Значит, в пользовательском режиме, когда развернем список вложенных полей для физлица, будет доступно новое поле “Идентификатор физлица”.
- Поскольку в регистре сведений ИдентификаторыФизлиц нет поля, где хранится вид характеристики, тоже используем запрос, в котором строкой пропишем имя вида характеристики – “Идентификатор физлица”.
Поле объекта – это измерение регистра сведений “Физлицо”, так как именно в нем содержится поле нужного типа (п. 1), для которого получаем значения свойства.
Поле вида – это ключ вида характеристики (строка “Идентификатор физлица”), так как в регистре нет отдельного поля для хранения вида характеристики. Здесь должно быть указано то же значение, что и в “Поле ключа”. Так связывается вид характеристики и значение характеристики.
Поле значения – это ресурс регистра сведений “ИдентификаторФизлица”, поскольку именно в нем хранится значение характеристики – сам идентификатор.
После таких настроек в отчете можно вывести вложенное поле “Идентификатор физлица”:
3 / 3 / 2 Регистрация: 18.02.2014 Сообщений: 41 |
|
1 |
|
1C 8.x Дополнительные реквизиты в СКД28.05.2015, 12:29. Показов 27990. Ответов 11
Делаю отчет в скд по продажам менеджеров. У менеджера есть доп.реквизит. Необходимо сумму продаж поделить на допреквизит и вывести в отчет. Но как запросить этот реквизит?
0 |
Модератор 3708 / 2905 / 572 Регистрация: 10.03.2011 Сообщений: 11,442 Записей в блоге: 1 |
|
28.05.2015, 13:49 |
2 |
Сделать числовой параметр (вкладка параметры)
0 |
3 / 3 / 2 Регистрация: 18.02.2014 Сообщений: 41 |
|
28.05.2015, 14:21 [ТС] |
3 |
А поподробнее? Значение доп.рек. у менеджеров различные, и со временем меняются…
0 |
Модератор 3708 / 2905 / 572 Регистрация: 10.03.2011 Сообщений: 11,442 Записей в блоге: 1 |
|
28.05.2015, 14:26 |
4 |
Ну типа вопрос менеджеру: Укажи свой доп реквизит! А то фиг отчет получишь!!!
0 |
Злой самаритянин 182 / 182 / 94 Регистрация: 24.04.2014 Сообщений: 686 |
|
28.05.2015, 14:34 |
5 |
В управляемом приложении параметры СКД сами выводятся на форму. Только после добавления их надо включать на вкладке «Наптройки» — «Параметры» (поставить галку) и добавьте его в пользовательские натройки (на той же вкладке справа есть кнопка с табличкой и шестеренкой).
0 |
3 / 3 / 2 Регистрация: 18.02.2014 Сообщений: 41 |
|
28.05.2015, 14:44 [ТС] |
6 |
Не все так просто) Раньше вручную создавал через конфу реквизит, с ним работать просто. Но потом проблемы с обновлением, обменом……. Решено было работать штатными реквизитами.
0 |
Злой самаритянин 182 / 182 / 94 Регистрация: 24.04.2014 Сообщений: 686 |
|
28.05.2015, 14:59 |
7 |
Не нужно там вычисляемое поле, добавьте в запрос поле, его же можно редактировать. К параметру обращаемся так — &ИмяПараметра.
0 |
3 / 3 / 2 Регистрация: 18.02.2014 Сообщений: 41 |
|
28.05.2015, 15:08 [ТС] |
8 |
Согласен, но как мне в запросе выудить значение допреквизита? Допреквизиты хранятся в табличной части справочника. Как то найти по наименованию……. Ужа когда формируешь отчет, появляется Менеджер.Процент… Говорили мне что муть с этими реквизитами….
0 |
Злой самаритянин 182 / 182 / 94 Регистрация: 24.04.2014 Сообщений: 686 |
|
28.05.2015, 15:14 |
9 |
как мне в запросе выудить значение допреквизита?
Допреквизиты хранятся в табличной части справочника. Тогда добавляйте эту ТЧ в запрос и выуживайте. Связи только правильно настроить надо.
1 |
3 / 3 / 2 Регистрация: 18.02.2014 Сообщений: 41 |
|
01.06.2015, 17:30 [ТС] |
10 |
Мысль то ясна, но как?))) Добавлено через 26 минут Добавлено через 55 минут
0 |
Злой самаритянин 182 / 182 / 94 Регистрация: 24.04.2014 Сообщений: 686 |
|
01.06.2015, 17:38 |
11 |
Нет, просто произвольное выражение. Тоже в конструкторе. Вкладка «Таблицы и поля». Список «Поля». Плюсиком сверху добавляем поле, перетаскиваем реквизиты из списка слева-сверху вниз, расставляем нужные знаки — арифметические там ничем не отличаются. Профит. Добавлено через 1 минуту Добавлено через 1 минуту
1 |
3 / 3 / 2 Регистрация: 18.02.2014 Сообщений: 41 |
|
02.06.2015, 12:17 [ТС] |
12 |
Проблема решена. Все оказалось не так сложно. Если необходимо, распишу подробнее.
0 |
Содержание:
1. Механизм учета поставщиков и производителей в 1С СКД с использованием характеристик номенклатуры.
2. Схема хранения данных.
3. Два способа формирования отчета в СКД 1С 8.3.
Добрый день, уважаемые коллеги. Сегодня рассмотрим пример использования характеристик в СКД (Система компоновки данных).
1. Механизм учета поставщиков и производителей в 1С СКД с использованием характеристик номенклатуры
Для примера будем использовать простую конфигурацию для учета отопительного оборудования. Учет по поставщикам и производителям будем вести с использованием характеристик номенклатуры в 1С 8.3.
Реализация.
Создадим два справочника – «Номенклатура» и «ХарактеристикиНоменклатуры».
Рис.1
Для того чтобы можно было однозначно соотнести значение характеристики и номенклатуры, справочник «ХарактеристикиНоменклатуры» будет подчинен справочнику «Номенклатура».
Создадим документ «ПоступлениеТоваров» с табличной частью «ТабличнаяНоменклатура» и реквизитами табличной части: «Номенклатура» с типом «СправочникСсылка.Номенклатура», «Характеристика» с типом «СправочникСсылка.ХарактеристикиНоменклатуры» и «Количество» с типом «Число».
Рис.2
Создадим регистр накопления в 1С 8.3 «ОстаткиНоменклатуры» для хранения остатков номенклатуры в разрезе характеристик:
Рис.3
Для документа «ПоступлениеТоваров» сформируем код для движения по регистру «ОстаткиНоменклатуры»:
Рис.4
Создадим в 1С:Предприятие 8.3 документ «Поступления товаров» и оприходуем две номенклатуры. Первая – котел газовый «VAILLANT TURBOFIT» с характеристиками производитель «VAILLANT» и поставщик «Поставщик1», производитель «VAILLANT» и поставщик «Поставщик2». Вторая – котел газовый «ВАХI BASIC» с характеристиками производитель «BAXI» и поставщик «Поставщик2», производитель «BAXI» и поставщик «Поставщик1»:
Рис.5
Сформированные движения документом:
Рис.6
После того как был оприходован товар, нам необходимо проконтролировать остатки товара в разрезе характеристик. Для этого создадим отчет «ОстаткиТоваров» с использованием СКД:
Рис.7
Рис.8
Рис.9
Сформируем в 1С:Предприятие 8.3 отчет:
Рис.10
Отчет, как мы и задумывали, вывел остатки номенклатуры в разрезе Характеристик – все хорошо. Усложним задачу. Попробуем отобрать в отчет только ту номенклатуру поставщиком, которой является «Поставщик2». Перейдем в настройки и реализуем отбор:
Рис.11
Как мы могли убедиться, такой отбор установить невозможно для данной реализации задачи, потому что характеристика номенклатуры у нас представлена в виде строки. Чтобы реализовать возможность отбора по значениям характеристики номенклатуры, введем в нашу конфигурацию новый объект метаданных «План видов характеристик», который позволит нам реализовать возможность отбора по значениям характеристики номенклатуры.
2. Схема хранения данных
Концепция хранения данных будет следующая:
Рис.12
Поясним схему хранения данных:
В плане видов характеристик «Свойства Номенклатуры» мы будем хранить множество свойств характеристик номенклатуры таких как, например, «Поставщик», «Производитель».
В справочнике «Значение Свойства» будем хранить множество значений свойства характеристики таких, как например «Поставщик1», «Поставщик2», «BAXI» и так далее. Справочник сделаем подчиненным плану видов характеристик для построения однозначного соответствия «свойство -> значение свойства».
Для связи характеристики, свойства, значения свойства создадим регистр сведений «Значения Характеристик». В регистре сведений соответственно определим реквизиты: «Объект». Для него установим свойство «Ведущее» в значение «Истина» для удобного заполнения регистра из характеристики, «Свойство» для хранения ссылка на свойство характеристики и ресурс «Значение» для хранения ссылки на значение свойства.
После изменения конфигурации внесем данные свойств и значений характеристик номенклатуры.
Пример:
Рис.13
3. Два способа формирования отчета в СКД 1С 8.3.
После проделанной работы попробуем снова сформировать отчет с отбором по значению свойства характеристики. И что мы видим? Ничего у нас не получилось. Почему? Мы организовали схему хранения данных, которая позволяет нам производить отборы, а отборы так и остались недоступными. Для решения данной проблемы существует два способа:
Первый способ – модификация нашего отчета. Откроем схему компоновки данных нашего отчета, откроем в конструкторе запроса «Запрос» и перейдем на закладку «Характеристики». Добавим следующую строку:
Рис. 14
Поясним, что мы сделали:
1. Описание списка характеристик:
· Указали «Тип», для которого определяются характеристики «СправочникСсылка.ХарактеристикиНоменклатуры».
· Указали, как мы будем получать данные из «Запроса» или «Таблицы» данных. Поле «Источник видов» — «Таблица».
· Указали, в какой таблице данных метаданных поле «Виды характеристик» находятся данные с описанием свойств характеристик «ПланВидовХарактеристик.СвойстваНоменклатуры».
· Указали, по какому полю таблице данных метаданных «ПланВидовХарактеристик.СвойстваНоменклатуры» будет установлена связь с характеристикой номенклатуры. Поле ключа «Ссылка».
· Указали в качестве представление свойства характеристики имя. Поле имени «Наименование» имя, под которым пользователь вводил характеристику.
· Указали в качестве типа — поле типа значения «ТипЗначения». Значение поля используется в отборе по полю — характеристика.
2. Описание значений характеристик:
· Указали, как мы будем получать данные из «Запроса» или «Таблицы» данных. Поле «Источник видов» — «Таблица».
· Указали, в какой таблице данных метаданных поля «Значения характеристик» находятся данные со значениями свойств характеристик «РегистрСведений.ЗначенияХарактеристик».
· Указали, по какому полю таблицы данных метаданных будет установлена связь со свойством характеристики. Поле объекта «Ссылка». В данном поле будет производиться поиск значения идентификатора, полученного в списке характеристик.
· Указали поле вида – «Свойство». Это поле является связующим между значением характеристики и свойством характеристики.
· Поле значение хранит значение свойства характеристики.
Произведя таким образом дополнительную настройку отчета, получим следующий результат:
Рис. 15
Возможность производить отбор по значениям свойств характеристик:
Рис.16
Итог – поставленная задача решена.
Однако данную задачу можно решить и вторым способом, не модифицируя отчет.
Для этого нам потребуется внести изменения в справочник «ХарактеристикиНоменклатуры». Перейдем на закладку «Данные» и нажмем кнопку «Характеристики»:
Рис.17
Добавим строку:
Рис.18
Описание значений строки идентично тому, как мы добавляли строку в отчете.
Результат модификации справочника и формирование отчета в 1С будет такой же, как в первом способе. Отличие заключается в том, что первый способ будет действовать только в нашем отчете, а второй способ будет действовать для всех механизмов получения данных конфигурации. Чем пользоваться, решать Вам.
Вывод.
Характеристики в схеме компоновки данных 1С 8.3 – это просто. Главное понять, как связанны между собой характеристики, свойства характеристик и значения свойств характеристик. После этого добавление характеристик в 1С СКД становится чисто техническим вопросом.
Специалист компании ООО «Кодерлайн»
Дмитрий Гречушкин.