Дополнительные реквизиты в 1С Управление Нашей Фирмой
Видеоинструкция к этой статье https://youtu.be/f9Q8398SjE4
В 1С Управление Нашей Фирмой есть возможность создавать дополнительные реквизиты — поля и справочники для ввода данных без программиста. Ссылки на добавление реквизитов есть во многих карточках и документах — карточка контрагента, карточка номенклатуры, заказ покупателя и т. п.
Дополнительные реквизиты могут использоваться в вспомогательных целях, таких как переменные в формулах динамических спецификаций.
Возможность использовать доп. реквизиты в 1С Управление Нашей Фирмой включается при установке программы, но если у вас эта функция отсутствует, то включить ее можно в разделе «Настройки» по ссылке «Общие настройки»
Рис 1. Включение модуля Дополнительных реквизитов в 1С Управление Нашей Фирмой
Для просмотра дополнительных реквизитов, а также для их создания и редактирования, необходимо в «Общих настройках» пройти по ссылке «Дополнительные реквизиты».
Рис 2. Журнал Дополнительные реквизиты в 1С Управление Нашей Фирмой
Журнал состоит из шапки с управляющими кнопками — «Добавить», «Копировать» и «Вставить», а также двух окон — в левом окне находится иерархический список групп (папок) реквизитов и в правом окне показываются дополнительные реквизиты, которые относятся в выделенной папке.
Для добавления реквизита необходимо нажать на кнопку «Добавить» и выбрать один из двух вариантов — «Новый» и «Из другого набора»
Рис 3. Кнопка «Добавить» в журнале Дополнительные реквизиты в 1С Управление Нашей Фирмой
Начнем обзор с создания нового реквизита.
1. Создание нового реквизита
Для создания нового реквизита в журнале «Дополнительные реквизиты» нажимаем кнопку «Добавить» и выбираем вариант «Новый».
Откроется карточка создания Дополнительного реквизита.
Рис 4. Карточка создания Дополнительного реквизита в 1С Управление Нашей Фирмой
Поле «Наименование»
В первую очередь необходимо заполнить поле «Наименование» — наименование реквизита должно четко его идентифицировать, так как на его основании будет заполнено поле «Идентификатор для формул» и поле «Имя» в блоке «Для разработчиков», которое используется для программного обращения к данному реквизиту.
Поле «Тип значения»
В строке «Тип значения» необходимо выбрать значение из раскрывающегося списка, который открывается нажатием на кнопку с тремя точками в правой части строки.
Рис 5. Карточка выбора Типов значений карточки Дополнительного реквизита в 1С Управление Нашей Фирмой
Часть элементов справочника «Типы значений» понятна большинству пользователей — Дата, Валюта и т. п., а часть значений будет понятна специалистам или опытным пользователям — рассмотрим эти значения подробно с примерами использования доп. реквизитов в карточке номенклатуры.
Типы значений дополнительных реквизитов в 1С: Управление Нашей Фирмой
1)Булево
Булево — имеет только 2 значения: да/нет, истина/ложь и т. п.
Рис 6. Вариант карточки Дополнительного реквизита при выборе типа значений Булево в 1С Управление Нашей Фирмой
В карточке Номенклатуры этот тип данных может выглядеть как Чек-бокс с галочкой.
Рис 7. Вариант карточки Номенклатуры при выборе типа значений Булево в 1С Управление Нашей Фирмой.
Мы можем изменить формат отображения нажав на ссылку «Формат по умолчанию» в карточке доп. реквизита справа от поля «Тип значения»
Рис 8. Конструктор форматной строки при выборе типа значений Булево в 1С Управление Нашей Фирмой.
Клик по ссылке откроет форму «Конструктор форматной строки». В ней нам нужен список из двух значений «Представление значения булево Ложь» и «Представление значения булево Истина» — если галочки перед строками снять, то останется первый вариант с чек-боксом.
В поле со значениями мы можем выбрать из трех вариантов Ложь/Истина, Да/Нет, Выключено/Включено или ввести собственное значение как в примере (см. Рис. 11).
В результате изменения формата в карточке номенклатуры этот реквизит будет выглядеть как текстовое поле с выбором значения, но на выбор будет выводиться только два значения.
Рис 9. Дополнительный реквизит с типом Булево с собственными значениями в карточке номенклатуры в 1С Управление Нашей Фирмой.
2)Строка
Строка — самый простой тип значений, который позволяет вводить любой набор символов. К строке не привязан справочник значений, поэтому в ней нет повторного выбора ранее введенной информации.
При выборе Типа значения в форме «Редактирование типа данных» в нижней части формы в зависимости от типа данных появляются дополнительные настройки.
Рис 10. Настройки отображения данных дополнительных реквизитов в 1С Управление Нашей Фирмой.
В типе значений «Строка» в нижней части расположены настройки длины строки: Длина — количество символов, Вариант изменения длины строки — «Переменная» (в зависимости от количества введенных символов) и «Фиксированная», а также чек-бокс для галочки «Неограниченная» — снимает все ограничения по количеству вводимых символов.
После выбора этого Типа значения в карточке Дополнительного реквизита появятся три дополнительных варианта выбора отображения реквизита — «Однострочное поле ввода», «Многострочное поле ввода» — при выборе данного варианта активируется параметр «Количество строк», который позволяет ограничить количество строк ввода.
Рис 11. Дополнительные параметры Дополнительных реквизитов с типом Строка в 1С Управление Нашей Фирмой.
3)Дополнительное значение
Дополнительное значение — раскрывающийся список, в котором значения могут быть внесены заранее или добавляться в процессе работы.
Рис 12. Создание Дополнительного реквизита с типом значения Дополнительное в 1С Управление Нашей Фирмой.
Галочка «Выводить в виде гиперссылки» позволяет отображать этот тип значений в документе в двух вариантах: без галочки — как раскрывающийся список, а с галочкой — как гиперссылка
Вариант без галочки:
Рис 13. Дополнительный реквизит с типом значения Дополнительное в карточке номенклатуры в 1С Управление Нашей Фирмой.
Для выбора значения нажимаем на стрелочку в правой части поля и появляется форма значения, в которой переходим по ссылке «Показать все» или «+(создать)».
При установленной галочке значение выводится, как ссылка, а для его изменения необходимо нажать на карандаш (справа от строки).
Рис 14. Гиперссылка дополнительного реквизита в карточке номенклатуры в 1С Управление Нашей Фирмой.
Ниже выбора варианта отображения, располагается табличная форма с двумя вкладками — «Главное» и «Значения».
Во вкладке «Главное» заполняем поля по необходимости — более подробно рассмотрим поля ниже.
Во вкладке «Значения» содержится список значений, присвоенных данному реквизиту.
Рис 15. Вкладка «Значения» в карточке дополнительного реквизита в 1С Управление Нашей Фирмой.
Значения можно ввести в этой вкладке с помощью кнопки «Создать» или после в процессе работы, как показано на Рис. 13.
Кнопка «Еще» раскрывает список дополнительных действий по управлению списком.
Рис 16. Список действий кнопки «Еще» во вкладки «Значения» карточки дополнительного реквизита в 1С Управление Нашей Фирмой.
Под полем списка значений располагается чек-бокс «Значения дополнительно характеризуются весовым коэффициентом» — после установки этой галочки каждому значению можно добавить числовое значение, которое позволяет дополнительно сортировать значения в отчетах или при выборе, также можно его использовать в других целях. В списке значений добавится колонка «Весовой коэффициент».
Рис 17. Весовые коэффициенты значений в карточке дополнительного реквизита в 1С Управление Нашей Фирмой.
Значения можно сгруппировать — кнопка «Создать группу» позволяет создавать группы (папки) значений.
4)Число
Этот тип значений ограничен только числовыми значениями.
В настройке отображения этого реквизита при его выборе программа выдает два поля: «Длина» — количество вводимых символов, «Точность» — количество символов после запятой, а также чек-бокс для галочки «Неотрицательное» — установленная галочка не дает ввести отрицательное число.
Рис 18. Настройки дополнительного реквизита при выборе типа значений в 1С Управление Нашей Фирмой.
Остальные Типы значений и их настройка более понятны пользователям и не имеют дополнительных настроек поэтому не будем их рассматривать.
Рассмотрим остальные элементы карточки «Дополнительный реквизит» общие для всех типов.
5)Составной тип данных
Составной тип данных находится в верней части формы выбора. Установка галочки позволяет создать поле, при нажатии на которое программа попросит у пользователя самостоятельно выбрать тип вводимых данных.
После установки галочки в чек-боксе «Составной тип данных» в списке появляется возможность выбора нескольких значений — например:
В заказе покупателя вы хотите отобразить Агента, человека, который нашел данный заказ -сторонний человек или сотрудник предприятия.
Создаем дополнительный реквизит с названием «Агент». А при выборе типа значений устанавливаем галочки: «Составной тип данных», «Контрагент», «Сотрудник».
Рис 19. Составной тип данных дополнительного реквизита в 1С Управление Нашей Фирмой.
В Заказе покупателя находим созданный реквизит «Агент» и нажимаем на три точки в правой части поля и, в открывшейся форме, нажимаем на нужный тип данных — Сотрудник или Контрагент
Рис 20. Поле с составным дополнительным реквизитом в 1С Управление Нашей Фирмой.
Выбор поля дает доступ к нужному справочнику «Контрагенты» или «Сотрудники».
В конце месяца можно отсортировать заказы по контрагентам и сотрудникам, начислить комиссионное вознаграждение контрагентам или премию сотрудникам.
Ссылка «Виден»
Позволяет настроить видимость реквизита в зависимости от настроенных условий.
Например:
У товара, в редких случаях, кроме основного цвета могут быть элементы с другим цветом.
Создаем два дополнительных реквизита — один реквизит с типом «Булево», а второй с типом «Строка».
В настройках реквизита с типом «Строка» нажимаем на ссылку «Виден» — откроется форма «Видимость дополнительного реквизита», в которой мы настраиваем условия видимости — нажимаем на кнопку «Добавить условия» и в табличной части заполняем строку из трех ячеек:
-
«Реквизит» — двойной клик на ячейку активирует ее, а клик на кнопку с тремя точками в правой части ячейки откроет дополнительную форму «Выбор реквизита» со списком доступных реквизитов, в котором кроме реквизитов программы есть дополнительные реквизиты, введенные нами. Выбираем доп. реквизит «Дополнительный цвет».
Рис 21. Настройка условий видимости дополнительного реквизита в 1С Управление Нашей Фирмой.
-
«Вид сравнения» — двойной клик откроет список выбора вида сравнения — равно, не равно, заполнено, не заполнено и т. п.
-
«Значение» — двойной клик откроет список значений выбранного реквизита, выбираем кликом нужное значение
В примере у нас получилось условие: Если в реквизите «Дополнительный цвет» установлена галочка, то реквизит «дополнительная гамма цветов» становится виден.
Рис 22. Видимость дополнительного реквизита в 1С Управление Нашей Фирмой.
Ссылка «Доступен»
Эта ссылка позволяет настроить доступность реквизита, также, как ссылка «Виден», но в отличии от нее реквизит виден всегда, но активен при определенном условии.
Чек-бокс (Галочка) «Заполнять обязательно»
При установленной галочке данный реквизит становится обязательным к заполнению, а ссылка справа позволяет настроить условие, при котором этот параметр будет действовать — настраивает аналогично предыдущим ссылкам «Виден» и «Доступен».
Поле «Идентификатор для формул»
Заполняется автоматически, но возможна ручная корректировка.
Рис 23. Карточка дополнительного реквизита 1С Управление Нашей Фирмой.
С права от поля расположена кнопка со стрелкой для перезаполнения поля на основании строки «Наименование».
Поле «Всплывающая подсказка»
Это поле позволяет выводить нужную информацию — наименование или инструкцию по заполнению реквизита, которая будет появляться при наведении на реквизит.
Поле «Комментарий»
В это поле можно занести любую информацию для внутреннего пользования по этому реквизиту.
На этом обзор работы с новой карточкой «Дополнительный реквизит» заканчиваем и переходим к рассмотрению копирования дополнительных реквизитов.
2. Копирование реквизита «Из другого набора»
В журнале «Дополнительные реквизиты» нажимаем кнопку «Добавить» и выбираем второй вариант — «Из другого набора».
Откроется форма «Добавление дополнительного реквизита»
Рис 24. Добавление Дополнительного реквизита из другого набора в 1С Управление Нашей Фирмой
Форма «Добавления Дополнительного реквизита» очень похожа на журнал «Дополнительные реквизиты» с некоторыми отличиями — отсутствуют верхние кнопки управления и в правой части добавлены поля
— «Тип значения» — показывает, какого типа значения присутствуют в выбранном варианте,
— «Всплывающая подсказка» — необходимо ввести текст, который будет появляться при наведении на реквизит мышкой,
а также два поля «Заголовок формы значения» и «Заголовок формы выбора значения» — текст, который будет выводиться на заголовках указанных форм.
Заполнили поля и нажимаем в нижнем правом углу желтую кнопку «Далее».
Откроется новая страница с выбором варианта добавления реквизита
Рис 25. Выбор варианта добавления Дополнительного реквизита из другого набора в 1С Управление Нашей Фирмой
-
Добавить реквизит как есть — реквизит будет показываться в папке копирования, но это будет тот же реквизит. Реквизит в программе один, но входит в две группы, о чем нас извещает ссылка в нижней части вкладки «Главное».
Рис 26. Разделение общего Дополнительного реквизита в 1С Управление Нашей Фирмой
При нажатии на ссылку откроется список групп реквизитов, в которых присутствует этот реквизит.
Для разделения реквизитов в самостоятельные параметры необходимо нажать кнопку «Изменить» справа от ссылки. В открывшейся форме необходимо выбрать один из двух вариантов: «Реквизит со своим списком значений» или «Общий реквизит» — в первом варианте будет полное разделение реквизитов на самостоятельные единицы, а во втором случае все останется так как есть.
Во вкладке «Значения» присутствует похожая ссылка и кнопка «Изменить», но уже для разделения списка значений.
-
Сделать копию реквизита по образцу (с общим списком значений) —будет создан новый реквизит, отдельный от копируемого, но с общим списком значений.
Вариант разделения аналогично с предыдущим вариантом, но ссылка и кнопка изменить есть только во вкладке «Значения».
-
Сделать копию реквизита — копируются тип реквизита и значения, а наименование вводим самостоятельно. В этом случае создается реквизит полностью независимый от копируемого.
Выбираем вариант копирования и нажимаем на кнопку «Далее» в нижнем правом углу.
При выборе варианта копирования «Добавить реквизит как есть» реквизит создается сразу. В вариантах «Сделать копию реквизита по образцу» и «Сделать копию реквизита» программа откроет карточку создания Дополнительного реквизита для заполнения полей «Наименование» и «Идентификатор для формул», так как в отличии от первого варианта копирования будут созданы новые реквизиты.
На этом обзор Дополнительных реквизитов заканчиваем.
Если остались вопросы пишите нам на почту mail@rps-1c.ru или звоните на телефон(он же WhatsApp) +7-923-158-67-74
Аренда 1С: УНФ в облачном сервисе 1С: Фреш — https://rps-1c.ru/content/published/1cfresh/1с-fresh/
Протестируйте 1С Управление Нашей Фирмой бесплатно 30 дней — https://rps-1c.ru/1capp/arenda_fresh.html
Обсуждение (9)
-
Здравствуйте! Не совсем поняла, что нужно сделать. Можно на примере, пожалуйста.
Вы хотите вносить значение доп. реквизита в документе? Значение может меняться. Вы бы хотели хранить историю изменения? Сразу скажу, что ничего из этого нельзя делать типовыми средствами. Значения доп. реквизитов и сведений регистрируется в форме объекта, и нельзя это сделать списочно. История изменения не хранится, когда изменили, прежнее значение затирается. -
Юлия, добрый день. Менять ничего не надо. История соответственно не нужна. Доп. реквизит или сведения, без разницы. Нужно внести список сотрудников (их количество может быть разным) и по ним указать соответствующие числовые значения.
-
Задать значения доп. реквизитов и сведений нельзя в списке. придется заходить в каждого сотрудника и указывать там.
Списочно — только дорабатывать.А для какой цели Вы собираетесь использовать эти значения. Может быть это не реквизит вовсе, а показатель?
-
-
Юлия, спасибо. Пока решили задачу другим способом. Попроще. Но на будущее интересно, т.к. идея эта периодически возникает. Смысл такой — документ премия, вводится суммой на несколько сотрудников. Схема начисления сложная, с присутствием субъективного мнения руководителя и соответственно пока не вижу как можно её начисление реализовать в программе. Но есть один базовый показатель, объем упакованной продукции, который хотелось бы справочно указать в доп сведениях или реквизитах, соответственно на каждого премированного сотрудника. Есть варианты?
-
Объем упакованной продукции — будет всегда для сотрудника постоянным? Кажется, что это фактический показатель, который должен меняться ежемесячно, но из Ваших ответов выше, следует что постоянный.
И еще вопрос: для каких целей его указывать для сотрудника: для целей расчета премии или ещё для каких-то? Ну может руководитель, например, хочет это сразу видеть в базе ЗУП?
-
-
Объем всегда разный. Указывается справочно
-
Понятно.
Показатель тут тоже не очень подходит, потому что в расчетах он не участвует. Но можно тем не менее его в базу внести, ежемесячно отражать через Данные для расчета зарплаты. Добавить его в формулу расчета премии. Если сейчас вводите фикс. суммой, то формулу можно сделать «Сумма + Объем*0». Тогда «Объем будет прописываться в регистры как показатель расчета премии и его можно вытащить в отчетах «Анализ зарплаты», «Расчетный листок». Тут смотря в каком виде хочет видеть это руководитель.
А доп. реквизит нельзя вносить списочно. И на этот счет вариантов нет, кроме доработки заполнения доп.реквизита списком.
-
-
то что надо. идея с умножением на ноль хороша. возьму на вооружение). спасибо!
-
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.
|
|
|||
kittystark
19.02.20 — 17:07 |
есть где почитать про сабж ? |
||
vicof
1 — 19.02.20 — 18:28 |
И что ты хочешь узнать про условное оформление? |
||
kittystark
2 — 20.02.20 — 08:37 |
весовой коэфф. ширины, как им пользоваться ? |
||
ДенисЧ
3 — 20.02.20 — 08:56 |
(2) Задавать разные значения и смотреть результат? |
||
kittystark
4 — 20.02.20 — 10:27 |
это на этапе компоновки ширина перевычисляется перед показом готового отчета? или это для интерактива, когда пользователь мышой изменяет ширину колонок уже сформированного отчета и перерасширяются другие?
примерчик бы практического использования: |
||
ДенисЧ 5 — 20.02.20 — 10:29 |
(4) Именно для предвывода. Пользователь меняет так, как ему захочется. |
Быстрый старт в Python для 1С Разработчиков | 1s-to-python.ru
Очень часто в организациях учет договоров ведется в каких-то специфических разрезах. По-этому в «1С:Документооборот» предусмотрена возможность добавлять новые (дополнительные) реквизиты договора, которые затем можно использовать для анализа либо для заполнения шаб-лонов.
Дополнительные реквизиты конкретного вида документа задаются в разделе Настройка и администрирование — Дополнительные реквизиты-Дополнительные сведения.
Сразу отметим, что на форме отражается два списка:
- «Дополнительные реквизиты». Редактируются в карточке договора и доступны тем пользователям, у которых есть права на доступ к договору;
- «Дополнительные сведения». Редактируются в отдельной форме и доступны к просмотру и изменению также и тем пользователям, у которых нет прав на доступ к самому договору.
Добавление свойств аналогично добавлению реквизитов, поэтому далее опишем только до-бавление реквизитов.
При создании нового реквизита необходимо указать его тип (можно указать и составной тип данных).
Часто удобно в качестве типа данных выбрать «Значения свойств объектов», что позволит задать произвольные значения, необходимые пользователю.
Для значений свойств рекомендуется продумать и заполнить реквизит «Весовой коэффициент», тогда в отчетах можно будет использовать отборы и сортировку по значению «Весового коэффициента».
Для дополнительных реквизитов можно указать является ли данный реквизит обязательным для заполнения или нет.
Чтобы заполнить дополнительный реквизит в конкретном договоре достаточно в карточке договора на закладке Свойства указать нужное значение.
Значения дополнительных реквизитов отражаются и на закладке Обзор.
Механизм дополнительных реквизитов и свойств позволяет вести учет не только стандартных основных реквизитов, но и любых произвольных реквизитов, необходимых для учета в конкретной организации. Значения этих реквизитов можно использовать в отчетах, а также для автозаполнения шаблонов файлов (см. вопрос «94. Можно ли использовать дополнительный реквизит для автоматического заполнения файла договора?»).
Просмотров: 11879
Если Ваш интернет-магазин интегрирован с 1С, скорее всего столкнулись с такой проблемой: 1С не умеет выгружать параметры товара: Вес, Ширина, Высота, Глубина.
Но эти параметры нужны для служб доставки, таких как Почта России, DHL и прочих. И желательно, что бы они были именно в параметрах товара модуля торгового каталога.
Заполнить их достаточно просто, для этого понадобиться создать дополнительные реквизиты в 1С с этими параметрами и воспользоваться методом API CCatalogProduct::Update
Заполняем параметры из свойств
Итак: мы создали доп реквизиты Вес, Ширина, Высота, Глубина в 1С, заполнили их и обменялись с сайтом. Теперь на сайте есть свойства ATT_WEIGHT, ATT_WIDTH, ATT_HEIGHT, ATT_LENGTH
Пишем простенький скрипт, который просто получит все элементы из инфоблока с каталогом (в примере, его ID = 15), с отбором данных свойств.
$addProps = CIBlockElement::GetList (
Array("ID" => "ASC"),
Array("IBLOCK_ID" => 15),
false,
false,
Array(
'ID',
'PROPERTY_ATT_WEIGHT',
'PROPERTY_ATT_WIDTH',
'PROPERTY_ATT_HEIGHT',
'PROPERTY_ATT_LENGTH'
)
);
while($ar_fields = $addProps->GetNext())
{
echo 'ID' . $ar_fields['ID'] .' / ';
echo 'Вес:' . $ar_fields['PROPERTY_WEIGHT_VALUE'].' / ';
echo 'Длина:' . $ar_fields['PROPERTY_DLINA_VALUE'].' / ';
echo 'Ширина:' . $ar_fields['PROPERTY_SHIRINA_VALUE'].' / ';
echo 'Высота:' . $ar_fields['PROPERTY_VYSOTA_VALUE'].'';
}
endif;
Если запустить этот скрипт, просто получим вывод всех товаров каталога с указанием ID элемента и наших свойств.
Зная эти свойства, просто загоняем их значения в стандартные поля торгового каталога, методом CCatalogProduct::Update
$addProps = CIBlockElement::GetList (
Array("ID" => "ASC"),
Array("IBLOCK_ID" => 15),
false,
false,
Array(
'ID',
'PROPERTY_ATT_WEIGHT',
'PROPERTY_ATT_WIDTH',
'PROPERTY_ATT_HEIGHT',
'PROPERTY_ATT_LENGTH'
)
);
while($ar_fields = $addProps->GetNext())
{
echo 'Товару с ID-' . $ar_fields['ID'] .' установлены параметры';
echo 'Вес:' . $ar_fields['PROPERTY_ATT_WEIGHT_VALUE'].' / ';
echo 'Длина:' . $ar_fields['PROPERTY_ATT_WIDTH_VALUE'].' / ';
echo 'Ширина:' . $ar_fields['PROPERTY_ATT_HEIGH_VALUET'].' / ';
echo 'Высота:' . $ar_fields['PROPERTY_ATT_LENGTH_VALUE'];
Cmodule::IncludeModule('catalog');
$PRODUCT_ID = $ar_fields['ID'];
$arFields = array(
'WEIGHT' => $ar_fields['PROPERTY_ATT_WEIGHT_VALUE'],
'WIDTH' => $ar_fields['PROPERTY_ATT_WIDTH_VALUE'],
'HEIGHT' => $ar_fields['PROPERTY_ATT_HEIGHT_VALUE'],
'LENGTH' => $ar_fields['PROPERTY_ATT_LENGTH_VALUE']
);
CCatalogProduct::Update($PRODUCT_ID, $arFields);
}
endif;
В примере, вывод с небольшой свисто-перделкой- он выводит уведомление об установке параметров. Можно этого не делать, просто вывести
echo ‘Параметры успешно установлены’;
Данный скрипт, подразумевает, что Вы будете запускать его в ручную, по необходимости. Это оптимально, если в каталоге не высокая текучка товаров и параметры товаров не меняются постоянно.
Само собой, можете добавить его в init.php дабы скрипт срабатывал на событиях
OnAfterIBlockElementUpdate — обновление элемента
OnAfterIBlockElementAdd — добавление элемента
Что повысит время обмена с 1С и в целом, нагрузку на сервер. Лучше повесить скрипт на агента, что бы срабатывал с некоторой переодичностью (раз в сутки, например). На врядли габариты товаров меняются постоянно и при каждом обмене.
Дополнение: Если 1С выгружает габариты в множественное свойство «Реквизиты»
Если ваша 1С выгружает габариты товаров в множественное свойство «Реквизиты» (пример на скрине):
Можно также получить данные цифры методом CIBlockElement::GetProperty а дальше заполнить штатные поля товара способом выше
Пример кода (в данном случае, нужно было еще и перевести сантиметры в миллиметры):
CModule::IncludeModule('iblock');
Cmodule::IncludeModule('catalog');
$iBlockID = 5; // ID инфоблока с товарами
$addProps = CIBlockElement::GetList(
Array("ID" => "ASC"),
Array("IBLOCK_ID" => $iBlockID),
false,
false,
Array(
'ID',
)
);
while ($ar_fields = $addProps->Fetch()) {
$VALUES = array(); // создаем пустой массив
$db_props = CIBlockElement::GetProperty(
$iBlockID,
$ar_fields['ID'],
array("sort" => "asc"),
Array("CODE" => "CML2_TRAITS") // код свойства с реквизитами
);
while ($ar_props = $db_props->Fetch()) {
$VALUES[] = $ar_props['VALUE']; // наполняем массив
}
$arFields = array(
// Берем габариты из значений массива (у вас могут быть другие номера
'WIDTH' => $VALUES['3'] * 10,
'HEIGHT' => $VALUES['4'] * 10,
'LENGTH' => $VALUES['5'] * 10;
);
CCatalogProduct::Update($ar_fields['ID'], $arFields);
echo "Габариты для " . $ar_fields['ID'] . " применены";
$arFields = array();
}
Небольшое пояснение к происходяему в скрипте:
- От метода CIBlockElement::GetList нам нужен только ID товара. Поэтому используем Fetch (работает быстрее).
- Методом CIBlockElement::GetProperty получили значения свойства CML2_TRAITS и наполниили ими массив $VALUES.
- В массив $arFields передали элементы массива $VALUES со значениями габаритов (рапечатайте print_r($VALUES), что бы увидеть свои).
- Массив $VALUES принудительно создается именно в нутри цикла, что бы очищался при каждой итерации
Поблагодарить и поддержать!
Поддержать выпуски видео уроков, поблагодарить за полезную инструкцию или заметку можно через:
Юманей
В библиотеке стандартных подсистем 1С дополнительные реквизиты и сведения включены и активно применяются. Эти механизмы позволяют добавить дополнительный реквизит к объекту метаданных без изменения типовой конфигурации. В публикации хочу продемонстрировать работу дополнительных реквизитов и сведений, их добавление и получение значений.
Краткое описание механизма дополнительных реквизитов и сведений
Пример добавление дополнительного реквизита вручную вы можете посмотреть в публикации Брутто в ТОРГ12, где добавляется новый реквизит «Коэффициент брутто» в справочнике «Номенклатура». Таким образом можно добавлять реквизиты всех известных типов (число, строка, булево, список значений, ссылки на справочники и т.д.) к распространенным справочникам и документам 1С.
Отличие дополнительного реквизита от дополнительного сведения в том, что
- Дополнительные реквизиты – список реквизитов, доступных в форме документа или справочника; причем эти реквизиты хранятся в табличной части объекта, к которому они добавлены;
- Дополнительные сведения – список значений доступных по дополнительной кнопке; причем доп. сведения хранятся в отдельном регистре.
После ввода дополнительного реквизита или сведения 1С, можно создать подключаемую обработку, где считать введенные дополнительные данные и задать необходимую логику обработки данных, в которой использовать этот реквизит или сведение.
Для получения дополнительных данных приведу примеры запросов, в которых получу 1С дополнительные реквизиты и сведения.
Для получения дополнительного сведения использую запрос вида:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ДополнительныеСведения.Свойство, | ДополнительныеСведения.Значение |ИЗ | РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения |ГДЕ | ДополнительныеСведения.Объект = &Объект"; Запрос.УстановитьПараметр("Объект", СсылкаДокумент);
Для получения дополнительного реквизита использую код вида (пример получения коэффициента брутто в ТОРГ12):
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НоменклатураДополнительныеРеквизиты.Свойство, | НоменклатураДополнительныеРеквизиты.Значение |ИЗ | Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты |ГДЕ | НоменклатураДополнительныеРеквизиты.Свойство = &Свойство | И НоменклатураДополнительныеРеквизиты.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", СсылкаДокумент); Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Коэффициент бруто"));
Теперь вы без труда сможете добавить и получить необходимые дополнительные 1С данные без снятия конфигурации 1С с поддержки и изменения типовой конфигурации. Без сомнения, такой инструмент должен быть в арсенале 1С программиста и активно использоваться в работе.