diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ba3528..44e3b59 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ --- +## 1.3.1.92 (2026-08-19) + +### РК_ПроверкаСерий — выгрузки форм/шаблонов зависимых каталогов (#17) + +- Добавлены директории `Forms/`, `Templates/`, `Ext/` для зависимых каталогов (`Номенклатура`, `ВидыНоменклатуры`, `СерииНоменклатуры`) в `crm3-26.rhana/src/Catalogs/`, чтобы конфигуратор больше не падал с ошибками вида `Файл объекта не существует` при применении расширения. + ## 1.3.1.91 (2026-08-19) ### РК_ПроверкаСерий — фиксы применения расширения (#17) diff --git a/VERSION b/VERSION index 3b837fe..2ba0290 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3.1.91 +1.3.1.92 diff --git a/src/Catalogs/ВидыНоменклатуры/Commands/НастройкаЦенообразования/Ext/CommandModule.bsl b/src/Catalogs/ВидыНоменклатуры/Commands/НастройкаЦенообразования/Ext/CommandModule.bsl new file mode 100644 index 0000000..0e52fa5 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Commands/НастройкаЦенообразования/Ext/CommandModule.bsl @@ -0,0 +1,14 @@ + +&НаКлиенте +Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) + ОткрытьФорму( + "Справочник.ВидыНоменклатуры.Форма.ФормаСпискаДляНастройкиЦенообразования", + , + ПараметрыВыполненияКоманды.Источник, + ПараметрыВыполненияКоманды.Уникальность, + ПараметрыВыполненияКоманды.Окно, + , + , + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры \ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Commands/НастройкиУчетаСерий/Ext/CommandModule.bsl b/src/Catalogs/ВидыНоменклатуры/Commands/НастройкиУчетаСерий/Ext/CommandModule.bsl new file mode 100644 index 0000000..2961bd3 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Commands/НастройкиУчетаСерий/Ext/CommandModule.bsl @@ -0,0 +1,12 @@ + +&НаКлиенте +Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) + + ОткрытьФорму( + "Справочник.ВидыНоменклатуры.Форма.ФормаНастройкиУчетаСерий", + Новый Структура("Склад", ПараметрКоманды), + ПараметрыВыполненияКоманды.Источник, + ПараметрыВыполненияКоманды.Уникальность, + ПараметрыВыполненияКоманды.Окно); + +КонецПроцедуры diff --git a/src/Catalogs/ВидыНоменклатуры/Ext/Help.xml b/src/Catalogs/ВидыНоменклатуры/Ext/Help.xml new file mode 100644 index 0000000..d983f4c --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Ext/Help.xml @@ -0,0 +1,4 @@ + + + ru + \ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Ext/Help/ru.html b/src/Catalogs/ВидыНоменклатуры/Ext/Help/ru.html new file mode 100644 index 0000000..9492c51 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Ext/Help/ru.html @@ -0,0 +1,45 @@ + +

Виды номенклатуры

+

Справочник является классификатором, предназначенным для объединения номенклатуры по общим признакам учета. Фактически виды номенклатуры - это ассортиментные группы продаваемых товаров. При продаже товаров в розницу (со склада типа Розничный) в соответствии с видами номенклатуры могут быть созданы товарные категории и определены квоты ассортимента по каждой товарной категории в соответствии с форматом магазина.

+

Тип номенклатуры

+

Характеристики номенклатуры

+

Серии номенклатуры

+

Дополнительные реквизиты

+

Шаблоны наименований

+

Значения по умолчанию

+

Дополнительные материалы на ИТС:

+

Тип номенклатуры

+

+

Для типа номенклатуры Товар дополнительно уточняются особенности учета, отчетности и отражения оборота товаров в государственных информационных системах (если включена хотя бы одна из указанных функциональных опций):

+


Если включено использование агентских услуг (включена функциональная опция Продажа агентских услуг в разделе НСИ и администрирование - Продажи - Оптовые продажи - Использование заказов), то для номенклатуры с типом услуга необходимо указать вариант оказания услуг:

+

Для номенклатуры с типами работа и услуга возможно указание Варианта оформления продажи. Вариант оформления продажи будет определять какой из двух типов документов будет оформляться по умолчанию для отражения оказания услуги (выполнения работы) по заказу клиента: Акт выполненных работ или Реализация товаров и услуг.

+

Характеристики номенклатуры

+

+

Использование характеристик возможно только, если включена функциональная опция Характеристики номенклатуры (НСИ и администрирование - Номенклатура - Разрезы учета).

+

В виде номенклатуры определяется порядок использования характеристик.

+

Серии номенклатуры

+

+

Использование серий возможно только, если включена функциональная опция Серии товаров (НСИ и администрирование - Номенклатура - Разрезы учета).

+

Серии следует использовать в том случае, если необходимо учитывать товары по дополнительным разрезам складского учета: по срокам годности, серийным номерам, производственным партиям и т.д. Для настройки учета по сериям необходимо указать, что именно серии идентифицируют и указать политику учета серий на каждом складе. Политики учета серий, предусматривающие указание серий, при отражении излишков, недостач и порчи товаров могут использоваться только на складах с ордерной схемой документооборота. На остальных складах допускается применение только справочного указания серий. Заданная для Вида номенклатуры политика учета серий в дальнейшем отображается в карточке соответствующего склада по гиперссылке Настройки учета серий.

Политики учета серий можно уточнять для каждого склада, а можно указать единую для всех складов политику. При этом, если эта политика предусматривает указание серий при отражении излишков, недостач и порчи, то все склады должны быть ордерными по этому типу операций.

+

Серии можно настраивать для вида номенклатуры, либо использовать единые для нескольких видов номенклатуры настройки - для этого нужно настроить использование серий для одного вида, а в другом виде (других видах) нужно указать ссылку на первый вид.
Политика, заданная в поле Политика учета серий является значением по умолчанию, и распространяется на все склады.
Если для какого-либо склада требуется указать индивидуальную политику, необходимо установить флаг Есть индивидуальные настройки политики учета серий.
В появившейся таблице можно указать склад и индивидуальную политику для него. Если будет выбрана та же политика, что в поле Политика учета серий, строка пропадет, т.к. не имеет смысла.

+

Если необходимо задать использование политик учета серий лишь для нескольких складов из множества, следует указать в поле Политика учета серий политику "Серии не используются", и задать индивидуальную настройку для нужных складов.

Если на отдельном складе политика учета серий не задана - при передаче товаров на данный склад информация о сериях товаров будет утеряна.

+

Серии могут идентифицировать:

+

Для сроков годности (если поле Серии идентифицируют заполнено значением Партии товаров, имеющих одинаковые сроки годности или Партии товаров, имеющих одинаковые номера серий и сроки годности) можно указать точность срока годности: до дней или до часов.

+

Серия для Алкогольной (спиртосодержащей) продукции всегда идентифицирует партию товаров, а в составе реквизитов серии могут указываться Срок годности, Дата производства, Производитель (ЕГАИС) и Справка 2 (ЕГАИС). В документах обмена с ЕГАИС предусмотрена возможность генерировать серии автоматически при поступлении и оприходовании при инвентаризации. Возможность будет доступна при установке флажка Генерировать серии автоматически.

+

Серия для Подконтрольной продукции ВЕТИС всегда идентифицирует партию товаров, а в составе реквизитов серии могут указываться Срок годности, Дата производства, Производитель (ВетИС), Запись складского журнала (ВетИС) и Идентификатор партии (ВетИС). В документах ВетИС предусмотрена возможность генерировать серии автоматически при поступлении и оприходовании при инвентаризации. Возможность будет доступна при установке флажка Генерировать серии автоматически. Для подконтрольной продукции ВетИС на ордерном складе можно применять только те политики учета серий, которые предполагает указание серий при планировании отгрузки.

+

При использовании политики учета серий Учет себестоимости по сериям, становится доступным указание серий у партнеров (товары в пути, неотфактурованные поставки).
Настройки серий у партнеров всегда берутся из политики указанной в шапке вида номенклатуры. При указании такой политики в табличной части, настройки партнеров будут проигнорированы.

+

Дополнительные реквизиты

+

+

Использование дополнительных реквизитов возможно только, если включена функциональная опция Дополнительные реквизиты и сведения (НСИ и администрирование - Общие настройки).

+

Дополнительные реквизиты предназначены для описания произвольных свойств объектов. Дополнительные реквизиты могут задаваться как общие для всей номенклатуры, так и общие для номенклатуры одного вида. Также можно задавать дополнительные реквизиты общие для всех характеристик всех видов номенклатуры или для всех характеристик одного вида номенклатуры (как общих характеристик всего вида, так и индивидуальных характеристик). Аналогично с сериями номенклатуры: можно задать общие свойства всех серий и всех серий одного вида.

+

Значения дополнительных реквизитов можно использовать в качестве дополнительного фильтра при подборе и просмотре товаров конкретного вида. Для каждого вида номенклатуры можно назначить свой список дополнительных параметров для быстрого отбора.

+

Пример. Для вида номенклатуры Кабели в качестве параметров быстрого отбора могут быть установлены такие значения дополнительных реквизитов, как число жил, сечение, наружный диаметр, расчетная масса. Для вида номенклатуры Обувь в качестве параметров быстрого отбора могут быть назначены дополнительные реквизиты характеристик: размер, цвет, полнота и т.д. При установке отбора по виду номенклатуры в подборе в качестве быстрых параметров отбора будут указаны именно те параметры, которые назначены для данного вида номенклатуры.

Назначенные дополнительные реквизиты можно использовать при создании шаблона наименования товара или характеристики.

+

Шаблоны наименований

+

+

Шаблоны наименований позволяют создать правило, по которому наименование номенклатуры (характеристики) будет формироваться автоматически, с учетом реквизитов. Также по шаблону может быть перезаполнено наименование ранее созданной номенклатуры.

+

Значения по умолчанию

+

+

Дополнительные материалы на ИТС:

+

+

См. также https://its.1c.ru/db/utdoc#bookmark:Goods:GoodsTypes

+

 

\ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Ext/ManagerModule.bsl b/src/Catalogs/ВидыНоменклатуры/Ext/ManagerModule.bsl new file mode 100644 index 0000000..bec9dff --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Ext/ManagerModule.bsl @@ -0,0 +1,2549 @@ +#Если НЕ МобильныйАвтономныйСервер Тогда +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область ПрограммныйИнтерфейс + +// Возвращает настройки использования серий для вида номенклатуры на складе (подразделении). +// +// Параметры: +// ВидНоменклатуры - СправочникСсылка.ВидыНоменклатуры - вид номенклатуры, параметры серий которого которой нужно получить +// - ДанныеФормыСтруктура - вид номенклатуры (из формы элемента) +// - Структура - вид номенклатуры с расширенными полями (из формы элемента) +// ПараметрыУказанияСерий - Структура, ФиксированнаяСтруктура - см. НоменклатураКлиентСервер.ПараметрыУказанияСерий +// ЗначенияПолейСвязи - Структура, ФиксированнаяСтруктура - +// +// Возвращаемое значение: +// Структура - структура с ключами: +// * ВидНоменклатуры - СправочникСсылка.ВидыНоменклатуры - вид номенклатуры, параметры серий которого нужно получить +// * ИспользоватьСерии - Булево - Истина, если серии для вида номенклатуры используются +// * ИспользоватьНомерСерии - Булево - Истина, если номера серий для вида номенклатуры используются +// * ИспользоватьСрокГодностиСерии - Булево - Истина, если используется срок годности серий для вида номенклатуры +// * ИспользоватьКоличествоСерии - Булево - Истина, если количество серии указывается +// * ЕдиницаИзмеренияСрокаГодности - ПеречислениеСсылка.ЕдиницыИзмеренияВремени - единица измерения срока +// годности серии. +// * ТочностьУказанияСрокаГодностиСерии - ПеречислениеСсылка.ТочностиУказанияСрокаГодности - точность указания срока +// годности серии. +// * ШаблонРабочегоНаименованияСерии - Строка - шаблон рабочего наименования серии +// * ВладелецСерий - СправочникСсылка.ВидыНоменклатуры - владелец +// * НастройкиСерийБерутсяИзДругогоВидаНоменклатуры - Булево - Истина, если настройки серий берутся из другого вида номенклатуры +// * ШаблонЭтикеткиСерии - СправочникСсылка.ШаблоныЭтикетокИЦенников - ссылка на шаблон этикетки серии +// * ИспользоватьRFIDМеткиСерии - Булево - Истина, если используются RFID-метки серий +// * ИспользоватьДатуПроизводстваСерии - Булево - Истина, если ведется учет серий вида номенклатуры +// по датам производства. +// * Признаки - Булево - признаки использования реквизитов серий, зависящие от локализации. +// Истина, если ведется учет серий вида номенклатуры +// * ФорматнаяСтрокаСрокаГодности - Строка - форматная строка срока годности +// * ОбязательныеДопРеквизиты - ФиксированныйМассив Из Строка - наименования доп реквизитов +// * ПолитикаУчетаСерий - СправочникСсылка.ПолитикиУчетаСерий - ссылка на политику учета серий +// * УказыватьПриПоступлении - Булево - Истина, если серии указываются при поступлении +// * УказыватьПриОтгрузке - Булево - Истина, если серии указываются при отгрузке +// * УказыватьПриПланированииОтгрузки - Булево - Истина, если серии указываются при планировании отгрузки +// * УчетСерийПоFEFO - Булево - Истина, если серии учитываются по FEFO +// * УказыватьПоФактуОтбора - Булево - Истина, если серии учитываются по факту отбора +// * УчитыватьОстаткиСерий - Булево - Истина, если учитываются остатки серий +// * УчитыватьСебестоимостьПоСериям - Булево - Истина, если учитывается себестоимость по сериям. +// +Функция НастройкиИспользованияСерий(ВидНоменклатуры, ПараметрыУказанияСерий = Неопределено, ЗначенияПолейСвязи = Неопределено) Экспорт + + РеквизитыВидаНоменклатуры = Новый Структура; + РеквизитыНастройкиУказанияСерий = РеквизитыНастройкиУказанияСерий(); + + Для Каждого СтрМас Из РеквизитыНастройкиУказанияСерий Цикл + РеквизитыВидаНоменклатуры.Вставить(СтрМас); + КонецЦикла; + + РеквизитыВидаНоменклатуры.Вставить("ВидНоменклатуры"); + РеквизитыВидаНоменклатуры.Вставить("ОсобенностьУчета"); + РеквизитыВидаНоменклатуры.Вставить("ИспользоватьСерии"); + + Если ТипЗнч(ВидНоменклатуры) <> Тип("СправочникСсылка.ВидыНоменклатуры") Тогда + ЗаполнитьЗначенияСвойств(РеквизитыВидаНоменклатуры, ВидНоменклатуры); + + РеквизитыВидаНоменклатуры.ВидНоменклатуры = ВидНоменклатуры.Ссылка; + РеквизитыВидаНоменклатуры.ВладелецСерий = ?(ВидНоменклатуры.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры, + ВидНоменклатуры.ВладелецСерий, + ВидНоменклатуры.Ссылка); + РеквизитыВидаНоменклатуры.ШаблонЭтикеткиСерии = ?(ВидНоменклатуры.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры, + ОбщегоНазначенияУТ.ЗначенияРеквизитовОбъектаПоУмолчанию( + ВидНоменклатуры.ВладелецСерий, + "ШаблонЭтикеткиСерии"), + ВидНоменклатуры.ШаблонЭтикеткиСерии); + Иначе + + РеквизитыВидаНоменклатуры.ВидНоменклатуры = "Ссылка"; + РеквизитыВидаНоменклатуры.ВладелецСерий = + "ВЫБОР + | КОГДА НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + | ТОГДА ВладелецСерий + | ИНАЧЕ Ссылка + | КОНЕЦ"; + РеквизитыВидаНоменклатуры.ШаблонЭтикеткиСерии = + "ВЫБОР + | КОГДА НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + | ТОГДА ВладелецСерий.ШаблонЭтикеткиСерии + | ИНАЧЕ ШаблонЭтикеткиСерии + | КОНЕЦ"; + + ПоляВыборки = Новый Массив; + + Для Каждого РеквизитВида Из РеквизитыВидаНоменклатуры Цикл + ИмяПоля = ?(ЗначениеЗаполнено(РеквизитВида.Значение), + РеквизитВида.Значение, + РеквизитВида.Ключ); + ПолеВыборки= " + | " + ИмяПоля + " КАК " + РеквизитВида.Ключ; + + ПоляВыборки.Добавить(ПолеВыборки); + КонецЦикла; + + ТекстВыборки = СтрСоединить(ПоляВыборки, ","); + ТекстЗапроса = + "ВЫБРАТЬ + |&ПоляВыборки + |ИЗ + | Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры + |ГДЕ + | ВидыНоменклатуры.Ссылка = &Ссылка"; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПоляВыборки", ТекстВыборки); + + Запрос = Новый Запрос; + Запрос.Текст = ТекстЗапроса; + Запрос.УстановитьПараметр("Ссылка", ВидНоменклатуры); + + Выборка = Запрос.Выполнить().Выбрать(); + + Если Выборка.Следующий() Тогда + ЗаполнитьЗначенияСвойств(РеквизитыВидаНоменклатуры, Выборка); + КонецЕсли; + + КонецЕсли; + + НастройкиИспользованияСерий = НастройкиИспользованияСерийСоставПолей(Ложь); + + ЗаполнитьЗначенияСвойств(НастройкиИспользованияСерий, РеквизитыВидаНоменклатуры); + + ОписанияИспользованияРеквизитовСерии = ОписанияИспользованияРеквизитовСерии(НастройкиИспользованияСерий, ПараметрыУказанияСерий, ЗначенияПолейСвязи); + + ДляСозданиеФиксированногоМассива = Новый Массив; + + Для Каждого Описание Из ОписанияИспользованияРеквизитовСерии Цикл + ДляСозданиеФиксированногоМассива.Добавить(Новый ФиксированнаяСтруктура(Описание)); + КонецЦикла; + + НастройкиИспользованияСерий.ОписанияИспользованияРеквизитовСерии = Новый ФиксированныйМассив(ДляСозданиеФиксированногоМассива); + + Если Не ЗначениеЗаполнено(НастройкиИспользованияСерий.ШаблонЭтикеткиСерии) Тогда + НастройкиИспользованияСерий.ШаблонЭтикеткиСерии + = Справочники.ШаблоныЭтикетокИЦенников.ШаблонПоУмолчанию(Перечисления.НазначенияШаблоновЭтикетокИЦенников.ЭтикеткаСерииНоменклатуры); + КонецЕсли; + + Если ТипЗнч(ВидНоменклатуры) = Тип("СправочникСсылка.ВидыНоменклатуры") + И (ЗначениеЗаполнено(ЗначенияПолейСвязи) + И ЗначенияПолейСвязи.Свойство("Склад") + И (ЗначениеЗаполнено(ЗначенияПолейСвязи.Склад) + Или ИспользоватьПроизводство())) Тогда + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ЕСТЬNULL(ТЧПолитикиУчетаСерий.ПолитикаУчетаСерий, ЗНАЧЕНИЕ(Справочник.ПолитикиУчетаСерий.ПустаяСсылка)) КАК ПолитикаУчетаСерий, + | ЕСТЬNULL(ТЧПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПриемке, ЛОЖЬ) КАК УказыватьПриПоступлении, + | ЕСТЬNULL(ТЧПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриОтгрузке, ЛОЖЬ) КАК УказыватьПриОтгрузке, + | ЕСТЬNULL(ТЧПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПланированииОтгрузки, ЛОЖЬ) КАК УказыватьПриПланированииОтгрузки, + | ЕСТЬNULL(ТЧПолитикиУчетаСерий.ПолитикаУчетаСерий.УчетСерийПоFEFO, ЛОЖЬ) КАК УчетСерийПоFEFO, + | ЕСТЬNULL(ТЧПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПоФактуОтбора, ЛОЖЬ) КАК УказыватьПоФактуОтбора, + | ЕСТЬNULL(ТЧПолитикиУчетаСерий.ПолитикаУчетаСерий.УчитыватьОстаткиСерий, ЛОЖЬ) + | И (ТЧПолитикиУчетаСерий.Склад ССЫЛКА Справочник.Склады ИЛИ &ЕстьПроизводство)КАК УчитыватьОстаткиСерий, + | ЕСТЬNULL(ТЧПолитикиУчетаСерий.ПолитикаУчетаСерий.УчитыватьСебестоимостьПоСериям, ЛОЖЬ) + | И (ТЧПолитикиУчетаСерий.Склад ССЫЛКА Справочник.Склады ИЛИ &ЕстьПроизводство) + | КАК УчитыватьСебестоимостьПоСериям + |ИЗ + | Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры.ПолитикиУчетаСерий КАК ТЧПолитикиУчетаСерий + | ПО ВидыНоменклатуры.Ссылка = ТЧПолитикиУчетаСерий.Ссылка + | И (ТЧПолитикиУчетаСерий.Склад = &СкладПодразделение) + |ГДЕ + | ВидыНоменклатуры.Ссылка = &ВидНоменклатуры"; + Запрос.УстановитьПараметр("ВидНоменклатуры", ВидНоменклатуры); + Запрос.УстановитьПараметр("СкладПодразделение", ЗначенияПолейСвязи.Склад); + Запрос.УстановитьПараметр("ЕстьПроизводство", ИспользоватьПроизводство()); + + Выборка = Запрос.Выполнить().Выбрать(); + + Выборка.Следующий(); + + ЗаполнитьЗначенияСвойств(НастройкиИспользованияСерий, Выборка); + + КонецЕсли; + + Если ТипЗнч(ВидНоменклатуры) = Тип("СправочникСсылка.ВидыНоменклатуры") Тогда + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ВидыНоменклатурыРеквизитыДляКонтроляСерий.Свойство КАК Свойство + |ИЗ + | Справочник.ВидыНоменклатуры.РеквизитыДляКонтроляСерий КАК ВидыНоменклатурыРеквизитыДляКонтроляСерий + |ГДЕ + | ВидыНоменклатурыРеквизитыДляКонтроляСерий.Ссылка = ВЫБОР + | КОГДА ВЫРАЗИТЬ(&ВидНоменклатуры КАК Справочник.ВидыНоменклатуры).НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + | ТОГДА ВЫРАЗИТЬ(&ВидНоменклатуры КАК Справочник.ВидыНоменклатуры).ВладелецСерий + | ИНАЧЕ &ВидНоменклатуры + | КОНЕЦ + | И ВидыНоменклатурыРеквизитыДляКонтроляСерий.ЭтоДопРеквизит + | И ВидыНоменклатурыРеквизитыДляКонтроляСерий.ЗаполнятьОбязательно"; + + Запрос.УстановитьПараметр("ВидНоменклатуры", ВидНоменклатуры); + РеквизитыДляКонтроляСерий = Запрос.Выполнить().Выгрузить(); + + Иначе + Если ВидНоменклатуры.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры Тогда + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ВидыНоменклатурыРеквизитыДляКонтроляСерий.Свойство КАК Свойство + |ИЗ + | Справочник.ВидыНоменклатуры.РеквизитыДляКонтроляСерий КАК ВидыНоменклатурыРеквизитыДляКонтроляСерий + |ГДЕ + | ВидыНоменклатурыРеквизитыДляКонтроляСерий.Ссылка = &ВладелецСерий + | И ВидыНоменклатурыРеквизитыДляКонтроляСерий.ЭтоДопРеквизит + | И ВидыНоменклатурыРеквизитыДляКонтроляСерий.ЗаполнятьОбязательно"; + + Запрос.УстановитьПараметр("ВладелецСерий", ВидНоменклатуры.ВладелецСерий); + РеквизитыДляКонтроляСерий = Запрос.Выполнить().Выгрузить(); + + Иначе + РеквизитыДляКонтроляСерий = ?(ТипЗнч(ВидНоменклатуры) = Тип("Структура"), + ВидНоменклатуры.РеквизитыДляКонтроляСерий.Скопировать( + Новый Структура("ЭтоДопРеквизит,ЗаполнятьОбязательно", Истина, Истина)), + ВидНоменклатуры.РеквизитыДляКонтроляСерий.Выгрузить( + Новый Структура("ЭтоДопРеквизит,ЗаполнятьОбязательно", Истина, Истина))); + КонецЕсли; + КонецЕсли; + + НастройкиИспользованияСерий.ОбязательныеДопРеквизиты = Новый ФиксированныйМассив(РеквизитыДляКонтроляСерий.ВыгрузитьКолонку("Свойство")); + + Возврат НастройкиИспользованияСерий; + +КонецФункции + +// Получает вид номенклатуры, если вид номенклатуры один в справочнике. +// +// Возвращаемое значение: +// СправочникСсылка.ВидыНоменклатуры - найденный вид номенклатуры +// Неопределено - если видов номенклатуры нет или видов номенклатуры больше одного. +// +Функция ВидНоменклатурыПоУмолчанию() Экспорт + + Текст = + "ВЫБРАТЬ ПЕРВЫЕ 2 + | ВидыНоменклатуры.Ссылка КАК ВидНоменклатуры + |ИЗ + | Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры + |ГДЕ + | НЕ ВидыНоменклатуры.ПометкаУдаления + | И НЕ ВидыНоменклатуры.ЭтоГруппа"; + + Запрос = Новый Запрос(Текст); + + РезультатЗапроса = Запрос.Выполнить(); + + Если РезультатЗапроса.Пустой() Тогда + Возврат Неопределено; + КонецЕсли; + + Выборка = РезультатЗапроса.Выбрать(); + + Если Выборка.Количество() = 1 Тогда + Выборка.Следующий(); + ВидНоменклатуры = Выборка.ВидНоменклатуры; + Иначе + ВидНоменклатуры = Неопределено; + КонецЕсли; + + Возврат ВидНоменклатуры; + +КонецФункции // ВидНоменклатуры() + +// Возвращает имена блокируемых реквизитов для механизма блокирования реквизитов БСП. +// +// Возвращаемое значение: +// Массив из Строка - имена блокируемых реквизитов. +// +Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт + + Результат = Новый Массив; + + Результат.Добавить("ТипНоменклатуры"); + Результат.Добавить("ОсобенностьУчета"); + Результат.Добавить("ИспользованиеХарактеристик"); + Результат.Добавить("ИспользоватьХарактеристики"); + Результат.Добавить("НастройкиКлючаЦенПоХарактеристике"); + Результат.Добавить("НастройкиКлючаЦенПоСерии"); + Результат.Добавить("НастройкиКлючаЦенПоУпаковке"); + Результат.Добавить("ИспользоватьСерии; ВариантЗаданияНастроекСерий"); + Результат.Добавить("ПолитикиУчетаСерий; ПолитикиУчетаСерийДобавитьСкладВПолитикиУчетаСерий,ПолитикиУчетаСерийДобавитьПодразделениеВПолитикиУчетаСерий"); + Результат.Добавить("НастройкаИспользованияСерий"); + Результат.Добавить("ТочностьУказанияСрокаГодностиСерии"); + Результат.Добавить("ВариантОформленияПродажи"); + Результат.Добавить("ВариантПредставленияНабораВПечатныхФормах"); + Результат.Добавить("ВариантРасчетаЦеныНабора;ГруппаЦенаНабора"); + Результат.Добавить("ВладелецХарактеристик"); + Результат.Добавить("ВладелецСерий"); + Результат.Добавить("НастройкиСерийБерутсяИзДругогоВидаНоменклатуры"); + Результат.Добавить("ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры"); + Результат.Добавить("ВладелецТоварныхКатегорий; НастройкаТоварныхКатегорий"); + Результат.Добавить("ЕстьИндивидуальныеНастройкиПолитикиУчетаСерий; ЕстьИндивидуальныеНастройкиПолитикиУчетаСерий"); + Результат.Добавить("АлкогольнаяПродукция"); + + ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Результат, Справочники.Номенклатура.РеквизитыПризнаковОсобенностейУчета(Метаданные.Справочники.ВидыНоменклатуры)); + + Возврат Результат; + +КонецФункции + +// Возвращает предустановленные виды номенклатуры. +// +// Возвращаемое значение: +// Массив из СправочникСсылка.ВидыНоменклатуры - +// +Функция ПолучитьПредустановленныеВидыНоменклатуры() Экспорт + + УстановитьПривилегированныйРежим(Истина); + + МассивВидов = Новый Массив; + + ДобавитьПредустановленныйВидНоменклатуры(МассивВидов, Перечисления.ТипыНоменклатуры.Товар, НСтр("ru = 'Товар'")); + ДобавитьПредустановленныйВидНоменклатуры(МассивВидов, Перечисления.ТипыНоменклатуры.Услуга, НСтр("ru = 'Услуга'")); + + Возврат МассивВидов; + +КонецФункции + +// Добавляет в массив вид номенклатуры с указанным типом. +// Если вида номенклатуры с таким типов нет в ИБ, то он создается. +// +// Параметры: +// МассивВидов - Массив - массив видов номенклатуры, +// Тип - ПеречислениеСсылка.ТипыНоменклатуры - тип номенклатуры, +// Имя - Строка - имя нового вида номенклатуры. +// +Процедура ДобавитьПредустановленныйВидНоменклатуры(МассивВидов, Тип, Имя) Экспорт + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | ВидыНоменклатуры.Ссылка + |ИЗ + | Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры + |ГДЕ + | ВидыНоменклатуры.ТипНоменклатуры = &Тип + | И НЕ ВидыНоменклатуры.ПометкаУдаления"; + + Запрос.УстановитьПараметр("Тип", Тип); + + РезультатЗапроса = Запрос.Выполнить(); + + Если РезультатЗапроса.Пустой() Тогда + + НовыйВид = Справочники.ВидыНоменклатуры.СоздатьЭлемент(); + НовыйВид.Заполнить(Неопределено); + НовыйВид.Наименование = Имя; + НовыйВид.ТипНоменклатуры = Тип; + + Если ПолучитьФункциональнуюОпцию("ИспользоватьГруппыДоступаНоменклатуры") Тогда + НовыйВид.ГруппаДоступа = Справочники.ГруппыДоступаНоменклатуры.ПолучитьГруппуДоступаПоУмолчанию(НовыйВид); + КонецЕсли; + НовыйВид.ВариантОформленияПродажи = Перечисления.ВариантыОформленияПродажи.РеализацияТоваровУслуг; + + ЗаполнитьРеквизитыДляКонтроля(НовыйВид, "Номенклатура"); + + НастройкаЕдИзмерения = НовыйВид.РеквизитыДляКонтроляНоменклатуры.Найти("ЕдиницаИзмерения"); + Если НастройкаЕдИзмерения <> Неопределено Тогда + НастройкаЕдИзмерения.ОтображатьПриСоздании = Истина; + НастройкаЕдИзмерения.ЗаполнятьОбязательно = Истина; + КонецЕсли; + + НовыйВид.ЕдиницаИзмерения = Справочники.УпаковкиЕдиницыИзмерения.ПустаяСсылка(); + НовыйВид.ЕдиницаДляОтчетов = Справочники.УпаковкиЕдиницыИзмерения.ПустаяСсылка(); + + НовыйВид.Записать(); + + МассивВидов.Добавить(НовыйВид.Ссылка); + + Иначе + + Выборка = РезультатЗапроса.Выбрать(); + Выборка.Следующий(); + + МассивВидов.Добавить(Выборка.Ссылка); + + КонецЕсли; + +КонецПроцедуры + +// Параметры: +// ДанныеЗаполнения - Структура - структура данных для заполнения +// ВидНоменклатурыСсылка - СправочникСсылка.ВидыНоменклатуры - ссылка на созданный объект +// +Процедура СоздатьВидНоменклатуры(ДанныеЗаполнения, ВидНоменклатурыСсылка) Экспорт + + ВидНоменклатурыОбъект = Справочники.ВидыНоменклатуры.СоздатьЭлемент(); + + ВидНоменклатурыОбъект.Заполнить(Неопределено); + ВидНоменклатурыОбъект.УстановитьНовыйКод(); + + ВидНоменклатурыОбъект.Наименование = ДанныеЗаполнения.Наименование; + ВидНоменклатурыОбъект.СтавкаНДС = ДанныеЗаполнения.СтавкаНДС; + ВидНоменклатурыОбъект.ТипНоменклатуры = ДанныеЗаполнения.ТипНоменклатуры; + ВидНоменклатурыОбъект.Описание = ДанныеЗаполнения.Описание; + ВидНоменклатурыОбъект.ЕдиницаИзмерения = ДанныеЗаполнения.ЕдиницаИзмерения; + ВидНоменклатурыОбъект.ЕдиницаДляОтчетов = ДанныеЗаполнения.ЕдиницаДляОтчетов; + ВидНоменклатурыОбъект.Родитель = ДанныеЗаполнения.Родитель; + ВидНоменклатурыОбъект.ИспользоватьХарактеристики = ДанныеЗаполнения.ИспользоватьХарактеристики; + ВидНоменклатурыОбъект.ИспользованиеХарактеристик = ДанныеЗаполнения.ИспользованиеХарактеристик; + ВидНоменклатурыОбъект.ВариантОформленияПродажи = ДанныеЗаполнения.ВариантОформленияПродажи; + + Если Справочники.ГруппыДоступаНоменклатуры.ИспользуютсяГруппыДоступа() Тогда + ГруппаДоступа = Справочники.ГруппыДоступаНоменклатуры.ПолучитьГруппуДоступаПоУмолчанию(ВидНоменклатурыОбъект); + ДанныеЗаполнения.Свойство("ГруппаДоступа", ГруппаДоступа); + ВидНоменклатурыОбъект.ГруппаДоступа = ГруппаДоступа; + КонецЕсли; + + ЗаполнитьРеквизитыДляКонтроля(ВидНоменклатурыОбъект, "Номенклатура"); + + НастройкаЕдИзмерения = ВидНоменклатурыОбъект.РеквизитыДляКонтроляНоменклатуры.Найти("ЕдиницаИзмерения"); + Если НастройкаЕдИзмерения <> Неопределено Тогда + НастройкаЕдИзмерения.ОтображатьПриСоздании = Истина; + НастройкаЕдИзмерения.ЗаполнятьОбязательно = Истина; + КонецЕсли; + + ВидНоменклатурыОбъект.Записать(); + + ВидНоменклатурыСсылка = ВидНоменклатурыОбъект.Ссылка; + +КонецПроцедуры + +// Возвращает значение единицы измерения срока годности по значению точности указания срока годности серии. +// +// Параметры: +// ТочностьУказанияСрокаГодности - ПеречислениеСсылка.ТочностиУказанияСрокаГодности - Точность указания срока +// годности серии вида номенклатуры. +// +// Возвращаемое значение: +// ПеречислениеСсылка.ЕдиницыИзмеренияВремени - единица измерения срока годности по значению точности указания +// срока годности серии. +// +Функция ЕдиницаИзмеренияСрокаГодности(ТочностьУказанияСрокаГодности) Экспорт + + ЕдиницаИзмеренияСрокаГодности = Перечисления.ЕдиницыИзмеренияВремени.ПустаяСсылка(); + + Если ТочностьУказанияСрокаГодности = Перечисления.ТочностиУказанияСрокаГодности.СТочностьюДоМесяцев Тогда + ЕдиницаИзмеренияСрокаГодности = Перечисления.ЕдиницыИзмеренияВремени.Месяц; + ИначеЕсли ТочностьУказанияСрокаГодности = Перечисления.ТочностиУказанияСрокаГодности.СТочностьюДоДней Тогда + ЕдиницаИзмеренияСрокаГодности = Перечисления.ЕдиницыИзмеренияВремени.Сутки; + ИначеЕсли ТочностьУказанияСрокаГодности = Перечисления.ТочностиУказанияСрокаГодности.СТочностьюДоЧасов Тогда + ЕдиницаИзмеренияСрокаГодности = Перечисления.ЕдиницыИзмеренияВремени.Час; + КонецЕсли; + + Возврат ЕдиницаИзмеренияСрокаГодности; + +КонецФункции + +// Возвращает реквизиты для ценообразования по виду номенклатуры +// +// Параметры: +// ВидНоменклатуры - СправочникСсылка.ВидыНоменклатуры - Вид номенклатуры +// РазрезКлюча - Строка - разрез ключа ("Характеристики" или "Серии") +// Возвращаемое значение: +// ТаблицаЗначений - ТаблицаЗначения - таблица с реквизитами для заполнения ключа +Функция ПолучитьРеквизитыДляКлючаЦен(Знач ВидНоменклатуры, Знач РазрезКлюча) Экспорт + + Если РазрезКлюча = "Характеристики" Тогда + ИмяТаблицы = "РеквизитыХарактеристикДляКлючаЦен"; + ИначеЕсли РазрезКлюча = "Серии" Тогда + ИмяТаблицы = "РеквизитыСерийДляКлючаЦен"; + КонецЕсли; + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ВидыНоменклатурыРеквизитыДляКлючаЦен.ИмяРеквизита, + | ВидыНоменклатурыРеквизитыДляКлючаЦен.ЭтоДопРеквизит, + | ВидыНоменклатурыРеквизитыДляКлючаЦен.Свойство, + | ВидыНоменклатурыРеквизитыДляКлючаЦен.Используется, + | Неопределено КАК Значение + |ИЗ + | &ИмяТаблицы КАК ВидыНоменклатурыРеквизитыДляКлючаЦен + |ГДЕ + | ВидыНоменклатурыРеквизитыДляКлючаЦен.Ссылка = &ВидНоменклатуры + | И ВидыНоменклатурыРеквизитыДляКлючаЦен.Используется"; + + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяТаблицы", "Справочник.ВидыНоменклатуры." + ИмяТаблицы); + Запрос.УстановитьПараметр("ВидНоменклатуры", ВидНоменклатуры); + + РеквизитыДляКлючаЦен = Запрос.Выполнить().Выгрузить(); + + Возврат РеквизитыДляКлючаЦен +КонецФункции + +#Область Команды + +// Определяет список команд создания на основании. +// +// Параметры: +// КомандыСозданияНаОсновании - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.КомандыСозданияНаОсновании +// Параметры - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.Параметры +// +Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт + + БизнесПроцессы.Задание.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании); + +КонецПроцедуры + +#КонецОбласти + +#Область ДляВызоваИзДругихПодсистем + +// СтандартныеПодсистемы.УправлениеДоступом + +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// +Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт + + Ограничение.Текст = + "РазрешитьЧтение + |ГДЕ ИСТИНА + |; + |РазрешитьИзменениеЕслиРазрешеноЧтение + |ГДЕ + | ЭтоГруппа ИЛИ + | ЗначениеРазрешено(Ссылка)"; + +КонецПроцедуры + +// Конец СтандартныеПодсистемы.УправлениеДоступом + +#КонецОбласти + +// СтандартныеПодсистемы.ВерсионированиеОбъектов +// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов. +// +// Параметры: +// Настройки - Структура - настройки подсистемы. +Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт +КонецПроцедуры +// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов + +#Область РаботаСФормулами + +// Создает дерево возможных операндов для формулы по шаблону. +// +// Параметры: +// НаборыСвойств - Структура: +// * НаборСвойств - СправочникСсылка.НаборыДополнительныхРеквизитовИСведений +// * НаборСвойствСерий - СправочникСсылка.НаборыДополнительныхРеквизитовИСведений +// * НаборСвойствХарактеристик - СправочникСсылка.НаборыДополнительныхРеквизитовИСведений +// ИмяШаблона - Строка +// +// Возвращаемое значение: +// см. РаботаСФормулами.ПолучитьПустоеДеревоОперандов +// +Функция ПодготовитьДеревоОперандов(НаборыСвойств, ИмяШаблона) Экспорт + + НаборСвойств = Новый Структура(); + НаборСвойств.Вставить("НаборСвойствНоменклатуры", Ложь); + НаборСвойств.Вставить("НаборСвойствХарактеристик", Ложь); + НаборСвойств.Вставить("Набор", Неопределено); + + Если ИмяШаблона = "ШаблонНаименованияДляПечатиНоменклатуры" + Или ИмяШаблона = "ШаблонРабочегоНаименованияНоменклатуры" Тогда + + НаборСвойств.НаборСвойствНоменклатуры = Истина; + НаборСвойств.Набор = НаборыСвойств.НаборСвойств; + + ИначеЕсли ИмяШаблона = "ШаблонНаименованияДляПечатиХарактеристики" + Или ИмяШаблона = "ШаблонРабочегоНаименованияХарактеристики" Тогда + + НаборСвойств.НаборСвойствХарактеристик = Истина; + НаборСвойств.Набор = НаборыСвойств.НаборСвойствХарактеристик; + + Иначе + + НаборСвойств.Набор = НаборыСвойств.НаборСвойствСерий; + + КонецЕсли; + + ДеревоОперандов = РаботаСФормулами.ПолучитьПустоеДеревоОперандов(); + + КорневаяСтрокаДерева = РаботаСФормулами.НоваяСтрокаДереваОперанда(ДеревоОперандов); + Если НаборСвойств.НаборСвойствНоменклатуры Тогда + + КорневаяСтрокаДерева.Идентификатор = "Номенклатура"; + КорневаяСтрокаДерева.Представление = НСтр("ru = 'Номенклатура'"); + КорневаяСтрокаДерева.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Номенклатура"); + + НаборОбщихСвойств = УправлениеСвойствами.НаборСвойствПоИмени("Справочник_Номенклатура_Общие"); + + ИначеЕсли НаборСвойств.НаборСвойствХарактеристик Тогда + + КорневаяСтрокаДерева.Идентификатор = "ХарактеристикаНоменклатуры"; + КорневаяСтрокаДерева.Представление = НСтр("ru = 'Характеристика номенклатуры'"); + КорневаяСтрокаДерева.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"); + + НаборОбщихСвойств = УправлениеСвойствами.НаборСвойствПоИмени("Справочник_ХарактеристикиНоменклатуры_Общие"); + + Иначе + + КорневаяСтрокаДерева.Идентификатор = "СерияНоменклатуры"; + КорневаяСтрокаДерева.Представление = НСтр("ru = 'Серия номенклатуры'"); + КорневаяСтрокаДерева.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.СерииНоменклатуры"); + + НаборОбщихСвойств = УправлениеСвойствами.НаборСвойствПоИмени("Справочник_СерииНоменклатуры_Общие"); + + КонецЕсли; + + КорневаяСтрокаДерева.РазрешаетсяВыборОперанда = Ложь; + КорневаяСтрокаДерева.ВключаетсяВИдентификатор = Ложь; + КорневаяСтрокаДерева.РазворачиватьДоРеквизитов = Истина; + + ОграниченияРазвертки = РаботаСФормулами.ОграниченияРазверткиОперандов(); + ОграниченияРазвертки.НаборыДополнительныхРеквизитов.Добавить(НаборСвойств.Набор); + ОграниченияРазвертки.НаборыДополнительныхРеквизитов.Добавить(НаборОбщихСвойств); + ОграниченияРазвертки.НеВыводимыеРеквизиты = "ВерсияДанных,УдалитьПодакцизныйТовар,ПодконтрольнаяПродукцияВЕТИС"; + + РаботаСФормулами.РазвернутьСтрокуОперанда(КорневаяСтрокаДерева, ОграниченияРазвертки); + + Возврат ДеревоОперандов; + +КонецФункции + +// Заполняет соответствие операндов их типам. +// +// Параметры: +// ДеревоОперандов - см. РаботаСФормулами.ПолучитьПустоеДеревоОперандов +// Результат - Соответствие Из Строка +// +Процедура ПолучитьТипыОперандов(ДеревоОперандов, Результат) Экспорт + + Для Каждого СтрокаДерева Из ДеревоОперандов.Строки Цикл + + ПолучитьТипыОперандов(СтрокаДерева, Результат); + + Если СтрокаДерева.РазрешаетсяВыборОперанда Тогда + Результат.Вставить(СтрокаДерева.Идентификатор, СтрокаДерева.ТипЗначения); + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +// Возвращает признак использования в системе настроек ведения учета уникальных штрихкодов по видам номенклатуры. +// +// Параметры: +// ИспользоватьНеуникальныеШтрихкоды - Булево - признак использования в системе ведения учета неуникальных +// штрихкодов номенклатуры. +// +// Возвращаемое значение: +// Булево - Истина, в системе включены настройки ведения учета уникальных штрихкодов по видам номенклатуры. +// +Функция ЕстьУстановленныеНастройкиУникальностиШтрихкода(ИспользоватьНеуникальныеШтрихкоды) Экспорт + + Запрос = Новый Запрос; + Запрос.Текст = ТекстЗапросаНастроекКонтроляУникальностиШтрихкода(ИспользоватьНеуникальныеШтрихкоды, Истина); + + УстановитьПривилегированныйРежим(Истина); + РезультатЗапроса = Запрос.Выполнить(); + УстановитьПривилегированныйРежим(Ложь); + + Возврат Не РезультатЗапроса.Пустой(); + +КонецФункции + +// Выполняет установку настроек уникальности штрихкода по умолчанию для элементов справочника. +// +// Параметры: +// ИспользоватьНеуникальныеШтрихкоды - Булево - признак использования в системе ведения учета неуникальных +// штрихкодов номенклатуры. +Процедура УстановитьНастройкиУникальностиШтрихкодаПоУмолчанию(ИспользоватьНеуникальныеШтрихкоды) Экспорт + + Запрос = Новый Запрос; + Запрос.Текст = ТекстЗапросаНастроекКонтроляУникальностиШтрихкода(ИспользоватьНеуникальныеШтрихкоды); + + УстановитьПривилегированныйРежим(Истина); + РезультатЗапроса = Запрос.Выполнить(); + УстановитьПривилегированныйРежим(Ложь); + + Если РезультатЗапроса.Пустой() Тогда + Возврат; + КонецЕсли; + + КоличествоДанныхКОбработке = 0; + + ОписаниеЗамера = ОценкаПроизводительности.НачатьЗамерДлительнойОперации( + "Справочник.ВидыНоменклатуры.МодульМенеджера.УстановитьНастройкиУникальностиШтрихкодаПоУмолчанию"); + + ИмяСобытия = НСтр("ru = 'Обновление настроек реквизитов для контроля номенклатуры'", ОбщегоНазначения.КодОсновногоЯзыка()); + ШаблонКомментария = НСтр("ru = 'Не удалось обновить настройки реквизитов для контроля номенклатуры для вида номенклатуры ""%1"", по причине: %2'"); + + Выборка = РезультатЗапроса.Выбрать(); + + Пока Выборка.Следующий() Цикл + КоличествоДанныхКОбработке = КоличествоДанныхКОбработке + 1; + + НачатьТранзакцию(); + + Попытка + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.ВидыНоменклатуры"); + ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка); + ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; + Блокировка.Заблокировать(); + + ВидНоменклатуры = Выборка.Ссылка.ПолучитьОбъект(); // СправочникОбъект.ВидыНоменклатуры - + + Если ВидНоменклатуры <> Неопределено Тогда + НастройкаКонтроля = ВидНоменклатуры.РеквизитыДляКонтроляНоменклатуры.Найти("Штрихкод", "ИмяРеквизита"); + + Если НастройкаКонтроля <> Неопределено Тогда + НастройкаКонтроля.Уникален = Не ИспользоватьНеуникальныеШтрихкоды; + НастройкаКонтроля.ДоступностьУникален = ИспользоватьНеуникальныеШтрихкоды; + КонецЕсли; + КонецЕсли; + + Если ВидНоменклатуры.Модифицированность() Тогда + ВидНоменклатуры.Записать(); + КонецЕсли; + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + ТекстСообщения = СтрШаблон(ШаблонКомментария, + Выборка.Ссылка, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + + ЗаписьЖурналаРегистрации( + ИмяСобытия, + УровеньЖурналаРегистрации.Предупреждение, + Метаданные.Справочники.ВидыНоменклатуры, + , + ТекстСообщения); + КонецПопытки; + КонецЦикла; + + ОценкаПроизводительности.ЗакончитьЗамерДлительнойОперации(ОписаниеЗамера, КоличествоДанныхКОбработке); + +КонецПроцедуры + +// Добавляет переданные объекты в табличную части "ПолитикиУчетаСерий" видов номенклатуры. +// +// Параметры: +// ДобавляемыеОбъекты - Массив Из СправочникСсылка.Склады, СправочникСсылка.СтруктураПредприятия - Которые необходимо добавить в табличную часть. +// +Процедура ДобавитьОбъектыВСоставПолитикУчетаСерий(ДобавляемыеОбъекты) Экспорт + + НачатьТранзакцию(); + + Попытка + + Блокировка = Новый БлокировкаДанных; + Блокировка.Добавить("Справочник.ВидыНоменклатуры"); + Блокировка.Заблокировать(); + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ВидыНоменклатуры.Ссылка КАК Ссылка + |ИЗ + | Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры + |ГДЕ + | ВидыНоменклатуры.ИспользоватьСерии"; + + РезультатЗапроса = Запрос.Выполнить(); + Выборка = ВыбратьПоСсылкам(РезультатЗапроса); + + Пока Выборка.Следующий() Цикл + + ВидНоменклатуры = Выборка.ПолучитьОбъект(); + + Для Каждого ДобавляемыйОбъект Из ДобавляемыеОбъекты Цикл + СтрокаПолитики = ВидНоменклатуры.ПолитикиУчетаСерий.Добавить(); + СтрокаПолитики.ПолитикаУчетаСерий = ВидНоменклатуры.ПолитикаУчетаСерий; + СтрокаПолитики.Склад = ДобавляемыйОбъект; + КонецЦикла; + + ВидНоменклатуры.ОбменДанными.Загрузка = Истина; + ВидНоменклатуры.Записать(); + + КонецЦикла; + + ЗафиксироватьТранзакцию(); + + Исключение + + ОтменитьТранзакцию(); + ВызватьИсключение; + + КонецПопытки; + +КонецПроцедуры + +// Удаляет переданные объекты из табличной части "ПолитикиУчетаСерий" видов номенклатуры +// +// Параметры: +// УдаляемыеОбъекты - Массив Из СправочникСсылка.Склады, СправочникСсылка.СтруктураПредприятия - Которые необходимо удалить из табличной части. +// +Процедура УдалитьОбъектыИзПолитикУчетаСерий(УдаляемыеОбъекты) Экспорт + + НачатьТранзакцию(); + + Попытка + + Блокировка = Новый БлокировкаДанных; + Блокировка.Добавить("Справочник.ВидыНоменклатуры"); + Блокировка.Заблокировать(); + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ПолитикиУчетаСерий.Ссылка КАК Ссылка, + | ПолитикиУчетаСерий.НомерСтроки КАК НомерСтроки + |ИЗ + | Справочник.ВидыНоменклатуры.ПолитикиУчетаСерий КАК ПолитикиУчетаСерий + |ГДЕ + | ПолитикиУчетаСерий.Склад В (&УдаляемыеОбъекты) + | + |УПОРЯДОЧИТЬ ПО + | Ссылка УБЫВ, + | НомерСтроки УБЫВ"; + + Запрос.УстановитьПараметр("УдаляемыеОбъекты", УдаляемыеОбъекты); + РезультатЗапроса = Запрос.Выполнить(); + + ВыборкаСтрок = РезультатЗапроса.Выбрать(); + УдаляемыеСтрокиВидовНоменклатуры = Новый Соответствие; + УдаляемыеСтроки = Неопределено; + ТекущаяСсылка = ПустаяСсылка(); + + Пока ВыборкаСтрок.Следующий() Цикл + + Если ТекущаяСсылка <> ВыборкаСтрок.Ссылка Тогда + + ТекущаяСсылка = ВыборкаСтрок.Ссылка; + + УдаляемыеСтроки = Новый Массив; + УдаляемыеСтрокиВидовНоменклатуры.Вставить(ТекущаяСсылка, УдаляемыеСтроки); + + КонецЕсли; + + УдаляемыеСтроки.Добавить(ВыборкаСтрок.НомерСтроки); + + КонецЦикла; + + ВыборкаОбъектов = ВыбратьПоСсылкам(РезультатЗапроса); + Пока ВыборкаОбъектов.Следующий() Цикл + + ВидНоменклатуры = ВыборкаОбъектов.ПолучитьОбъект(); + Для Каждого НомерСтроки Из УдаляемыеСтрокиВидовНоменклатуры.Получить(ВидНоменклатуры.Ссылка) Цикл + ВидНоменклатуры.ПолитикиУчетаСерий.Удалить(НомерСтроки - 1); + КонецЦикла; + + ВидНоменклатуры.ОбменДанными.Загрузка = Истина; + ВидНоменклатуры.Записать(); + + КонецЦикла; + + ЗафиксироватьТранзакцию(); + + Исключение + + ОтменитьТранзакцию(); + ВызватьИсключение; + + КонецПопытки; + +КонецПроцедуры + +#КонецОбласти + +#КонецЕсли + +#Область ОбработчикиСобытий + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка) + НоменклатураВызовСервера.ВидыНоменклатурыОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка); + +КонецПроцедуры + +#КонецЕсли + +Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка) + + МультиязычностьКлиентСервер.ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка); + +КонецПроцедуры + +Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка) + + МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); + +КонецПроцедуры + +#КонецОбласти + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область СлужебныеПроцедурыИФункции + +#Область ОбновлениеИнформационнойБазы + +// Вызывается после окончания загрузки данных из локальной версии +// в область данных сервиса или наоборот. +// +Процедура ПослеЗагрузкиДанных(Контейнер) Экспорт + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ВидыНоменклатуры.Ссылка + |ИЗ + | Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры + |ГДЕ + | (ВидыНоменклатуры.ЗапретРедактированияНаименованияДляПечатиНоменклатуры + | ИЛИ ВидыНоменклатуры.ЗапретРедактированияНаименованияДляПечатиХарактеристики + | ИЛИ ВидыНоменклатуры.ЗапретРедактированияРабочегоНаименованияНоменклатуры + | ИЛИ ВидыНоменклатуры.ЗапретРедактированияРабочегоНаименованияХарактеристики)"; + + Выборка = Запрос.Выполнить().Выбрать(); + + Пока Выборка.Следующий() Цикл + + СправочникОбъект = Выборка.Ссылка.ПолучитьОбъект(); // СправочникОбъект.ВидыНоменклатуры + + СправочникОбъект.ЗапретРедактированияНаименованияДляПечатиНоменклатуры = Ложь; + СправочникОбъект.ЗапретРедактированияНаименованияДляПечатиХарактеристики = Ложь; + СправочникОбъект.ЗапретРедактированияРабочегоНаименованияНоменклатуры = Ложь; + СправочникОбъект.ЗапретРедактированияРабочегоНаименованияХарактеристики = Ложь; + + СправочникОбъект.Записать(); + + КонецЦикла; + +КонецПроцедуры + +// см. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления +// +Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт + + Обработчик = Обработчики.Добавить(); + Обработчик.Процедура = "Справочники.ВидыНоменклатуры.ОбработатьДанныеДляПереходаНаНовуюВерсию"; + Обработчик.Версия = "11.5.27.41"; + Обработчик.РежимВыполнения = "Отложенно"; + Обработчик.Идентификатор = Новый УникальныйИдентификатор("d8496097-6001-4bb8-8c09-ce139d4a9f06"); + Обработчик.Многопоточный = Истина; + Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.ВидыНоменклатуры.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; + Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; + + СписокОписаний = Новый Массив; + СписокОписаний.Добавить(НСтр("ru = 'Обновление справочника ""Виды номенклатуры"":'")); + СписокОписаний.Добавить(СтрШаблон(НСтр("ru = '- удаление реквизита ""%1"" из табличной части ""%2"";'"), + Метаданные.Справочники.ВидыНоменклатуры.Реквизиты.УдалитьКодОКВЭД2.Имя, + Метаданные.Справочники.ВидыНоменклатуры.ТабличныеЧасти.РеквизитыДляКонтроляНоменклатуры.Представление())); + СписокОписаний.Добавить(СтрШаблон(НСтр("ru = '- удаление реквизита ""%1"" из табличной части ""%2"";'"), + Метаданные.Справочники.ВидыНоменклатуры.Реквизиты.УдалитьПодакцизныйТовар.Имя, + Метаданные.Справочники.ВидыНоменклатуры.ТабличныеЧасти.РеквизитыДляКонтроляНоменклатуры.Представление())); + //++ Локализация + СписокОписаний.Добавить(СтрШаблон(НСтр("ru = '- удаление реквизита ""%1"" из табличной части ""%2"";'"), + Метаданные.Справочники.ВидыНоменклатуры.Реквизиты.ПодконтрольнаяПродукцияВЕТИС.Имя, + Метаданные.Справочники.ВидыНоменклатуры.ТабличныеЧасти.РеквизитыДляКонтроляНоменклатуры.Представление())); + СписокОписаний.Добавить(СтрШаблон(НСтр("ru = '- удаление реквизита ""%1"" из табличной части ""%2"";'"), + НСтр("ru = 'УдалитьТабачнаяПродукция'"), + Метаданные.Справочники.ВидыНоменклатуры.ТабличныеЧасти.РеквизитыДляКонтроляНоменклатуры.Представление())); + СписокОписаний.Добавить(СтрШаблон(НСтр("ru = '- удаление реквизита ""%1"" из табличной части ""%2"";'"), + НСтр("ru = 'УдалитьОбувнаяПродукция'"), + Метаданные.Справочники.ВидыНоменклатуры.ТабличныеЧасти.РеквизитыДляКонтроляНоменклатуры.Представление())); + СписокОписаний.Добавить(НСтр("ru = '- Очистка особенности учета номенклатуры, подконтрольной государственным информационным системам;'")); + //-- Локализация + СписокОписаний.Добавить(НСтр("ru = '- Заполнение мультиязычных реквизитов справочника.'")); + + Обработчик.Комментарий = СтрСоединить(СписокОписаний, Символы.ПС); + Обработчик.Порядок = Перечисления.ПорядокОбработчиковОбновления.Обычный; + + Читаемые = Новый Массив; + Читаемые.Добавить(Метаданные.Справочники.ВидыНоменклатуры.ПолноеИмя()); + Обработчик.ЧитаемыеОбъекты = СтрСоединить(Читаемые, ","); + + Изменяемые = Новый Массив; + Изменяемые.Добавить(Метаданные.Справочники.ВидыНоменклатуры.ПолноеИмя()); + Обработчик.ИзменяемыеОбъекты = СтрСоединить(Изменяемые, ","); + + Блокируемые = Новый Массив; + Блокируемые.Добавить(Метаданные.Справочники.ВидыНоменклатуры.ПолноеИмя()); + Обработчик.БлокируемыеОбъекты = СтрСоединить(Блокируемые, ","); + +КонецПроцедуры + +// Параметры: +// Параметры - см. ОбновлениеИнформационнойБазы.ОсновныеПараметрыОтметкиКОбработке +// +Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт + + ПараметрыВыборки = Параметры.ПараметрыВыборки; + ПараметрыВыборки.ПолныеИменаОбъектов = ПустаяСсылка().Метаданные().ПолноеИмя(); + ПараметрыВыборки.СпособВыборки = ОбновлениеИнформационнойБазы.СпособВыборкиСсылки(); + + Запрос = Новый Запрос; + ЧастиЗапроса = Новый Массив; + + ЧастиЗапроса.Добавить( + "ВЫБРАТЬ + | ВидыНоменклатурыРеквизитыДляКонтроляНоменклатуры.Ссылка КАК Ссылка + |ИЗ + | Справочник.ВидыНоменклатуры.РеквизитыДляКонтроляНоменклатуры КАК ВидыНоменклатурыРеквизитыДляКонтроляНоменклатуры + |ГДЕ + | ВидыНоменклатурыРеквизитыДляКонтроляНоменклатуры.ИмяРеквизита = ""УдалитьКодОКВЭД2"" + | ИЛИ ВидыНоменклатурыРеквизитыДляКонтроляНоменклатуры.ИмяРеквизита = ""ПодакцизныйТовар"" + | ИЛИ ВидыНоменклатурыРеквизитыДляКонтроляНоменклатуры.ИмяРеквизита = ""УдалитьПодакцизныйТовар"" + | ИЛИ ВидыНоменклатурыРеквизитыДляКонтроляНоменклатуры.ИмяРеквизита = ""ПодконтрольнаяПродукцияВЕТИС"" + | ИЛИ ВидыНоменклатурыРеквизитыДляКонтроляНоменклатуры.ИмяРеквизита = ""ОбувнаяПродукция"" + | ИЛИ ВидыНоменклатурыРеквизитыДляКонтроляНоменклатуры.ИмяРеквизита = ""УдалитьОбувнаяПродукция"" + | ИЛИ ВидыНоменклатурыРеквизитыДляКонтроляНоменклатуры.ИмяРеквизита = ""ТабачнаяПродукция"" + | ИЛИ ВидыНоменклатурыРеквизитыДляКонтроляНоменклатуры.ИмяРеквизита = ""УдалитьТабачнаяПродукция"" + |"); + + ИспользуютсяДопЯзыки = Ложь; + Для Каждого ИспользуетсяДопЯзык Из МультиязычностьСервер.СведенияОЯзыках().Используется Цикл + + Если ИспользуетсяДопЯзык.Значение = Истина Тогда + + ИспользуютсяДопЯзыки = Истина; + Прервать; + + КонецЕсли; + + КонецЦикла; + + Если ИспользуютсяДопЯзыки Тогда + + ЧастиЗапроса.Добавить( + "ВЫБРАТЬ + | ВидыНоменклатуры.Ссылка КАК Ссылка + |ИЗ + | Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры + |ГДЕ + | НЕ ВидыНоменклатуры.Наименование = """" + | И ВидыНоменклатуры.НаименованиеЯзык1 = """" + | + |ОБЪЕДИНИТЬ + | + |ВЫБРАТЬ + | ВидыНоменклатуры.Ссылка КАК Ссылка + |ИЗ + | Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры + |ГДЕ + | НЕ ВидыНоменклатуры.Наименование = """" + | И ВидыНоменклатуры.НаименованиеЯзык2 = """""); + + КонецЕсли; + + //++ Локализация + ЧастиЗапроса.Добавить(" + |ВЫБРАТЬ + | ВидыНоменклатуры.Ссылка КАК Ссылка + |ИЗ + | Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры + |ГДЕ + | ВидыНоменклатуры.ОсобенностьУчета В (&ОсобенностиУчета)"); + + Запрос.УстановитьПараметр("ОсобенностиУчета", ИнтеграцияИСУТ.ОсобенностиУчетаИС()); + //-- Локализация + + Запрос.Текст = Запрос.Текст + СтрСоединить(ЧастиЗапроса, + " + | + |ОБЪЕДИНИТЬ ВСЕ + | + |"); + + ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка")); + +КонецПроцедуры + +// Обработчик обновления +// +// Параметры: +// Параметры - См. ОбновлениеИнформационнойБазы.ДополнительныеПараметрыВыборкиДанныхДляМногопоточнойОбработки +// +Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт + + Параметры.ОбработкаЗавершена = Ложь; + + ПолноеИмяОбъекта = ПустаяСсылка().Метаданные().ПолноеИмя(); + + ОбновляемыеДанные = ОбновлениеИнформационнойБазы.ДанныеДляОбновленияВМногопоточномОбработчике(Параметры); + + Если ОбновляемыеДанные.Количество() = 0 Тогда + + Параметры.ОбработкаЗавершена = + ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, ПолноеИмяОбъекта); + Возврат; + + КонецЕсли; + + ОбъектовОбработано = 0; + ПроблемныхОбъектов = 0; + ИсключенияПриОбновлении = Новый Массив; + + ИспользуютсяДопЯзыки = Ложь; + Для Каждого ИспользуетсяДопЯзык Из МультиязычностьСервер.СведенияОЯзыках().Используется Цикл + + Если ИспользуетсяДопЯзык.Значение = Истина Тогда + + ИспользуютсяДопЯзыки = Истина; + Прервать; + + КонецЕсли; + + КонецЦикла; + + Запрос = Новый Запрос; + + СписокОписаний = Новый Массив; + СписокОписаний.Добавить(НСтр("ru = 'Не удалось обработать справочник ""Виды номенклатуры"" по обработчику:'")); + СписокОписаний.Добавить(СтрШаблон(НСтр("ru = '- удаление реквизита ""%1"" из табличной части ""%2"";'"), + Метаданные.Справочники.ВидыНоменклатуры.Реквизиты.УдалитьКодОКВЭД2.Имя, + Метаданные.Справочники.ВидыНоменклатуры.ТабличныеЧасти.РеквизитыДляКонтроляНоменклатуры.Представление())); + СписокОписаний.Добавить(СтрШаблон(НСтр("ru = '- удаление реквизита ""%1"" из табличной части ""%2"";'"), + Метаданные.Справочники.ВидыНоменклатуры.Реквизиты.УдалитьПодакцизныйТовар.Имя, + Метаданные.Справочники.ВидыНоменклатуры.ТабличныеЧасти.РеквизитыДляКонтроляНоменклатуры.Представление())); + //++ Локализация + СписокОписаний.Добавить(СтрШаблон(НСтр("ru = '- удаление реквизита ""%1"" из табличной части ""%2"";'"), + Метаданные.Справочники.ВидыНоменклатуры.Реквизиты.ПодконтрольнаяПродукцияВЕТИС.Имя, + Метаданные.Справочники.ВидыНоменклатуры.ТабличныеЧасти.РеквизитыДляКонтроляНоменклатуры.Представление())); + СписокОписаний.Добавить(СтрШаблон(НСтр("ru = '- удаление реквизита ""%1"" из табличной части ""%2"";'"), + НСтр("ru = 'УдалитьТабачнаяПродукция'"), + Метаданные.Справочники.ВидыНоменклатуры.ТабличныеЧасти.РеквизитыДляКонтроляНоменклатуры.Представление())); + СписокОписаний.Добавить(СтрШаблон(НСтр("ru = '- удаление реквизита ""%1"" из табличной части ""%2"";'"), + НСтр("ru = 'УдалитьОбувнаяПродукция'"), + Метаданные.Справочники.ВидыНоменклатуры.ТабличныеЧасти.РеквизитыДляКонтроляНоменклатуры.Представление())); + СписокОписаний.Добавить(НСтр("ru = '- Очистка особенности учета номенклатуры, подконтрольной государственным информационным системам;'")); + + Запрос.УстановитьПараметр("ОсобенностиУчета", ИнтеграцияИСУТ.ОсобенностиУчетаИС()); + //-- Локализация + СписокОписаний.Добавить(НСтр("ru = '- Заполнение мультиязычных реквизитов справочника.'")); + + Запрос.Текст = + "ВЫБРАТЬ + | ДанныеДляОбновления.Ссылка КАК Ссылка + |ПОМЕСТИТЬ ТаблицаЭлементов + |ИЗ + | &ДанныеДляОбновления КАК ДанныеДляОбновления + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ТаблицаЭлементов.Ссылка КАК Ссылка, + | ДанныеСправочника.ВерсияДанных КАК ВерсияДанных, + | ЕСТЬNULL(ВидыНоменклатурыРеквизитыДляКонтроляНоменклатурыУдалитьКодОКВЭД2.ОтображатьПриСоздании, Ложь) КАК ОтображатьПриСозданииУдалитьКодОКВЭД2, + | ЕСТЬNULL(ВидыНоменклатурыРеквизитыДляКонтроляНоменклатурыУдалитьКодОКВЭД2.ЗаполнятьОбязательно, Ложь) КАК ЗаполнятьОбязательноУдалитьКодОКВЭД2, + | ЕСТЬNULL(ВидыНоменклатурыРеквизитыДляКонтроляНоменклатурыУдалитьКодОКВЭД2.Уникален, Ложь) КАК УникаленУдалитьКодОКВЭД2, + | ЕСТЬNULL(ВидыНоменклатурыРеквизитыДляКонтроляНоменклатурыКодОКВЭД2.ОтображатьПриСоздании, Ложь) КАК ОтображатьПриСозданииКодОКВЭД2, + | ЕСТЬNULL(ВидыНоменклатурыРеквизитыДляКонтроляНоменклатурыКодОКВЭД2.ЗаполнятьОбязательно, Ложь) КАК ЗаполнятьОбязательноКодОКВЭД2, + //++ Локализация + | ЕСТЬNULL(ДанныеСправочника.ОсобенностьУчета В (&ОсобенностиУчета), ЛОЖЬ) КАК ТребуетсяОбработкаОсобенностиУчета, + //-- Локализация + | ЕСТЬNULL(ВидыНоменклатурыРеквизитыДляКонтроляНоменклатурыКодОКВЭД2.Уникален, Ложь) КАК УникаленКодОКВЭД2 + |ИЗ + | ТаблицаЭлементов КАК ТаблицаЭлементов + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры КАК ДанныеСправочника + | ПО (ТаблицаЭлементов.Ссылка = ДанныеСправочника.Ссылка) + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры.РеквизитыДляКонтроляНоменклатуры КАК ВидыНоменклатурыРеквизитыДляКонтроляНоменклатурыУдалитьКодОКВЭД2 + | ПО (ТаблицаЭлементов.Ссылка = ВидыНоменклатурыРеквизитыДляКонтроляНоменклатурыУдалитьКодОКВЭД2.Ссылка) + | И (ВидыНоменклатурыРеквизитыДляКонтроляНоменклатурыУдалитьКодОКВЭД2.ИмяРеквизита = ""УдалитьКодОКВЭД2"") + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры.РеквизитыДляКонтроляНоменклатуры КАК ВидыНоменклатурыРеквизитыДляКонтроляНоменклатурыКодОКВЭД2 + | ПО (ТаблицаЭлементов.Ссылка = ВидыНоменклатурыРеквизитыДляКонтроляНоменклатурыКодОКВЭД2.Ссылка) + | И (ВидыНоменклатурыРеквизитыДляКонтроляНоменклатурыКодОКВЭД2.ИмяРеквизита = ""КодОКВЭД2"") + |"; + + Запрос.УстановитьПараметр("ДанныеДляОбновления", ОбновляемыеДанные); + + Справочник = Запрос.Выполнить().Выбрать(); + + Пока Справочник.Следующий() Цикл + + ПричинаИсключения = 0; + Рекомендация = ""; + + НачатьТранзакцию(); + + Попытка + + ПричинаИсключения = 1; // Блокировка + + Блокировка = Новый БлокировкаДанных; + + ЭлементБлокировки = Блокировка.Добавить(ПолноеИмяОбъекта); + ЭлементБлокировки.УстановитьЗначение("Ссылка", Справочник.Ссылка); + ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; + + Блокировка.Заблокировать(); + + СправочникОбъект = ОбновлениеИнформационнойБазыУТ.ПроверитьПолучитьОбъект( + Справочник.Ссылка, Справочник.ВерсияДанных, Параметры.Очередь); // СправочникОбъект + + ПричинаИсключения = 2; // ПлохиеДанные + Рекомендация = НСтр("ru = 'Проверьте данные справочника вручную.'"); + + ОбъектИзменен = Ложь; + + Если СправочникОбъект <> Неопределено Тогда + + #Область ОбработатьУдалениеРеквизитаИзТабличнойЧастиИЗаполнениеМультиязычныхРеквизитов + Если (Не Справочник.ОтображатьПриСозданииКодОКВЭД2 + И Не Справочник.ЗаполнятьОбязательноКодОКВЭД2 + И Не Справочник.УникаленКодОКВЭД2) + И (Не Справочник.ОтображатьПриСозданииУдалитьКодОКВЭД2 + Или Не Справочник.ЗаполнятьОбязательноУдалитьКодОКВЭД2 + Или Не Справочник.УникаленУдалитьКодОКВЭД2) Тогда + + НайденныеСтроки = СправочникОбъект.РеквизитыДляКонтроляНоменклатуры.НайтиСтроки(Новый Структура("ИмяРеквизита", "КодОКВЭД2")); + Если НайденныеСтроки.Количество() > 0 Тогда + + НайденныеСтроки[0].ОтображатьПриСоздании = Справочник.ОтображатьПриСозданииУдалитьКодОКВЭД2; + НайденныеСтроки[0].ЗаполнятьОбязательно = Справочник.ЗаполнятьОбязательноУдалитьКодОКВЭД2; + НайденныеСтроки[0].Уникален = Справочник.УникаленУдалитьКодОКВЭД2; + + КонецЕсли; + + КонецЕсли; + + НайденныеСтроки = СправочникОбъект.РеквизитыДляКонтроляНоменклатуры.НайтиСтроки(Новый Структура("ИмяРеквизита", "УдалитьКодОКВЭД2")); + Если НайденныеСтроки.Количество() > 0 Тогда + + СправочникОбъект.РеквизитыДляКонтроляНоменклатуры.Удалить(НайденныеСтроки[0]); + + КонецЕсли; + + НайденныеСтроки = СправочникОбъект.РеквизитыДляКонтроляНоменклатуры.НайтиСтроки(Новый Структура("ИмяРеквизита", "ПодакцизныйТовар")); + Если НайденныеСтроки.Количество() > 0 Тогда + + СправочникОбъект.РеквизитыДляКонтроляНоменклатуры.Удалить(НайденныеСтроки[0]); + + КонецЕсли; + + НайденныеСтроки = СправочникОбъект.РеквизитыДляКонтроляНоменклатуры.НайтиСтроки(Новый Структура("ИмяРеквизита", "ПодконтрольнаяПродукцияВЕТИС")); + Если НайденныеСтроки.Количество() > 0 Тогда + + СправочникОбъект.РеквизитыДляКонтроляНоменклатуры.Удалить(НайденныеСтроки[0]); + + КонецЕсли; + + НайденныеСтроки = СправочникОбъект.РеквизитыДляКонтроляНоменклатуры.НайтиСтроки(Новый Структура("ИмяРеквизита", "УдалитьТабачнаяПродукция")); + Если НайденныеСтроки.Количество() > 0 Тогда + + СправочникОбъект.РеквизитыДляКонтроляНоменклатуры.Удалить(НайденныеСтроки[0]); + + КонецЕсли; + + НайденныеСтроки = СправочникОбъект.РеквизитыДляКонтроляНоменклатуры.НайтиСтроки(Новый Структура("ИмяРеквизита", "УдалитьОбувнаяПродукция")); + Если НайденныеСтроки.Количество() > 0 Тогда + + СправочникОбъект.РеквизитыДляКонтроляНоменклатуры.Удалить(НайденныеСтроки[0]); + + КонецЕсли; + + Если ИспользуютсяДопЯзыки Тогда + + Если Не ЗначениеЗаполнено(СправочникОбъект.НаименованиеЯзык1) Тогда + + СправочникОбъект.НаименованиеЯзык1 = СправочникОбъект.Наименование; + + КонецЕсли; + + Если Не ЗначениеЗаполнено(СправочникОбъект.НаименованиеЯзык2) Тогда + + СправочникОбъект.НаименованиеЯзык2 = СправочникОбъект.Наименование; + + КонецЕсли; + + КонецЕсли; + + #КонецОбласти + + //++ Локализация + #Область ПереходНаКонструкторНастроекИС + Если Справочник.ТребуетсяОбработкаОсобенностиУчета Тогда + СправочникОбъект.ОсобенностьУчета = Перечисления.ОсобенностиУчетаНоменклатуры.БезОсобенностейУчета; + КонецЕсли; + #КонецОбласти + //-- Локализация + + ОбъектИзменен = Истина; + + КонецЕсли; + + ПричинаИсключения = 3; // Запись + + Если ОбъектИзменен Тогда + ОбновлениеИнформационнойБазы.ЗаписатьДанные(СправочникОбъект); + Иначе + ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Справочник.Ссылка); + КонецЕсли; + + ОбъектовОбработано = ОбъектовОбработано + 1; + ЗафиксироватьТранзакцию(); + + Исключение + + ОтменитьТранзакцию(); + + ПроблемныхОбъектов = ПроблемныхОбъектов + 1; + ОбновлениеИнформационнойБазыУТ.СообщитьОНеудачнойОбработке(ИнформацияОбОшибке(), Справочник.Ссылка); + + Если ПричинаИсключения = 2 Тогда + + ОписаниеПроблемы = ОбновлениеИнформационнойБазыУТ.ПроблемаСДанными( + Справочник.Ссылка, Рекомендация, ИнформацияОбОшибке()); + ИсключенияПриОбновлении.Добавить(ОписаниеПроблемы); + + ИначеЕсли ПричинаИсключения = 3 Тогда + + ОбновлениеИнформационнойБазыУТ.ЗаписатьПлохиеДанные( + ИсключенияПриОбновлении, ОбъектовОбработано, Параметры); + ВызватьИсключение СтрСоединить(СписокОписаний, Символы.ПС); + + КонецЕсли; + + КонецПопытки; + + КонецЦикла; + + Параметры.ОбработкаЗавершена = + ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, ПолноеИмяОбъекта); + +КонецПроцедуры + +#КонецОбласти + +#Область Прочее + +// Выполняет обработку обновления связей +// +// Параметры: +// ВидНоменклатуры - СправочникОбъект.ВидыНоменклатуры - Обрабатываемый объект. +Процедура ОтработатьЛогикуСвязиРеквизитов(ВидНоменклатуры) Экспорт + + ОсобенностьУчетаИлиКлючВидовПродукции = НоменклатураЛокализация.ОсобенностьУчетаИлиКлючВидовПродукции(ВидНоменклатуры); + + Если ТипЗнч(ОсобенностьУчетаИлиКлючВидовПродукции) = Тип("ПеречислениеСсылка.ОсобенностиУчетаНоменклатуры") Тогда + РеквизитыПризнаковОсобенностейУчета = Справочники.Номенклатура.РеквизитыПризнаковОсобенностейУчета(Метаданные.Справочники.ВидыНоменклатуры); + Для Каждого ИмяРеквизита Из РеквизитыПризнаковОсобенностейУчета Цикл + ВидНоменклатуры[ИмяРеквизита] = ОсобенностьУчетаИлиКлючВидовПродукции = + ПредопределенноеЗначение("Перечисление.ОсобенностиУчетаНоменклатуры." + ИмяРеквизита); + КонецЦикла; + КонецЕсли; + + Если Не ЗначениеЗаполнено(ОсобенностьУчетаИлиКлючВидовПродукции) Тогда + Если ВидНоменклатуры.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Услуга Тогда + НоменклатураЛокализация.УстановитьОсобенностьУчетаИКлючВидовПродукции( + ВидНоменклатуры, Перечисления.ОсобенностиУчетаНоменклатуры.ОрганизациейПродавцом); + Иначе + НоменклатураЛокализация.УстановитьОсобенностьУчетаИКлючВидовПродукции( + ВидНоменклатуры, Перечисления.ОсобенностиУчетаНоменклатуры.БезОсобенностейУчета); + КонецЕсли; + КонецЕсли; + + ЗначенияРеквизитов = ЗначенияРеквизитовСтрогоЗаполняемыеПоОсобенностиУчета(ОсобенностьУчетаИлиКлючВидовПродукции); + Если ЗначенияРеквизитов <> Неопределено Тогда + ЗаполнитьЗначенияСвойств(ВидНоменклатуры, ЗначенияРеквизитов); + КонецЕсли; + + ПроверитьПоТипуИОсобенностиНоменклатуруОчиститьВладельца(ВидНоменклатуры, "ВладелецХарактеристик"); + ПроверитьПоТипуИОсобенностиНоменклатуруОчиститьВладельца(ВидНоменклатуры, "ВладелецСерий"); + ПроверитьПоТипуИОсобенностиНоменклатуруОчиститьВладельца(ВидНоменклатуры, "ВладелецТоварныхКатегорий"); + + ИспользованиеРеквизитов = Справочники.Номенклатура.ИспользованиеЭлементов(ВидНоменклатуры,Ложь,Истина); + МетаданныеОбъекта = Метаданные.Справочники.ВидыНоменклатуры; + + Для каждого КлючЗначение Из ИспользованиеРеквизитов Цикл + Если Не КлючЗначение.Значение Тогда + Если МетаданныеОбъекта.Реквизиты.Найти(КлючЗначение.Ключ) <> Неопределено Тогда + ВидНоменклатуры[КлючЗначение.Ключ] = Неопределено; + КонецЕсли; + КонецЕсли; + КонецЦикла; + + Если Не ВидНоменклатуры.ИспользоватьХарактеристики Тогда + + ВидНоменклатуры.ИспользованиеХарактеристик = ПредопределенноеЗначение("Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать"); + + ВидНоменклатуры.ШаблонНаименованияДляПечатиХарактеристики = ""; + ВидНоменклатуры.ШаблонРабочегоНаименованияХарактеристики = ""; + + ВидНоменклатуры.ЗапретРедактированияНаименованияДляПечатиХарактеристики = Ложь; + ВидНоменклатуры.ЗапретРедактированияРабочегоНаименованияХарактеристики = Ложь; + ВидНоменклатуры.ВладелецХарактеристик = Неопределено; + + КонецЕсли; + + Если ВидНоменклатуры.ИспользованиеХарактеристик <> Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры Тогда + ВидНоменклатуры.ВладелецХарактеристик = ПустаяСсылка(); + КонецЕсли; + + Если Не ВидНоменклатуры.ИспользоватьСерии Тогда + + ЗначенияРеквизитовПоУмолчанию = ОбщегоНазначенияУТ.ЗначенияРеквизитовОбъектаПоУмолчанию(ПустаяСсылка(), + РеквизитыНастройкиУказанияСерий()); + + ЗаполнитьЗначенияСвойств(ВидНоменклатуры, ЗначенияРеквизитовПоУмолчанию); + + ВидНоменклатуры.ПолитикаУчетаСерий = Справочники.ПолитикиУчетаСерий.СерииНеИспользуются; + ВидНоменклатуры.НастройкиКлючаЦенПоСерии = Перечисления.ВариантОтбораДляКлючаЦен.НеИспользовать; + ВидНоменклатуры.ПолитикиУчетаСерий.Очистить(); + + Иначе + + Если ВидНоменклатуры.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + И (ТипЗнч(ВидНоменклатуры) = Тип("СправочникОбъект.ВидыНоменклатуры") + И Не ВидНоменклатуры.ДополнительныеСвойства.Свойство("ПропуститьЗаполнениеТЧПолитикиУчетаСерий")) Тогда + + РеквизитыВладельцаСерий = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ВидНоменклатуры.ВладелецСерий, + РеквизитыНастройкиУказанияСерий()); + + ЗаполнитьЗначенияСвойств(ВидНоменклатуры, РеквизитыВладельцаСерий,,"ВладелецСерий,НастройкиСерийБерутсяИзДругогоВидаНоменклатуры"); + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ВидыНоменклатурыПолитикиУчетаСерий.Склад, + | ВидыНоменклатурыПолитикиУчетаСерий.ПолитикаУчетаСерий + |ИЗ + | Справочник.ВидыНоменклатуры.ПолитикиУчетаСерий КАК ВидыНоменклатурыПолитикиУчетаСерий + |ГДЕ + | ВидыНоменклатурыПолитикиУчетаСерий.Ссылка = &ВладелецСерий"; + + Запрос.УстановитьПараметр("ВладелецСерий", ВидНоменклатуры.ВладелецСерий); + + ВидНоменклатуры.ПолитикиУчетаСерий.Загрузить(Запрос.Выполнить().Выгрузить()); + + Иначе + + НастройкиИспользованияСерий = НастройкиИспользованияСерий(ВидНоменклатуры); + + Для Каждого Описание Из НастройкиИспользованияСерий.ОписанияИспользованияРеквизитовСерии Цикл + + Если Не ПустаяСтрока(Описание.ОсобенностиУчета) Тогда + + ИменаОсобенностей = СтрРазделить(Описание.ОсобенностиУчета, ","); + + НадоОчистить = Истина; + + Для Каждого ИмяОсобенности Из ИменаОсобенностей Цикл + + Если ВидНоменклатуры.ОсобенностьУчета = ПредопределенноеЗначение("Перечисление.ОсобенностиУчетаНоменклатуры." + ИмяОсобенности) Тогда + НадоОчистить = Ложь; + Прервать; + КонецЕсли; + + КонецЦикла; + + Если НадоОчистить Тогда + ВидНоменклатуры[Описание.ИмяНастройки] = Ложь; + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + + ВидНоменклатуры.ИспользоватьКоличествоСерии = (ВидНоменклатуры.НастройкаИспользованияСерий = Перечисления.НастройкиИспользованияСерийНоменклатуры.ПартияТоваров); + + Если ВидНоменклатуры.НастройкаИспользованияСерий <> Перечисления.НастройкиИспользованияСерийНоменклатуры.ЭкземплярТовара Тогда + ВидНоменклатуры.ИспользоватьRFIDМеткиСерии = Ложь; + КонецЕсли; + + Если Не ВидНоменклатуры.ИспользоватьСрокГодностиСерии + И Не ВидНоменклатуры.ИспользоватьДатуПроизводстваСерии Тогда + ВидНоменклатуры.ЕдиницаИзмеренияСрокаГодности = Перечисления.ЕдиницыИзмеренияВремени.ПустаяСсылка(); + ВидНоменклатуры.ТочностьУказанияСрокаГодностиСерии = Перечисления.ТочностиУказанияСрокаГодности.ПустаяСсылка(); + Иначе + Если Не ЗначениеЗаполнено(ВидНоменклатуры.ТочностьУказанияСрокаГодностиСерии) Тогда + ВидНоменклатуры.ТочностьУказанияСрокаГодностиСерии = Перечисления.ТочностиУказанияСрокаГодности.СТочностьюДоДней; + КонецЕсли; + ВидНоменклатуры.ЕдиницаИзмеренияСрокаГодности = ЕдиницаИзмеренияСрокаГодности( + ВидНоменклатуры.ТочностьУказанияСрокаГодностиСерии); + КонецЕсли; + + Если Не ВидНоменклатуры.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры Тогда + ВидНоменклатуры.ВладелецСерий = ПустаяСсылка(); + КонецЕсли; + + Если Не ПредусмотренаАвтоматическаяГенерацияСерий(НастройкиИспользованияСерий) Тогда + ВидНоменклатуры.АвтоматическиГенерироватьСерии = Ложь; + КонецЕсли; + + Если ВидНоменклатуры.АвтоматическиГенерироватьСерии Тогда + ВидНоменклатуры.ИспользоватьНомерСерии = Ложь; + КонецЕсли; + + ПараметрыОтбораПолитики = НоменклатураКлиентСервер.ПараметрыОтбораПолитикУчетаСерий(); + ЗаполнитьЗначенияСвойств(ПараметрыОтбораПолитики, ВидНоменклатуры); + + Если ЗначениеЗаполнено(ВидНоменклатуры.ПолитикаУчетаСерий) + И ВидНоменклатуры.ПолитикаУчетаСерий <> Справочники.ПолитикиУчетаСерий.СерииНеИспользуются Тогда + + ОтборПолитик = НоменклатураСервер.ОтборПолитикУчетаСерийПоПараметрам(ПараметрыОтбораПолитики); + + Если Не ОбщегоНазначенияУТ.СсылкаСоответствуетОтбору(ВидНоменклатуры.ПолитикаУчетаСерий, ОтборПолитик) Тогда + ВидНоменклатуры.ПолитикаУчетаСерий = Справочники.ПолитикиУчетаСерий.СерииНеИспользуются; + КонецЕсли; + + КонецЕсли; + + Для Каждого СтрТабл Из ВидНоменклатуры.ПолитикиУчетаСерий Цикл + + Если СтрТабл.ПолитикаУчетаСерий <> Справочники.ПолитикиУчетаСерий.СерииНеИспользуются Тогда + + ПараметрыОтбораПолитики.Склад = СтрТабл.Склад; + + ОтборПолитик = НоменклатураСервер.ОтборПолитикУчетаСерийПоПараметрам(ПараметрыОтбораПолитики); + + Если Не ОбщегоНазначенияУТ.СсылкаСоответствуетОтбору(СтрТабл.ПолитикаУчетаСерий, ОтборПолитик) Тогда + СтрТабл.ПолитикаУчетаСерий = ВидНоменклатуры.ПолитикаУчетаСерий; + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + + КонецЕсли; + + Если Не ВидНоменклатуры.ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры Тогда + ВидНоменклатуры.ВладелецТоварныхКатегорий = ПустаяСсылка(); + КонецЕсли; + + ЗаполнитьРеквизитыДляКонтроля(ВидНоменклатуры, "Номенклатура"); + ЗаполнитьДопРеквизитыДляКонтроляИОтбора(ВидНоменклатуры, "Номенклатура"); + + ЗаполнитьРеквизитыДляКонтроля(ВидНоменклатуры, "ХарактеристикиНоменклатуры"); + ЗаполнитьДопРеквизитыДляКонтроляИОтбора(ВидНоменклатуры, "ХарактеристикиНоменклатуры"); + + ЗаполнитьДопРеквизитыДляКонтроляИОтбора(ВидНоменклатуры, "СерииНоменклатуры"); + + КонтролироватьДублиНоменклатуры = ВидНоменклатуры.РеквизитыДляКонтроляНоменклатуры.НайтиСтроки(Новый Структура("Уникален", Истина)).Количество() > 0; + +КонецПроцедуры + +// Выполняет заполнение реквизитов по умолчанию +// +// Параметры: +// ВидНоменклатуры - СправочникОбъект.ВидыНоменклатуры - Обрабатываемый объект. +// +Процедура ЗаполнитьРеквизитыПоУмолчанию(ВидНоменклатуры) Экспорт + + Если Не ЗначениеЗаполнено(ВидНоменклатуры.ГруппаДоступа) Тогда + ВидНоменклатуры.ГруппаДоступа = Справочники.ГруппыДоступаНоменклатуры.ПолучитьГруппуДоступаПоУмолчанию(ВидНоменклатуры); + КонецЕсли; + + Если Не ЗначениеЗаполнено(ВидНоменклатуры.ТипНоменклатуры) + И Не Перечисления.ОсобенностиУчетаНоменклатуры.ОднаИзОсобенностейВключена() Тогда + // Если нет никаких особенностей учета номенклатуры, то устанавливает тип "Товар" по-умолчанию, + // в противном случае пользователь должен в явном виде указать тип. + ВидНоменклатуры.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар; + КонецЕсли; + + Если ПустаяСтрока(ВидНоменклатуры.ШаблонНаименованияДляПечатиНоменклатуры) Тогда + ВидНоменклатуры.ШаблонНаименованияДляПечатиНоменклатуры = "[Наименование]"; + КонецЕсли; + + ОсобенностьУчетаИлиКлючВидовПродукции = НоменклатураЛокализация.ОсобенностьУчетаИлиКлючВидовПродукции(ВидНоменклатуры); + + ЗначенияРеквизитов = ЗначенияРеквизитовСтрогоЗаполняемыеПоОсобенностиУчета(ОсобенностьУчетаИлиКлючВидовПродукции); + Если ЗначенияРеквизитов <> Неопределено Тогда + ЗаполнитьЗначенияСвойств(ВидНоменклатуры, ЗначенияРеквизитов); + КонецЕсли; + + Если Не ЗначениеЗаполнено(ВидНоменклатуры.ВариантОформленияПродажи) Тогда + ВидНоменклатуры.ВариантОформленияПродажи = Перечисления.ВариантыОформленияПродажи.РеализацияТоваровУслуг; + КонецЕсли; + + Если ВидНоменклатуры.ИспользоватьСерии Тогда + + Если Не ЗначениеЗаполнено(ВидНоменклатуры.НастройкаИспользованияСерий) Тогда + ВидНоменклатуры.НастройкаИспользованияСерий = Перечисления.НастройкиИспользованияСерийНоменклатуры.ПартияТоваров; + КонецЕсли; + + Если Не ВидНоменклатуры.ИспользоватьНомерСерии + И Не ВидНоменклатуры.ИспользоватьСрокГодностиСерии Тогда + ВидНоменклатуры.ИспользоватьНомерСерии = Истина; + КонецЕсли; + + ТекстЗапроса = + "ВЫБРАТЬ ПЕРВЫЕ 2 + | ВидыНоменклатуры.Ссылка КАК Ссылка + |ИЗ + | Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры + |ГДЕ + | НЕ ВидыНоменклатуры.ПометкаУдаления + | И ВидыНоменклатуры.Ссылка <> &Ссылка + | И &ТекстУсловияОтбора"; + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("Ссылка", ВидНоменклатуры.Ссылка); + + ОтборВладельцаСерий = НоменклатураСервер.ОтборВладельцаПодчиненныхСправочников(ВидНоменклатуры, "ВладелецСерий"); + + Если ОтборВладельцаСерий.Количество() > 0 Тогда + МассивТекстовУсловия = Новый Массив; + + Для Каждого КлючЗначение Из ОтборВладельцаСерий Цикл + + Если ТипЗнч(КлючЗначение.Значение) = Тип("Массив") + Или ТипЗнч(КлючЗначение.Значение) = Тип("ФиксированныйМассив") Тогда + МассивТекстовУсловия.Добавить("ВидыНоменклатуры." + КлючЗначение.Ключ + " В(&" +КлючЗначение.Ключ + ")"); + Иначе + МассивТекстовУсловия.Добавить("ВидыНоменклатуры." + КлючЗначение.Ключ + " = &" +КлючЗначение.Ключ); + КонецЕсли; + Запрос.УстановитьПараметр(КлючЗначение.Ключ, КлючЗначение.Значение); + + КонецЦикла; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекстУсловияОтбора", СтрСоединить(МассивТекстовУсловия, " И ")); + Иначе + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекстУсловияОтбора", "ИСТИНА"); + КонецЕсли; + + Запрос.Текст = ТекстЗапроса; + Выборка = Запрос.Выполнить().Выбрать(); + + Если Выборка.Количество() = 1 Тогда + + Выборка.Следующий(); + ВидНоменклатуры.ВладелецСерий = Выборка.Ссылка; + ВидНоменклатуры.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры = Истина; + + Иначе + + ВидНоменклатуры.ВладелецСерий = Неопределено; + ВидНоменклатуры.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры = Ложь; + + КонецЕсли; + + КонецЕсли; + + Если ВидНоменклатуры.ИспользоватьХарактеристики Тогда + + Если Не ЗначениеЗаполнено(ВидНоменклатуры.ИспользованиеХарактеристик) + Или ВидНоменклатуры.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать Тогда + ВидНоменклатуры.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры; + КонецЕсли; + + Если ПустаяСтрока(ВидНоменклатуры.ШаблонНаименованияДляПечатиХарактеристики) Тогда + ВидНоменклатуры.ШаблонНаименованияДляПечатиХарактеристики = "[Наименование]"; + КонецЕсли; + КонецЕсли; + + УстановитьРеквизитыЦенообразованияПоУмолчанию(ВидНоменклатуры); + + НоменклатураЛокализация.ЗаполнитьРеквизитыВидаНоменклатурыПоУмолчанию(ВидНоменклатуры); + +КонецПроцедуры + +Функция ЗначенияРеквизитовСтрогоЗаполняемыеПоОсобенностиУчета(ОсобенностьУчетаИлиКлючВидовПродукции) Экспорт + + Возврат НоменклатураЛокализация.ЗначенияРеквизитовСтрогоЗаполняемыеПоОсобенностиУчета( + ОсобенностьУчетаИлиКлючВидовПродукции); + +КонецФункции + +Функция РеквизитыНастройкиУказанияСерий() + + РеквизитыНастройкиУказанияСерий = Новый Массив; + + РеквизитыНастройкиУказанияСерий.Добавить("ИспользоватьНомерСерии"); + РеквизитыНастройкиУказанияСерий.Добавить("ИспользоватьСрокГодностиСерии"); + РеквизитыНастройкиУказанияСерий.Добавить("ИспользоватьRFIDМеткиСерии"); + РеквизитыНастройкиУказанияСерий.Добавить("ИспользоватьДатуПроизводстваСерии"); + + РеквизитыНастройкиУказанияСерий.Добавить("НастройкаИспользованияСерий"); + РеквизитыНастройкиУказанияСерий.Добавить("АвтоматическиГенерироватьСерии"); + РеквизитыНастройкиУказанияСерий.Добавить("ВладелецСерий"); + РеквизитыНастройкиУказанияСерий.Добавить("ШаблонЭтикеткиСерии"); + РеквизитыНастройкиУказанияСерий.Добавить("НастройкиСерийБерутсяИзДругогоВидаНоменклатуры"); + РеквизитыНастройкиУказанияСерий.Добавить("ШаблонРабочегоНаименованияСерии"); + РеквизитыНастройкиУказанияСерий.Добавить("ЕдиницаИзмеренияСрокаГодности"); + РеквизитыНастройкиУказанияСерий.Добавить("ТочностьУказанияСрокаГодностиСерии"); + РеквизитыНастройкиУказанияСерий.Добавить("ИспользоватьКоличествоСерии"); + РеквизитыНастройкиУказанияСерий.Добавить("ПолитикаУчетаСерий"); + РеквизитыНастройкиУказанияСерий.Добавить("НастройкиКлючаЦенПоСерии"); + + НоменклатураЛокализация.РеквизитыНастройкиУказанияСерий(РеквизитыНастройкиУказанияСерий); + + Возврат РеквизитыНастройкиУказанияСерий; + +КонецФункции + +Функция НастройкиИспользованияСерийСоставПолей(ТолькоРеквизитыВида) + + НастройкиИспользованияСерийСоставПолей = Новый Структура; + НастройкиИспользованияСерийСоставПолей = ОбщегоНазначенияУТ.ЗначенияРеквизитовОбъектаПоУмолчанию( + ПустаяСсылка(), + РеквизитыНастройкиУказанияСерий()); + + НастройкиИспользованияСерийСоставПолей.Вставить("ВидНоменклатуры", ПустаяСсылка()); + НастройкиИспользованияСерийСоставПолей.Вставить("ОсобенностьУчета", Перечисления.ОсобенностиУчетаНоменклатуры.ПустаяСсылка()); + НастройкиИспользованияСерийСоставПолей.Вставить("ИспользоватьСерии", Ложь); + НастройкиИспользованияСерийСоставПолей.Вставить("НастройкиКлючаЦенПоСерии", Перечисления.ВариантОтбораДляКлючаЦен.НеИспользовать); + + Если Не ТолькоРеквизитыВида Тогда + НастройкиИспользованияСерийСоставПолей.Вставить("ПолитикаУчетаСерий", Справочники.ПолитикиУчетаСерий.ПустаяСсылка()); + НастройкиИспользованияСерийСоставПолей.Вставить("УказыватьПриПоступлении", Ложь); + НастройкиИспользованияСерийСоставПолей.Вставить("УказыватьПриОтгрузке", Ложь); + НастройкиИспользованияСерийСоставПолей.Вставить("УказыватьПриПланированииОтгрузки", Ложь); + НастройкиИспользованияСерийСоставПолей.Вставить("УчетСерийПоFEFO", Ложь); + НастройкиИспользованияСерийСоставПолей.Вставить("УказыватьПоФактуОтбора", Ложь); + НастройкиИспользованияСерийСоставПолей.Вставить("УчитыватьОстаткиСерий", Ложь); + НастройкиИспользованияСерийСоставПолей.Вставить("УчитыватьСебестоимостьПоСериям", Ложь); + НастройкиИспользованияСерийСоставПолей.Вставить("ОбязательныеДопРеквизиты", Новый ФиксированныйМассив(Новый Массив)); + НастройкиИспользованияСерийСоставПолей.Вставить("ОписанияИспользованияРеквизитовСерии", Новый ФиксированныйМассив(Новый Массив)); + КонецЕсли; + + Возврат НастройкиИспользованияСерийСоставПолей; +КонецФункции + +Функция ОписанияИспользованияРеквизитовСерии(НастройкиИспользованияСерий = Неопределено, ПараметрыУказанияСерий = Неопределено, ЗначенияПолейСвязи = Неопределено) Экспорт + + ОписанияИспользованияРеквизитовСерии = Новый Массив; + + Если НастройкиИспользованияСерий = Неопределено Тогда + НастройкиИспользованияСерий = НастройкиИспользованияСерийСоставПолей(Истина); + Иначе + ФорматнаяСтрокаСрокаГодности = ""; + КонецЕсли; + + ФорматнаяСтрокаСрокаГодности = Перечисления.ТочностиУказанияСрокаГодности.ФорматнаяСтрока(НастройкиИспользованияСерий.ТочностьУказанияСрокаГодностиСерии); + ПредставлениеФорматнойСтрокиВЗаголовкеСрокаГодности = Перечисления.ТочностиУказанияСрокаГодности.ПредставлениеФорматнойСтроки(НастройкиИспользованияСерий.ТочностьУказанияСрокаГодностиСерии); + + ОписаниеИспользованиеРеквизитаСерии = ОписаниеИспользованиеРеквизитаСерии(); + ОписаниеИспользованиеРеквизитаСерии.ИмяРеквизита = "Номер"; + ОписаниеИспользованиеРеквизитаСерии.ПредставлениеРеквизита + = Метаданные.Справочники.СерииНоменклатуры.Реквизиты.Найти(ОписаниеИспользованиеРеквизитаСерии.ИмяРеквизита).Представление(); + ОписаниеИспользованиеРеквизитаСерии.ИмяНастройки = "ИспользоватьНомерСерии"; + ОписаниеИспользованиеРеквизитаСерии.ТекстШаблонаНаименования = НСтр("ru = '%Номер%'"); + ОписаниеИспользованиеРеквизитаСерии.Использование = НастройкиИспользованияСерий[ОписаниеИспользованиеРеквизитаСерии.ИмяНастройки]; + ОписанияИспользованияРеквизитовСерии.Добавить(ОписаниеИспользованиеРеквизитаСерии); + + ОписаниеИспользованиеРеквизитаСерии = ОписаниеИспользованиеРеквизитаСерии(); + ОписаниеИспользованиеРеквизитаСерии.ИмяРеквизита = "ДатаПроизводства"; + ОписаниеИспользованиеРеквизитаСерии.ПредставлениеРеквизита + = Метаданные.Справочники.СерииНоменклатуры.Реквизиты.Найти(ОписаниеИспользованиеРеквизитаСерии.ИмяРеквизита).Представление(); + ОписаниеИспользованиеРеквизитаСерии.ИмяНастройки = "ИспользоватьДатуПроизводстваСерии"; + ОписаниеИспользованиеРеквизитаСерии.ТекстШаблонаНаименования = НСтр("ru = 'от %ДатаПроизводства%'"); + ОписаниеИспользованиеРеквизитаСерии.Использование = НастройкиИспользованияСерий[ОписаниеИспользованиеРеквизитаСерии.ИмяНастройки]; + ОписаниеИспользованиеРеквизитаСерии.Формат = ФорматнаяСтрокаСрокаГодности; + ОписаниеИспользованиеРеквизитаСерии.ПредставлениеФорматнойСтрокиВЗаголовке = ПредставлениеФорматнойСтрокиВЗаголовкеСрокаГодности; + ОписанияИспользованияРеквизитовСерии.Добавить(ОписаниеИспользованиеРеквизитаСерии); + + ОписаниеИспользованиеРеквизитаСерии = ОписаниеИспользованиеРеквизитаСерии(); + ОписаниеИспользованиеРеквизитаСерии.ИмяРеквизита = "ГоденДо"; + ОписаниеИспользованиеРеквизитаСерии.ПредставлениеРеквизита + = Метаданные.Справочники.СерииНоменклатуры.Реквизиты.Найти(ОписаниеИспользованиеРеквизитаСерии.ИмяРеквизита).Представление(); + ОписаниеИспользованиеРеквизитаСерии.ИмяНастройки = "ИспользоватьСрокГодностиСерии"; + ОписаниеИспользованиеРеквизитаСерии.ТекстШаблонаНаименования = НСтр("ru = 'до %ГоденДо%'"); + ОписаниеИспользованиеРеквизитаСерии.Использование = НастройкиИспользованияСерий[ОписаниеИспользованиеРеквизитаСерии.ИмяНастройки]; + ОписаниеИспользованиеРеквизитаСерии.Формат = ФорматнаяСтрокаСрокаГодности; + ОписаниеИспользованиеРеквизитаСерии.ПредставлениеФорматнойСтрокиВЗаголовке = ПредставлениеФорматнойСтрокиВЗаголовкеСрокаГодности; + ОписанияИспользованияРеквизитовСерии.Добавить(ОписаниеИспользованиеРеквизитаСерии); + + ОписаниеИспользованиеРеквизитаСерии = ОписаниеИспользованиеРеквизитаСерии(); + ОписаниеИспользованиеРеквизитаСерии.ИмяРеквизита = "RFIDTID"; + ОписаниеИспользованиеРеквизитаСерии.ПредставлениеРеквизита + = Метаданные.Справочники.СерииНоменклатуры.Реквизиты.Найти(ОписаниеИспользованиеРеквизитаСерии.ИмяРеквизита).Представление(); + ОписаниеИспользованиеРеквизитаСерии.ИмяНастройки = "ИспользоватьRFIDМеткиСерии"; + ОписаниеИспользованиеРеквизитаСерии.Использование = НастройкиИспользованияСерий[ОписаниеИспользованиеРеквизитаСерии.ИмяНастройки]; + ОписаниеИспользованиеРеквизитаСерии.МожноРедактировать = Ложь; + ОписанияИспользованияРеквизитовСерии.Добавить(ОписаниеИспользованиеРеквизитаСерии); + + ОписаниеИспользованиеРеквизитаСерии = ОписаниеИспользованиеРеквизитаСерии(); + ОписаниеИспользованиеРеквизитаСерии.ИмяРеквизита = "RFIDUser"; + ОписаниеИспользованиеРеквизитаСерии.ПредставлениеРеквизита + = Метаданные.Справочники.СерииНоменклатуры.Реквизиты.Найти(ОписаниеИспользованиеРеквизитаСерии.ИмяРеквизита).Представление(); + ОписаниеИспользованиеРеквизитаСерии.ИмяНастройки = "ИспользоватьRFIDМеткиСерии"; + ОписаниеИспользованиеРеквизитаСерии.Использование = НастройкиИспользованияСерий[ОписаниеИспользованиеРеквизитаСерии.ИмяНастройки]; + ОписаниеИспользованиеРеквизитаСерии.МожноРедактировать = Ложь; // В ERP не реализована запись банка RFIDUser + ОписанияИспользованияРеквизитовСерии.Добавить(ОписаниеИспользованиеРеквизитаСерии); + + ОписаниеИспользованиеРеквизитаСерии = ОписаниеИспользованиеРеквизитаСерии(); + ОписаниеИспользованиеРеквизитаСерии.ИмяРеквизита = "RFIDEPC"; + ОписаниеИспользованиеРеквизитаСерии.ПредставлениеРеквизита + = Метаданные.Справочники.СерииНоменклатуры.Реквизиты.Найти(ОписаниеИспользованиеРеквизитаСерии.ИмяРеквизита).Представление(); + ОписаниеИспользованиеРеквизитаСерии.ИмяНастройки = "ИспользоватьRFIDМеткиСерии"; + ОписаниеИспользованиеРеквизитаСерии.Использование = НастройкиИспользованияСерий[ОписаниеИспользованиеРеквизитаСерии.ИмяНастройки]; + ОписаниеИспользованиеРеквизитаСерии.ПроверятьЗаполнение = Истина; + ОписаниеИспользованиеРеквизитаСерии.МожноРедактировать = Ложь; // В ERP реализована запись только банка RFIDEPC и только для интеграции с ГИСМ + ОписанияИспользованияРеквизитовСерии.Добавить(ОписаниеИспользованиеРеквизитаСерии); + + ОписаниеИспользованиеРеквизитаСерии = ОписаниеИспользованиеРеквизитаСерии(); + ОписаниеИспользованиеРеквизитаСерии.ИмяРеквизита = "EPCGTIN"; + ОписаниеИспользованиеРеквизитаСерии.ПредставлениеРеквизита + = Метаданные.Справочники.СерииНоменклатуры.Реквизиты.Найти(ОписаниеИспользованиеРеквизитаСерии.ИмяРеквизита).Представление(); + ОписаниеИспользованиеРеквизитаСерии.ИмяНастройки = "ИспользоватьRFIDМеткиСерии"; + ОписаниеИспользованиеРеквизитаСерии.Использование = НастройкиИспользованияСерий[ОписаниеИспользованиеРеквизитаСерии.ИмяНастройки]; + ОписаниеИспользованиеРеквизитаСерии.МожноРедактировать = Ложь; + ОписанияИспользованияРеквизитовСерии.Добавить(ОписаниеИспользованиеРеквизитаСерии); + + ОписаниеИспользованиеРеквизитаСерии = ОписаниеИспользованиеРеквизитаСерии(); + ОписаниеИспользованиеРеквизитаСерии.ИмяРеквизита = "RFIDМеткаНеЧитаемая"; + ОписаниеИспользованиеРеквизитаСерии.ПредставлениеРеквизита + = Метаданные.Справочники.СерииНоменклатуры.Реквизиты.Найти(ОписаниеИспользованиеРеквизитаСерии.ИмяРеквизита).Представление(); + ОписаниеИспользованиеРеквизитаСерии.ИмяНастройки = "ИспользоватьRFIDМеткиСерии"; + ОписаниеИспользованиеРеквизитаСерии.Использование = НастройкиИспользованияСерий[ОписаниеИспользованиеРеквизитаСерии.ИмяНастройки]; + ОписаниеИспользованиеРеквизитаСерии.МожноРедактировать = Ложь; + ОписанияИспользованияРеквизитовСерии.Добавить(ОписаниеИспользованиеРеквизитаСерии); + + НоменклатураЛокализация.ОписаниеИспользованияРеквизитовСерии(ОписанияИспользованияРеквизитовСерии, НастройкиИспользованияСерий); + + Возврат ОписанияИспользованияРеквизитовСерии; + +КонецФункции + +Функция ОписаниеИспользованиеРеквизитаСерии() Экспорт + + ОписаниеИспользованиеРеквизитаСерии = Новый Структура; + ОписаниеИспользованиеРеквизитаСерии.Вставить("ИмяРеквизита"); + ОписаниеИспользованиеРеквизитаСерии.Вставить("ПредставлениеРеквизита"); + ОписаниеИспользованиеРеквизитаСерии.Вставить("ИмяНастройки"); + ОписаниеИспользованиеРеквизитаСерии.Вставить("ТекстШаблонаНаименования"); + ОписаниеИспользованиеРеквизитаСерии.Вставить("Использование", Ложь); + + ОписаниеИспользованиеРеквизитаСерии.Вставить("ОсобенностиУчета", ""); + ОписаниеИспользованиеРеквизитаСерии.Вставить("Формат", ""); + ОписаниеИспользованиеРеквизитаСерии.Вставить("ПредставлениеФорматнойСтрокиВЗаголовке", ""); + ОписаниеИспользованиеРеквизитаСерии.Вставить("ПроверятьЗаполнение", Истина); + ОписаниеИспользованиеРеквизитаСерии.Вставить("МожноРедактировать", Истина); + ОписаниеИспользованиеРеквизитаСерии.Вставить("ТекстУсловногоОформления", ""); + ОписаниеИспользованиеРеквизитаСерии.Вставить("ПроверятьУникальностьЗначения", Ложь); + + Возврат ОписаниеИспользованиеРеквизитаСерии; + +КонецФункции + +Функция ПредусмотренаАвтоматическаяГенерацияСерий(НастройкиИспользованияСерий) Экспорт + + ПредусмотренаАвтоматическаяГенерацияСерий = Ложь; + НоменклатураЛокализация.ПредусмотренаАвтоматическаяГенерацияСерий(ПредусмотренаАвтоматическаяГенерацияСерий, НастройкиИспользованияСерий); + + Возврат ПредусмотренаАвтоматическаяГенерацияСерий; + +КонецФункции + +// Проверяет возможность изменения настройки отображения реквизита. +// +// Параметры: +// Объект - СправочникОбъект.Номенклатура +// СтрокаРеквизита - Строка +// ВладелецРеквизита - Строка +// +// Возвращаемое значение: +// Булево - изменение настройки возможно. +// +Функция ДоступноИзменениеНастройкиОтображенияРеквизита(Объект, СтрокаРеквизита, ВладелецРеквизита) Экспорт + + ИмяРеквизита = СтрокаРеквизита.ИмяРеквизита; + ЭтоДопРеквизит = СтрокаРеквизита.ЭтоДопРеквизит; + + ОсобенностьУчетаИлиКлючВидовПродукции = НоменклатураЛокализация.ОсобенностьУчетаИлиКлючВидовПродукции(Объект); + + Если ЭтоДопРеквизит Тогда + Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(СтрокаРеквизита.Свойство,"ЗаполнятьОбязательно"); + ЗаполнятьОбязательно = Реквизиты.ЗаполнятьОбязательно; + Иначе + Если ВладелецРеквизита = "Номенклатура" Тогда + + ОписаниеРеквизита = Справочники.Номенклатура.РеквизитОписание(ИмяРеквизита, + Объект.ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции, + Объект.ИспользованиеХарактеристик, + Объект.ИспользоватьСрокГодностиСерии); + + ЗаполнятьОбязательно = ОписаниеРеквизита.ОбязательныйДляЗаполнения; + + Иначе + ЗаполнятьОбязательно = Ложь; + КонецЕсли; + КонецЕсли; + + ДоступноИзменениеНастройки = Не ЗаполнятьОбязательно; + + Если ЭтоОбязательноОтображаемыйРеквизит(Объект, ИмяРеквизита, ВладелецРеквизита, ЭтоДопРеквизит, ЗаполнятьОбязательно) Тогда + ДоступноИзменениеНастройки = Ложь; + КонецЕсли; + + Возврат ДоступноИзменениеНастройки + И Не (СтрокаРеквизита.Уникален + Или СтрокаРеквизита.ЗаполнятьОбязательно); + +КонецФункции + +// Проверяет возможность изменения настройки обязательности заполнения реквизита. +// +// Параметры: +// Объект - СправочникОбъект.Номенклатура +// ИмяРеквизита - Строка +// ВладелецРеквизита - Строка +// ЭтоДопРеквизит - Булево +// ЗаполнятьОбязательно - Булево +// +// Возвращаемое значение: +// Булево - изменение настройки возможно. +// +Функция ДоступноИзменениеНастройкиОбязательностиЗаполненияРеквизита(Объект, СтрокаРеквизита, ВладелецРеквизита) + + ИмяРеквизита = СтрокаРеквизита.ИмяРеквизита; + ЭтоДопРеквизит = СтрокаРеквизита.ЭтоДопРеквизит; + + ОсобенностьУчетаИлиКлючВидовПродукции = НоменклатураЛокализация.ОсобенностьУчетаИлиКлючВидовПродукции(Объект); + + Если ЭтоДопРеквизит Тогда + ТекстИсключения = НСтр("ru = 'Функция не предназначена для использования с доп. реквизитами.'"); + ВызватьИсключение ТекстИсключения; + Иначе + Если ВладелецРеквизита = "Номенклатура" Тогда + + ОписаниеРеквизита = Справочники.Номенклатура.РеквизитОписание(ИмяРеквизита, + Объект.ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции, + Объект.ИспользованиеХарактеристик, + Объект.ИспользоватьСрокГодностиСерии); + + ТипЗначения = ОписаниеРеквизита.Тип; + + ЗаполнятьОбязательно = ОписаниеРеквизита.ОбязательныйДляЗаполнения; + + ИначеЕсли ВладелецРеквизита = "ХарактеристикиНоменклатуры" Тогда + + ОписаниеРеквизита = Справочники.ХарактеристикиНоменклатуры.РеквизитОписание(ИмяРеквизита, + Объект.ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции); + + ТипЗначения = ОписаниеРеквизита.Тип; + + ЗаполнятьОбязательно = ОписаниеРеквизита.ОбязательныйДляЗаполнения; + + Иначе + ЗаполнятьОбязательно = Ложь; + КонецЕсли; + КонецЕсли; + + ДоступноИзменениеНастройки = НЕ ЗаполнятьОбязательно; + + ОписаниеТиповБулево = Новый ОписаниеТипов("Булево"); + + Возврат ДоступноИзменениеНастройки + И ТипЗначения <> ОписаниеТиповБулево; + +КонецФункции + +// Добавляет реквизит в табличные части элемента справочника номенклатуры. +// +// Параметры: +// Объект - СправочникОбъект.Номенклатура +// Реквизит - см. Справочники.Номенклатура.ЗначениеСвойствРеквизита +// ВладелецРеквизита - Строка - Владелец реквизита +Процедура ДобавитьРеквизитДляКонтроляИОтбораНоменклатуры(Объект, Реквизит, ВладелецРеквизита) Экспорт + + Если Справочники.Номенклатура.НеотображаемыеВТаблицеНастроекРеквизиты().Найти(Реквизит.Имя) <> Неопределено Тогда + Возврат; + КонецЕсли; + + НеиспользуемыеДляКонтроляРеквизиты = Справочники.Номенклатура.НеиспользуемыеДляКонтроляУникальностиРеквизиты(); + ТипыНеИспользуемыеДляКонтроля = Справочники.Номенклатура.НеиспользуемыеДляКонтроляЗаполненияИОтборовТипы(); + + ПредставлениеРеквизита = Реквизит.Представление; + + ЭтоНеиспользуемыйДляКонтроляРеквизит = (НеиспользуемыеДляКонтроляРеквизиты.Найти(Реквизит.Имя) <> Неопределено); + ЭтоНеиспользуемыйДляКонтроляТип = (ТипыНеИспользуемыеДляКонтроля.Найти(Реквизит.Имя) <> Неопределено); + ЭтоОбязательныйДляЗаполненияРеквизит = Реквизит.ОбязательныйДляЗаполнения; + + ЭтоРеквизитРекомендуемыйДляКонтроляУникальности = Реквизит.РекомендуемыйДляКонтроляУникальности; + + Отбор = Новый Структура("ИмяРеквизита, ЭтоДопРеквизит", Реквизит.Имя, Ложь); + + Если ВладелецРеквизита = "Номенклатура" Тогда + ИмяТЧ = "РеквизитыДляКонтроляНоменклатуры"; + Иначе + ИмяТЧ = "РеквизитыДляКонтроляХарактеристик"; + КонецЕсли; + + НайденныеСтроки = Объект[ИмяТЧ].НайтиСтроки(Отбор); + + ЭтоНоваяСтрока = Ложь; + + Если НайденныеСтроки.Количество() = 0 Тогда + СтрокаРеквизитовДляКонтроля = Объект[ИмяТЧ].Добавить(); + СтрокаРеквизитовДляКонтроля.ИмяРеквизита = Реквизит.Имя; + + ЭтоНоваяСтрока = Истина; + Иначе + СтрокаРеквизитовДляКонтроля = НайденныеСтроки[0]; + КонецЕсли; + + СтрокаРеквизитовДляКонтроля.ПредставлениеРеквизита = ПредставлениеРеквизита; + + Если Не СтрокаРеквизитовДляКонтроля.ЗаполнятьОбязательно Тогда + СтрокаРеквизитовДляКонтроля.ЗаполнятьОбязательно = ЭтоОбязательныйДляЗаполненияРеквизит; + КонецЕсли; + + Если Не СтрокаРеквизитовДляКонтроля.ОтображатьПриСоздании Тогда + СтрокаРеквизитовДляКонтроля.ОтображатьПриСоздании = + ЭтоОбязательноОтображаемыйРеквизит(Объект, Реквизит, "Номенклатура", Ложь, ЭтоОбязательныйДляЗаполненияРеквизит); + КонецЕсли; + + Если ЭтоНоваяСтрока + И Реквизит.Имя = "Штрихкод" Тогда + + РекомендуемыйДляКонтроляУникальности = Не ПолучитьФункциональнуюОпцию("ИспользоватьНеуникальныеШтрихкодыНоменклатуры"); + + СтрокаРеквизитовДляКонтроля.ОтображатьПриСоздании = Истина; + СтрокаРеквизитовДляКонтроля.Уникален = РекомендуемыйДляКонтроляУникальности; + СтрокаРеквизитовДляКонтроля.ДоступностьУникален = Не РекомендуемыйДляКонтроляУникальности; + + ИначеЕсли ЭтоНоваяСтрока + И ЭтоРеквизитРекомендуемыйДляКонтроляУникальности Тогда + + СтрокаРеквизитовДляКонтроля.Уникален = Истина; + СтрокаРеквизитовДляКонтроля.ОтображатьПриСоздании = Истина; + СтрокаРеквизитовДляКонтроля.ДоступностьУникален = Истина; + + ИначеЕсли ЭтоНеиспользуемыйДляКонтроляТип + Или ЭтоНеиспользуемыйДляКонтроляРеквизит Тогда + + СтрокаРеквизитовДляКонтроля.Уникален = Ложь; + СтрокаРеквизитовДляКонтроля.ДоступностьУникален = Ложь; + + Иначе + СтрокаРеквизитовДляКонтроля.ДоступностьУникален = Истина; + КонецЕсли; + + СтрокаРеквизитовДляКонтроля.ДоступностьЗаполнятьОбязательно = ДоступноИзменениеНастройкиОбязательностиЗаполненияРеквизита(Объект, + СтрокаРеквизитовДляКонтроля, + ВладелецРеквизита); + СтрокаРеквизитовДляКонтроля.ДоступностьОтображатьПриСоздании = ДоступноИзменениеНастройкиОтображенияРеквизита(Объект, + СтрокаРеквизитовДляКонтроля, + ВладелецРеквизита); +КонецПроцедуры + +Функция ЭтоОбязательноОтображаемыйРеквизит(Объект, ИмяРеквизита, ВладелецРеквизита, ЭтоДопРеквизит, ЗаполнятьОбязательно) + + Если ЭтоДопРеквизит Тогда + Возврат ЗаполнятьОбязательно; + КонецЕсли; + + Если ЗаполнятьОбязательно Тогда + Возврат Истина; + КонецЕсли; + + Если ВладелецРеквизита = "Номенклатура" Тогда + + ОсобенностьУчетаИлиКлючВидовПродукции = НоменклатураЛокализация.ОсобенностьУчетаИлиКлючВидовПродукции(Объект); + + ОбязательноОтображаемый = Справочники.Номенклатура.РеквизитОписание(ИмяРеквизита, + Объект.ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции, + Объект.ИспользованиеХарактеристик, + Объект.ИспользоватьСрокГодностиСерии).ОбязательныйДляОтображенияПриСоздании; + + Возврат ОбязательноОтображаемый; + + КонецЕсли; + + Возврат Ложь; + +КонецФункции + +Процедура УдалитьРеквизитДляКонтроля(Объект, ИмяРеквизита, ВладелецРеквизита) + + Отбор = Новый Структура("ИмяРеквизита", ИмяРеквизита); + КоллекцияРеквизитовДляКонтроля = КоллекцияРеквизитовДляКонтроля(Объект, ВладелецРеквизита); + + НайденныеСтроки = КоллекцияРеквизитовДляКонтроля.НайтиСтроки(Отбор); + + Если НайденныеСтроки.Количество() > 0 Тогда + + СтрокаТаблицыРеквизитов = НайденныеСтроки[0]; + КоллекцияРеквизитовДляКонтроля.Удалить(СтрокаТаблицыРеквизитов); + + КонецЕсли; + +КонецПроцедуры + +Процедура УдалитьРеквизитДляОтбора(Объект, ИмяРеквизита, ВладелецРеквизита) + + КоллекцияРеквизитовОтбора = КоллекцияРеквизитовОтбора(Объект, ВладелецРеквизита); + + МассивСтрок = КоллекцияРеквизитовОтбора.НайтиСтроки(Новый Структура("ИмяРеквизита", ИмяРеквизита)); + + Если МассивСтрок.Количество() > 0 Тогда + СтрокаТаблицыРеквизитов = МассивСтрок[0]; + КоллекцияРеквизитовОтбора.Удалить(СтрокаТаблицыРеквизитов); + КонецЕсли; + +КонецПроцедуры + +Процедура ПриИзмененииФлагаУникален(Объект, ВладелецРеквизита, ТекущиеДанные) Экспорт + + ОписаниеТиповБулево = Новый ОписаниеТипов("Булево"); + + Если ВладелецРеквизита <> "СерииНоменклатуры" + И ТекущиеДанные.Уникален Тогда + ТекущиеДанные.ЗаполнятьОбязательно = Истина; + ТекущиеДанные.ОтображатьПриСоздании = Истина; + КонецЕсли; + + // Если тип реквизита - Булево, то не включать контроль заполнения. + Если ТекущиеДанные.ЭтоДопРеквизит Тогда + + ТипЗначения = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущиеДанные.Свойство, "ТипЗначения"); + + Если ТипЗначения = ОписаниеТиповБулево Тогда + ТекущиеДанные.ЗаполнятьОбязательно = Ложь; + КонецЕсли; + + Иначе + + Если ВладелецРеквизита = "Номенклатура" Тогда + + ОсобенностьУчетаИлиКлючВидовПродукции = НоменклатураЛокализация.ОсобенностьУчетаИлиКлючВидовПродукции(Объект); + + ТипРеквизита = Справочники.Номенклатура.РеквизитОписание(ТекущиеДанные.ИмяРеквизита, + Объект.ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции, + Объект.ИспользованиеХарактеристик, + Объект.ИспользоватьСрокГодностиСерии).Тип; + + Если ТипРеквизита = ОписаниеТиповБулево Тогда + ТекущиеДанные.ЗаполнятьОбязательно = Ложь; + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + Если ВладелецРеквизита <> "СерииНоменклатуры" Тогда + ТекущиеДанные.ДоступностьОтображатьПриСоздании = ДоступноИзменениеНастройкиОтображенияРеквизита( + Объект, ТекущиеДанные, ВладелецРеквизита); + КонецЕсли; + +КонецПроцедуры + +// Выполняет заполнение таблицы настроек контроля реквизитов справочников Номенклатура и ХарактеристикиНоменклатуры. +// +// Параметры: +// Объект - СправочникОбъект.Номенклатура, СправочникОбъект.ХарактеристикиНоменклатуры - объект справочника. +// ВладелецРеквизитов - Строка - имя владельца реквизитов. +// +Процедура ЗаполнитьРеквизитыДляКонтроля(Объект, ВладелецРеквизитов) Экспорт + + Если ВладелецРеквизитов = "ХарактеристикиНоменклатуры" + И Не Объект.ИспользоватьХарактеристики Тогда + Объект.РеквизитыБыстрогоОтбораХарактеристик.Очистить(); + Возврат; + КонецЕсли; + + ОсобенностьУчетаИлиКлючВидовПродукции = НоменклатураЛокализация.ОсобенностьУчетаИлиКлючВидовПродукции(Объект); + + Если ВладелецРеквизитов = "ХарактеристикиНоменклатуры" Тогда + ЗависимостьОтТипаНоменклатуры = ЗначениеНастроекПовтИсп.ВсеРеквизитыХарактеристикНоменклатуры(Объект.ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции); + Иначе + ЗависимостьОтТипаНоменклатуры = ЗначениеНастроекПовтИсп.ВсеРеквизитыНоменклатуры(Объект.ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции, + Объект.ИспользоватьХарактеристики, + Объект.ИспользоватьСрокГодностиСерии); + КонецЕсли; + + Для Каждого НастройкаОтТипа Из ЗависимостьОтТипаНоменклатуры Цикл + + Если НастройкаОтТипа.Значение.Использование Тогда + ДобавитьРеквизитДляКонтроляИОтбораНоменклатуры(Объект, НастройкаОтТипа.Значение, ВладелецРеквизитов); + Иначе + УдалитьРеквизитДляКонтроля(Объект, НастройкаОтТипа.Ключ, ВладелецРеквизитов); + УдалитьРеквизитДляОтбора(Объект, НастройкаОтТипа.Ключ, ВладелецРеквизитов); + КонецЕсли; + + КонецЦикла; + + Если ВладелецРеквизитов = "ХарактеристикиНоменклатуры" Тогда + Объект.РеквизитыДляКонтроляХарактеристик.Сортировать("ПредставлениеРеквизита"); + Иначе + Объект.РеквизитыДляКонтроляНоменклатуры.Сортировать("ПредставлениеРеквизита"); + КонецЕсли; + +КонецПроцедуры + +// Заполнение дополнительных реквизитов +// +// Параметры: +// Объект - СправочникОбъект.ВидыНоменклатуры +// НазначениеДопРеквизитов - Строка +Процедура ЗаполнитьДопРеквизитыДляКонтроляИОтбора(Объект, НазначениеДопРеквизитов) Экспорт + + Если НазначениеДопРеквизитов = "ХарактеристикиНоменклатуры" + И Не Объект.ИспользоватьХарактеристики Тогда + Объект.РеквизитыДляКонтроляХарактеристик.Очистить(); + Возврат; + ИначеЕсли НазначениеДопРеквизитов = "СерииНоменклатуры" + И Не Объект.ИспользоватьСерии Тогда + Объект.РеквизитыДляКонтроляСерий.Очистить(); + Возврат; + КонецЕсли; + + ТипыНеИспользуемыеДляКонтроля = Справочники.Номенклатура.НеиспользуемыеДляКонтроляЗаполненияИОтборовТипы(); + + Отбор = Новый Структура("Свойство, ЭтоДопРеквизит"); + ВсеДопРеквизиты = Справочники.Номенклатура.ВсеДополнительныеРеквизиты(Объект.Ссылка, НазначениеДопРеквизитов); + + РеквизитыДляКонтроля = КоллекцияРеквизитовДляКонтроля(Объект, НазначениеДопРеквизитов); + РеквизитыБыстрогоОтбора = КоллекцияРеквизитовОтбора(Объект, НазначениеДопРеквизитов); + + УдаляемыеСтроки = Новый Массив; + + Для каждого ДопРеквизит Из РеквизитыДляКонтроля Цикл + Если Не ДопРеквизит.ЭтоДопРеквизит Тогда + Продолжить; + КонецЕсли; + + ЗаполнитьЗначенияСвойств(Отбор, ДопРеквизит); + + ОписаниеДопРеквизита = ВсеДопРеквизиты.НайтиСтроки(Отбор); + + Если ОписаниеДопРеквизита.Количество() = 0 Тогда + УдаляемыеСтроки.Добавить(ДопРеквизит); + Иначе + ЗаполнитьЗначенияСвойств(ДопРеквизит,ОписаниеДопРеквизита[0]); + КонецЕсли; + КонецЦикла; + + Для Каждого Строка Из УдаляемыеСтроки Цикл + РеквизитыДляКонтроля.Удалить(Строка); + КонецЦикла; + + Если РеквизитыБыстрогоОтбора <> Неопределено Тогда + УдаляемыеСтроки = Новый Массив; + + Для Каждого ДопРеквизит Из РеквизитыБыстрогоОтбора Цикл + Если Не ДопРеквизит.ЭтоДопРеквизит Тогда + Продолжить; + КонецЕсли; + + ЗаполнитьЗначенияСвойств(Отбор, ДопРеквизит); + + Если ВсеДопРеквизиты.НайтиСтроки(Отбор).Количество() = 0 Тогда + УдаляемыеСтроки.Добавить(ДопРеквизит); + КонецЕсли; + КонецЦикла; + + Для Каждого Строка Из УдаляемыеСтроки Цикл + РеквизитыБыстрогоОтбора.Удалить(Строка); + КонецЦикла; + КонецЕсли; + + Для Каждого ДопРеквизит Из ВсеДопРеквизиты Цикл + ТипЗначения = ДопРеквизит.Тип; + ЭтоНеиспользуемыйДляКонтроляТип = ТипыНеИспользуемыеДляКонтроля.Найти(ТипЗначения) <> Неопределено; + + ЗаполнитьЗначенияСвойств(Отбор, ДопРеквизит); + + НайденныеСтроки = РеквизитыДляКонтроля.НайтиСтроки(Отбор); + + Если НайденныеСтроки.Количество() > 0 Тогда + СтрокаРеквизитовДляКонтроля = НайденныеСтроки[0]; + СтрокаРеквизитовДляКонтроля.ПредставлениеРеквизита = ДопРеквизит.ПредставлениеРеквизита; + Иначе + СтрокаРеквизитовДляКонтроля = РеквизитыДляКонтроля.Добавить(); + ЗаполнитьЗначенияСвойств(СтрокаРеквизитовДляКонтроля, ДопРеквизит); + КонецЕсли; + + Если ДопРеквизит.ЗаполнятьОбязательно Тогда + СтрокаРеквизитовДляКонтроля.ЗаполнятьОбязательно = Истина; + Если НазначениеДопРеквизитов <> "СерииНоменклатуры" Тогда + СтрокаРеквизитовДляКонтроля.ОтображатьПриСоздании = Истина; + КонецЕсли; + КонецЕсли; + + СтрокаРеквизитовДляКонтроля.ДоступностьЗаполнятьОбязательно = Истина; + + Если НазначениеДопРеквизитов <> "СерииНоменклатуры" Тогда + Если Не ЭтоНеиспользуемыйДляКонтроляТип Тогда + СтрокаРеквизитовДляКонтроля.ДоступностьУникален = Истина; + Иначе + СтрокаРеквизитовДляКонтроля.Уникален = Ложь; + СтрокаРеквизитовДляКонтроля.ДоступностьУникален = Ложь; + КонецЕсли; + + СтрокаРеквизитовДляКонтроля.ДоступностьОтображатьПриСоздании = Не СтрокаРеквизитовДляКонтроля.ЗаполнятьОбязательно + И Не СтрокаРеквизитовДляКонтроля.Уникален; + КонецЕсли; + КонецЦикла; + + Если РеквизитыБыстрогоОтбора <> Неопределено Тогда + Отбор = Новый Структура("Свойство"); + + Для Каждого ДопРеквизит Из ВсеДопРеквизиты Цикл + ЗаполнитьЗначенияСвойств(Отбор, ДопРеквизит); + ИзменяемыеСтроки = РеквизитыБыстрогоОтбора.НайтиСтроки(Отбор); + + Для Каждого СтрокаРеквизитов Из ИзменяемыеСтроки Цикл + ЗаполнитьЗначенияСвойств(СтрокаРеквизитов, ДопРеквизит, "ПредставлениеРеквизита"); + КонецЦикла; + КонецЦикла; + КонецЕсли; + + Если РеквизитыДляКонтроля <> Неопределено Тогда + РеквизитыДляКонтроля.Сортировать("ПредставлениеРеквизита"); + КонецЕсли; + +КонецПроцедуры + +// Выполняет заполнение таблицы настроек ценообразования для ХарактеристикиНоменклатуры и Серий. +// +Процедура ЗаполнитьРеквизитыДляЦенообразования(Объект, ВладелецРеквизитов) Экспорт + +// ЭтоРеквизитыХарактеристик = ВладелецРеквизитов = "ХарактеристикиНоменклатуры"; + + Если ВладелецРеквизитов = "ХарактеристикиНоменклатуры" + И (Не Объект.ИспользоватьХарактеристики + Или Не Объект.НастройкиКлючаЦенПоХарактеристике = Перечисления.ВариантОтбораДляКлючаЦен.ИспользоватьПоРеквизитам) Тогда + Объект.РеквизитыХарактеристикДляКлючаЦен.Очистить(); + Возврат; + ИначеЕсли ВладелецРеквизитов = "СерииНоменклатуры" + И (Не Объект.ИспользоватьСерии + Или Не Объект.НастройкиКлючаЦенПоСерии = Перечисления.ВариантОтбораДляКлючаЦен.ИспользоватьПоРеквизитам) Тогда + Объект.РеквизитыСерийДляКлючаЦен.Очистить(); + Возврат; + КонецЕсли; + +КонецПроцедуры + +Функция КоллекцияРеквизитовДляКонтроля(ТекущийОбъект, ТипВладельцаНабораЭлементов) Экспорт + + Если ТипВладельцаНабораЭлементов = "Номенклатура" Тогда + Возврат ТекущийОбъект.РеквизитыДляКонтроляНоменклатуры; + ИначеЕсли ТипВладельцаНабораЭлементов = "ХарактеристикиНоменклатуры" Тогда + Возврат ТекущийОбъект.РеквизитыДляКонтроляХарактеристик; + ИначеЕсли ТипВладельцаНабораЭлементов = "СерииНоменклатуры" Тогда + Возврат ТекущийОбъект.РеквизитыДляКонтроляСерий; + Иначе + Возврат Неопределено; + КонецЕсли; + +КонецФункции + +Функция КоллекцияРеквизитовОтбора(ТекущийОбъект, ТипВладельцаНабораЭлементов) Экспорт + + Если ТипВладельцаНабораЭлементов = "Номенклатура" Тогда + Возврат ТекущийОбъект.РеквизитыБыстрогоОтбораНоменклатуры; + ИначеЕсли ТипВладельцаНабораЭлементов = "ХарактеристикиНоменклатуры" Тогда + Возврат ТекущийОбъект.РеквизитыБыстрогоОтбораХарактеристик; + Иначе + Возврат Неопределено; + КонецЕсли; + +КонецФункции + +Функция КоллекцияРеквизитовДляКлючаЦен(ТекущийОбъект, ТипВладельцаНабораЭлементов) Экспорт + + Если ТипВладельцаНабораЭлементов = "ХарактеристикиНоменклатуры" Тогда + Возврат ТекущийОбъект.РеквизитыХарактеристикДляКлючаЦен; + ИначеЕсли ТипВладельцаНабораЭлементов = "СерииНоменклатуры" Тогда + Возврат ТекущийОбъект.РеквизитыСерийДляКлючаЦен; + Иначе + Возврат Неопределено; + КонецЕсли; + +КонецФункции + +Функция ИспользоватьПроизводство() Экспорт + + ИспользоватьПроизводство = Ложь; //Для УТ + + + Возврат ИспользоватьПроизводство; + +КонецФункции + +Процедура ПроверитьПоТипуИОсобенностиНоменклатуруОчиститьВладельца(ВидНоменклатуры, ИмяРеквизитаВладелец) + + Если Не ЗначениеЗаполнено(ВидНоменклатуры[ИмяРеквизитаВладелец]) Тогда + Возврат; + КонецЕсли; + + ОтборВладельца = НоменклатураСервер.ОтборВладельцаПодчиненныхСправочников(ВидНоменклатуры, ИмяРеквизитаВладелец); + + Если Не ОбщегоНазначенияУТ.СсылкаСоответствуетОтбору(ВидНоменклатуры[ИмяРеквизитаВладелец], ОтборВладельца) Тогда + ВидНоменклатуры[ИмяРеквизитаВладелец] = Неопределено; + КонецЕсли; +КонецПроцедуры + +// Выполняет заполнение реквизитов ценообразования по умолчанию +// +// Параметры: +// ВидНоменклатуры - СправочникОбъект.ВидыНоменклатуры - Обрабатываемый объект. +// +Процедура УстановитьРеквизитыЦенообразованияПоУмолчанию(ВидНоменклатуры) Экспорт + + // Установка настройки ценообразования по характеристикам номенклатуры + ВидНоменклатуры.НастройкиКлючаЦенПоХарактеристике = Перечисления.ВариантОтбораДляКлючаЦен.НеИспользовать; + Если ВидНоменклатуры.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры + И ЗначениеЗаполнено(ВидНоменклатуры.ВладелецХарактеристик) Тогда + + НастройкиКлючаЦенПоХарактеристикеПоВладельцу = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ВидНоменклатуры.ВладелецХарактеристик,"НастройкиКлючаЦенПоХарактеристике"); + ВидНоменклатуры.НастройкиКлючаЦенПоХарактеристике = НастройкиКлючаЦенПоХарактеристикеПоВладельцу.НастройкиКлючаЦенПоХарактеристике; + + КонецЕсли; + + // Установка настройки ценообразования по сериям номенклатуры + ВидНоменклатуры.НастройкиКлючаЦенПоСерии = Перечисления.ВариантОтбораДляКлючаЦен.НеИспользовать; + Если ВидНоменклатуры.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры И ЗначениеЗаполнено(ВидНоменклатуры.ВладелецСерий) Тогда + + НастройкиКлючаЦенПоХарактеристикеПоВладельцу = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ВидНоменклатуры.ВладелецСерий,"НастройкиКлючаЦенПоСерии"); + ВидНоменклатуры.НастройкиКлючаЦенПоСерии = НастройкиКлючаЦенПоХарактеристикеПоВладельцу.НастройкиКлючаЦенПоСерии; + + КонецЕсли; + + // обработать табличные части ценообразования + ЗаполнитьРеквизитыДляЦенообразования(ВидНоменклатуры, "ХарактеристикиНоменклатуры"); + ЗаполнитьРеквизитыДляЦенообразования(ВидНоменклатуры, "СерииНоменклатуры"); + +КонецПроцедуры + +// Выполняет заполнение реквизитов ценообразования по умолчанию +// +// Параметры: +// ВидыНоменклатуры - Массив - Из элементов типа СправочникСсылка.ВидыНоменклатуры. +// ПараметрыУстановки - Структура - Параметры для установки. +// +Процедура УстановитьРеквизитыЦенообразования(ВидыНоменклатуры, ПараметрыУстановки) Экспорт + + Для Каждого ВидНоменклатуры Из ВидыНоменклатуры Цикл + + ВидНоменклатурыОбъект = Неопределено; + // Установка настройки ценообразования по характеристикам номенклатуры + Если Не ЗапретитьИспользованияХарактеристикДляЦенообразования(ВидНоменклатуры) И Не ПараметрыУстановки.НастройкиКлючаЦенПоХарактеристике = Неопределено Тогда + + ВидНоменклатурыОбъект = ВидНоменклатуры.ПолучитьОбъект();//СправочникОбъект.ВидыНоменклатуры + ВидНоменклатурыОбъект.НастройкиКлючаЦенПоХарактеристике = ПараметрыУстановки.НастройкиКлючаЦенПоХарактеристике; + + // обработать табличные части ценообразования + ЗаполнитьРеквизитыДляЦенообразования(ВидНоменклатурыОбъект, "ХарактеристикиНоменклатуры"); + + КонецЕсли; + + // Установка настройки ценообразования по сериям номенклатуры + Если Не ЗапретитьИспользованияСерииДляЦенообразования(ВидНоменклатуры) И Не ПараметрыУстановки.НастройкиКлючаЦенПоСерии = Неопределено Тогда + + Если ВидНоменклатурыОбъект = Неопределено Тогда + ВидНоменклатурыОбъект = ВидНоменклатуры.ПолучитьОбъект();//СправочникОбъект.ВидыНоменклатуры + КонецЕсли; + + ВидНоменклатурыОбъект.НастройкиКлючаЦенПоСерии = ПараметрыУстановки.НастройкиКлючаЦенПоСерии; + + // обработать табличные части ценообразования + ЗаполнитьРеквизитыДляЦенообразования(ВидНоменклатурыОбъект, "СерииНоменклатуры"); + + КонецЕсли; + + Если Не ПараметрыУстановки.НастройкиКлючаЦенПоУпаковке = Неопределено Тогда + + Если ВидНоменклатурыОбъект = Неопределено Тогда + ВидНоменклатурыОбъект = ВидНоменклатуры.ПолучитьОбъект();//СправочникОбъект.ВидыНоменклатуры + КонецЕсли; + + ВидНоменклатурыОбъект.НастройкиКлючаЦенПоУпаковке = ПараметрыУстановки.НастройкиКлючаЦенПоУпаковке; + + КонецЕсли; + + Если Не ВидНоменклатурыОбъект = Неопределено Тогда + Попытка + ВидНоменклатурыОбъект.Записать(); + Исключение + КонецПопытки; + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +Функция ЗапретитьИспользованияСерииДляЦенообразования(Знач ВидНоменклатуры) Экспорт + + Запретить = Ложь; + + Если НЕ ВидНоменклатуры.ИспользоватьСерии Тогда + Запретить = Истина; + КонецЕсли; + + Возврат Запретить; + +КонецФункции + +Функция ЗапретитьИспользованияХарактеристикДляЦенообразования(Знач ВидНоменклатуры) Экспорт + + Запретить = Ложь; + + Если Не ВидНоменклатуры.ИспользоватьХарактеристики + Или ВидНоменклатуры.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать + Или (ВидНоменклатуры.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры + И ВидНоменклатуры.НастройкиКлючаЦенПоХарактеристике = Перечисления.ВариантОтбораДляКлючаЦен.ИспользоватьПоРеквизитам) Тогда + + Запретить = Истина; + + КонецЕсли; + + Возврат Запретить; + +КонецФункции + +Функция ТекстЗапросаНастроекКонтроляУникальностиШтрихкода(ИспользоватьНеуникальныеШтрихкоды, ПоискЗаписей = Ложь) + + Если ИспользоватьНеуникальныеШтрихкоды Тогда + ТекстЗапроса = + "ВЫБРАТЬ + | РеквизитыДляКонтроля.Ссылка КАК Ссылка + |ИЗ + | Справочник.ВидыНоменклатуры.РеквизитыДляКонтроляНоменклатуры КАК РеквизитыДляКонтроля + |ГДЕ + | РеквизитыДляКонтроля.ИмяРеквизита = ""Штрихкод"" + | И РеквизитыДляКонтроля.Уникален"; + Иначе + ТекстЗапроса = + "ВЫБРАТЬ + | РеквизитыДляКонтроля.Ссылка КАК Ссылка + |ИЗ + | Справочник.ВидыНоменклатуры.РеквизитыДляКонтроляНоменклатуры КАК РеквизитыДляКонтроля + |ГДЕ + | РеквизитыДляКонтроля.ИмяРеквизита = ""Штрихкод"" + | И РеквизитыДляКонтроля.Уникален + | И РеквизитыДляКонтроля.ДоступностьУникален"; + КонецЕсли; + + Если ПоискЗаписей Тогда + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ВЫБРАТЬ", "ВЫБРАТЬ ПЕРВЫЕ 1"); // @query-part-1 @query-part-2 + КонецЕсли; + + Возврат ТекстЗапроса; + +КонецФункции + +#КонецОбласти + +#КонецОбласти + +#КонецЕсли +#КонецЕсли \ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Ext/ObjectModule.bsl b/src/Catalogs/ВидыНоменклатуры/Ext/ObjectModule.bsl new file mode 100644 index 0000000..fdbf52f --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Ext/ObjectModule.bsl @@ -0,0 +1,757 @@ +#Если НЕ МобильныйАвтономныйСервер Тогда +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область ОбработчикиСобытий + +Процедура ПередЗаписью(Отказ) + + Если ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект); + + Если ЭтоГруппа Тогда + Возврат; + КонецЕсли; + + ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый()); + ДополнительныеСвойства.Вставить("ИспользоватьСерии", Ложь); + ДополнительныеСвойства.Вставить("НастройкиСерийБерутсяИзДругогоВидаНоменклатуры", Ложь); + ДополнительныеСвойства.Вставить("ИспользоватьХарактеристики", Ложь); + ДополнительныеСвойства.Вставить("ИспользованиеХарактеристик", Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать); + ДополнительныеСвойства.Вставить("ПерезаполнитьХарактеристики", Ложь); + ДополнительныеСвойства.Вставить("ПерезаполнитьСерии", Ложь); + + Если Не ЭтоНовый() Тогда + СтарыеРеквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, + "ИспользоватьСерии, НастройкиСерийБерутсяИзДругогоВидаНоменклатуры, ИспользоватьХарактеристики, ИспользованиеХарактеристик, НастройкиКлючаЦенПоХарактеристике, НастройкиКлючаЦенПоСерии, РеквизитыХарактеристикДляКлючаЦен.ИмяРеквизита, РеквизитыСерийДляКлючаЦен.ИмяРеквизита"); + ЗаполнитьЗначенияСвойств(ДополнительныеСвойства, СтарыеРеквизиты); + + ДополнительныеСвойства.ПерезаполнитьХарактеристики = + НастройкиКлючаЦенПоХарактеристике <> Перечисления.ВариантОтбораДляКлючаЦен.НеИспользовать + И Не ЗначениеЗаполнено(ВладелецХарактеристик) + И Не НастройкиКлючаЦенПоХарактеристике = СтарыеРеквизиты.НастройкиКлючаЦенПоХарактеристике; + + Если НЕ ДополнительныеСвойства.ПерезаполнитьХарактеристики И Не ЗначениеЗаполнено(ВладелецХарактеристик) И НастройкиКлючаЦенПоХарактеристике = Перечисления.ВариантОтбораДляКлючаЦен.ИспользоватьПоРеквизитам Тогда + МассивСтарыеРеквизиты = СтарыеРеквизиты.РеквизитыХарактеристикДляКлючаЦенИмяРеквизита.Выгрузить().ВыгрузитьКолонку("ИмяРеквизита"); + МассивТекущиеРеквизиты = РеквизитыХарактеристикДляКлючаЦен.ВыгрузитьКолонку("ИмяРеквизита"); + ДополнительныеСвойства.ПерезаполнитьХарактеристики = Не ОбщегоНазначения.КоллекцииИдентичны(МассивСтарыеРеквизиты, МассивТекущиеРеквизиты); + КонецЕсли; + + ДополнительныеСвойства.ПерезаполнитьСерии = + НастройкиКлючаЦенПоСерии <> Перечисления.ВариантОтбораДляКлючаЦен.НеИспользовать + И Не ЗначениеЗаполнено(ВладелецСерий) + И Не НастройкиКлючаЦенПоСерии = СтарыеРеквизиты.НастройкиКлючаЦенПоСерии; + + Если НЕ ДополнительныеСвойства.ПерезаполнитьСерии И Не ЗначениеЗаполнено(ВладелецХарактеристик) И НастройкиКлючаЦенПоСерии = Перечисления.ВариантОтбораДляКлючаЦен.ИспользоватьПоРеквизитам Тогда + МассивСтарыеРеквизиты = СтарыеРеквизиты.РеквизитыСерийДляКлючаЦенИмяРеквизита.Выгрузить().ВыгрузитьКолонку("ИмяРеквизита"); + МассивТекущиеРеквизиты = РеквизитыСерийДляКлючаЦен.ВыгрузитьКолонку("ИмяРеквизита"); + ДополнительныеСвойства.ПерезаполнитьСерии = Не ОбщегоНазначения.КоллекцииИдентичны(МассивСтарыеРеквизиты, МассивТекущиеРеквизиты); + КонецЕсли; + КонецЕсли; + + // При необходимости перезаполним настройки ценообразования по владельцу + ОбновитьНастройкиЦенообразованияПоВладельцу("НастройкиКлючаЦенПоХарактеристике"); + + ОбновитьНастройкиЦенообразованияПоВладельцу("НастройкиКлючаЦенПоСерии"); + + Справочники.ВидыНоменклатуры.ОтработатьЛогикуСвязиРеквизитов(ЭтотОбъект); + + // Обновим элементы справочника НаборыДополнительныхРеквизитовИСведений и ПВХ ДополнительныеРеквизитыИСведения. + УправлениеСвойствамиУТ.ОбновитьПоляДополнительныхСвойств(ЭтотОбъект, + "Справочник_Номенклатура"); + УправлениеСвойствамиУТ.ОбновитьПоляДополнительныхСвойств(ЭтотОбъект, + "Справочник_ХарактеристикиНоменклатуры", + "НаборСвойствХарактеристик", + " " + НСтр("ru = '(Для характеристик)'"), + ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры + ИЛИ ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры); + УправлениеСвойствамиУТ.ОбновитьПоляДополнительныхСвойств(ЭтотОбъект, + "Справочник_СерииНоменклатуры", + "НаборСвойствСерий", + " " + НСтр("ru = '(Для серий)'")); + + ЗаполнитьТЧПолитикиУчетаСерийСкладамиИПодразделениями(); + + УстановкаРеквизитовИсторииПереходаНаНовыеФормулы(); + +КонецПроцедуры + +Процедура ПриКопировании(ОбъектКопирования) + + МетаданныеОбъекта = Метаданные(); // ОбъектМетаданныхСправочник + + Если Не ЭтоГруппа Тогда + + НаборСвойств = Справочники.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка(); + НаборСвойствХарактеристик = Справочники.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка(); + НаборСвойствСерий = Справочники.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка(); + + ОбъектМетаданныхРеквизит = МетаданныеОбъекта.Реквизиты.ШаблонНаименованияДляПечатиНоменклатуры; // ОбъектМетаданныхРеквизит + ШаблонНаименованияДляПечатиНоменклатуры = ОбъектМетаданныхРеквизит.ЗначениеЗаполнения; + ШаблонРабочегоНаименованияНоменклатуры = ""; + ЗапретРедактированияРабочегоНаименованияНоменклатуры = Ложь; + ЗапретРедактированияНаименованияДляПечатиНоменклатуры = Ложь; + + ОбъектМетаданныхРеквизит = МетаданныеОбъекта.Реквизиты.ШаблонНаименованияДляПечатиХарактеристики; // ОбъектМетаданныхРеквизит + ШаблонНаименованияДляПечатиХарактеристики = ОбъектМетаданныхРеквизит.ЗначениеЗаполнения; + ШаблонРабочегоНаименованияХарактеристики = ""; + ЗапретРедактированияРабочегоНаименованияХарактеристики = Ложь; + ЗапретРедактированияНаименованияДляПечатиХарактеристики = Ложь; + + ШаблонРабочегоНаименованияСерии = ""; + + Если ПолучитьФункциональнуюОпцию("ИспользоватьТоварныеКатегории") Тогда + Если Не ОбъектКопирования.ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры Тогда + ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры = Истина; + ВладелецТоварныхКатегорий = ОбъектКопирования.Ссылка; + КонецЕсли; + КонецЕсли; + + Если ОбъектКопирования.ИспользоватьСерии Тогда + Если Не ОбъектКопирования.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры Тогда + НастройкиСерийБерутсяИзДругогоВидаНоменклатуры = Истина; + ВладелецСерий = ОбъектКопирования.Ссылка; + КонецЕсли; + КонецЕсли; + + Если ОбъектКопирования.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры Тогда + ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры; + ВладелецХарактеристик = ОбъектКопирования.Ссылка; + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) + + Если ЭтоГруппа Тогда + Возврат; + КонецЕсли; + + МассивНепроверяемыхРеквизитов = Новый Массив; + Если Не Справочники.ГруппыДоступаНоменклатуры.ИспользуютсяГруппыДоступа() + ИЛИ Не ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоВидовНоменклатуры") Тогда + МассивНепроверяемыхРеквизитов.Добавить("ГруппаДоступа"); + КонецЕсли; + + МассивНепроверяемыхРеквизитов.Добавить("ПолитикиУчетаСерий"); + МассивНепроверяемыхРеквизитов.Добавить("ПолитикиУчетаСерий.Склад"); + МассивНепроверяемыхРеквизитов.Добавить("ПолитикиУчетаСерий.ПолитикаУчетаСерий"); + + Если ИспользоватьСерии + И Не НастройкиСерийБерутсяИзДругогоВидаНоменклатуры Тогда + + Если Не (ИспользоватьСрокГодностиСерии + Или ИспользоватьДатуПроизводстваСерии) Тогда + + МассивНепроверяемыхРеквизитов.Добавить("ТочностьУказанияСрокаГодностиСерии"); + + КонецЕсли; + + КлючевыеРеквизиты = Новый Массив; + КлючевыеРеквизиты.Добавить("Склад"); + + ОбщегоНазначенияУТ.ПроверитьНаличиеДублейСтрокТЧ(ЭтотОбъект, "ПолитикиУчетаСерий", КлючевыеРеквизиты, Отказ,,Ложь); + + Если Не Отказ + И ПолитикаУчетаСерий = Справочники.ПолитикиУчетаСерий.СерииНеИспользуются + И ПолитикиУчетаСерий.НайтиСтроки(Новый Структура("ПолитикаУчетаСерий", + Справочники.ПолитикиУчетаСерий.СерииНеИспользуются)).Количество() + = ПолитикиУчетаСерий.Количество() Тогда + ТекстСообщения = НСтр("ru = 'Включено использование серий, но политика учета серий не назначена ни одному складу.'"); + + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения,Ссылка,,,Отказ); + КонецЕсли; + + ОписанияИспользованияРеквизитовСерии = Справочники.ВидыНоменклатуры.ОписанияИспользованияРеквизитовСерии(); + + ЕстьВключеннаяНастройка = Ложь; + + Для Каждого ОписаниеРеквизита Из ОписанияИспользованияРеквизитовСерии Цикл + Если ЭтотОбъект[ОписаниеРеквизита.ИмяНастройки] Тогда + ЕстьВключеннаяНастройка = Истина; + Прервать; + КонецЕсли; + КонецЦикла; + + Если Не ЕстьВключеннаяНастройка Тогда + ТекстСообщения = НСтр("ru = 'Включено использование серий, но не настроено, какие реквизиты серии будут использоваться. Необходимо выключить использование хотя бы одного реквизита.'"); + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения,Ссылка,,,Отказ); + КонецЕсли; + + Иначе + + МассивНепроверяемыхРеквизитов.Добавить("ТочностьУказанияСрокаГодностиСерии"); + МассивНепроверяемыхРеквизитов.Добавить("НастройкаИспользованияСерий"); + МассивНепроверяемыхРеквизитов.Добавить("ПолитикаУчетаСерий"); + + КонецЕсли; + + Если Не НастройкиСерийБерутсяИзДругогоВидаНоменклатуры Тогда + МассивНепроверяемыхРеквизитов.Добавить("ВладелецСерий"); + Иначе + МассивНепроверяемыхРеквизитов.Добавить("ВладелецСерий"); + Если Не ЗначениеЗаполнено(ВладелецСерий) Тогда + ТекстСообщения = НСтр("ru = 'Сделана настройка, что серии используются также, как в другом виде номенклатуры, но при этом не выбран этот вид.'"); + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения,,"ВариантЗаданияНастроекСерий",, Отказ); + КонецЕсли; + КонецЕсли; + + Если Не ИспользоватьХарактеристики Тогда + МассивНепроверяемыхРеквизитов.Добавить("ИспользованиеХарактеристик"); + МассивНепроверяемыхРеквизитов.Добавить("ВладелецХарактеристик"); + ИначеЕсли ИспользованиеХарактеристик <> Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры Тогда + МассивНепроверяемыхРеквизитов.Добавить("ВладелецХарактеристик"); + Иначе + МассивНепроверяемыхРеквизитов.Добавить("ВладелецХарактеристик"); + Если Не ЗначениеЗаполнено(ВладелецХарактеристик) Тогда + ТекстСообщения = НСтр("ru = 'Сделана настройка, характеристики общие с другим видом номенклатуры, но при этом не выбран этот вид.'"); + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения,,"ИспользованиеХарактеристик","Объект", Отказ); + КонецЕсли; + КонецЕсли; + + Если Не ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры Тогда + МассивНепроверяемыхРеквизитов.Добавить("ВладелецТоварныхКатегорий"); + Иначе + МассивНепроверяемыхРеквизитов.Добавить("ВладелецТоварныхКатегорий"); + Если Не ЗначениеЗаполнено(ВладелецТоварныхКатегорий) Тогда + ТекстСообщения = НСтр("ru = 'Сделана настройка, товарные категории общие с другим видом номенклатуры, но при этом не выбран этот вид.'"); + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения,,"НастройкаТоварныхКатегорий",, Отказ); + КонецЕсли; + КонецЕсли; + + Если Не Справочники.ГруппыДоступаНоменклатуры.ИспользуютсяГруппыДоступа() Тогда + МассивНепроверяемыхРеквизитов.Добавить("ГруппаДоступа"); + КонецЕсли; + + Если Не ИспользоватьУпаковки Тогда + МассивНепроверяемыхРеквизитов.Добавить("НаборУпаковок"); + КонецЕсли; + + Если Не ПоставляетсяВМногооборотнойТаре Тогда + МассивНепроверяемыхРеквизитов.Добавить("НоменклатураМногооборотнаяТара"); + МассивНепроверяемыхРеквизитов.Добавить("ХарактеристикаМногооборотнаяТара"); + ИначеЕсли Не Справочники.Номенклатура.ХарактеристикиИспользуются(НоменклатураМногооборотнаяТара) Тогда + МассивНепроверяемыхРеквизитов.Добавить("ХарактеристикаМногооборотнаяТара"); + КонецЕсли; + + СтруктураШаблонов = Новый Структура; + СтруктураШаблонов.Вставить("ШаблонНаименованияДляПечатиНоменклатуры", ШаблонНаименованияДляПечатиНоменклатуры); + СтруктураШаблонов.Вставить("ШаблонНаименованияДляПечатиХарактеристики", ШаблонНаименованияДляПечатиХарактеристики); + СтруктураШаблонов.Вставить("ШаблонРабочегоНаименованияНоменклатуры", ШаблонРабочегоНаименованияНоменклатуры); + СтруктураШаблонов.Вставить("ШаблонРабочегоНаименованияХарактеристики", ШаблонРабочегоНаименованияХарактеристики); + + ШаблонТекстаОшибки = НСтр("ru='В формуле шаблона ""%ИмяШаблона%"" обнаружены ошибки'"); + МетаданныеОбъекта = Метаданные(); + + Для Каждого Элемент Из СтруктураШаблонов Цикл + + Шаблон = Элемент.Значение; + + Если ЗначениеЗаполнено(Шаблон) Тогда + + ТекстОшибки = СтрЗаменить( + ШаблонТекстаОшибки, + "%ИмяШаблона%", + МетаданныеОбъекта.Реквизиты[Элемент.Ключ].Синоним); + + ОжидаемыйТипРезультата = Новый ОписаниеТипов("Строка"); + ОперандыФормулы = РаботаСФормуламиКлиентСервер.ОперандыТекстовойФормулы(Шаблон); + ПараметрыСообщенийПроверкиФормулы = РаботаСФормулами.ПараметрыПроверкиФормулы(); + ПараметрыСообщенийПроверкиФормулы.Поле = Элемент.Ключ; + ПараметрыСообщенийПроверкиФормулы.ПутьКДанным = "Объект"; + ПараметрыСообщенийПроверкиФормулы.СообщениеОбОшибке = ТекстОшибки; + + НаборыСвойств = Новый Структура("НаборСвойств, НаборСвойствСерий, НаборСвойствХарактеристик"); + ЗаполнитьЗначенияСвойств(НаборыСвойств, ЭтотОбъект); + + ДеревоОперандов = Справочники.ВидыНоменклатуры.ПодготовитьДеревоОперандов(НаборыСвойств, Элемент.Ключ); + + ТипыОперандов = Новый Соответствие; + Справочники.ВидыНоменклатуры.ПолучитьТипыОперандов(ДеревоОперандов, ТипыОперандов); + + ПараметрыСообщенийПроверкиФормулы.Вставить("ТипыОперандов", Новый ФиксированноеСоответствие(ТипыОперандов)); + + Если Не РаботаСФормулами.ПроверитьФормулу(Шаблон, ОперандыФормулы, ОжидаемыйТипРезультата, ПараметрыСообщенийПроверкиФормулы) Тогда + Отказ = Истина; + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + + Если НастройкиКлючаЦенПоХарактеристике = Перечисления.ВариантОтбораДляКлючаЦен.ИспользоватьПоРеквизитам + И ИспользованиеХарактеристик <> Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры + И РеквизитыХарактеристикДляКлючаЦен.Количество() = 0 Тогда + + ТекстСообщения = НСтр("ru = 'Включено использование характеристик в ценообразовании по реквизитам, но не выбран ни один реквизит.'"); + + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения,Ссылка,,,Отказ); + + КонецЕсли; + + Если НастройкиКлючаЦенПоСерии = Перечисления.ВариантОтбораДляКлючаЦен.ИспользоватьПоРеквизитам и Не НастройкиСерийБерутсяИзДругогоВидаНоменклатуры Тогда + Если РеквизитыСерийДляКлючаЦен.Количество() = 0 Тогда + + ТекстСообщения = НСтр("ru = 'Включено использование серий в ценообразовании по реквизитам, но не выбран ни один реквизит.'"); + + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения,Ссылка,,,Отказ); + + КонецЕсли; + + КонецЕсли; + + ПроверитьСовпадающиеРеквизитыДляОтбора(Отказ); + + ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов); + +КонецПроцедуры + +Процедура ПриЗаписи(Отказ) + + Если ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + Если ЭтоГруппа Тогда + Возврат; + КонецЕсли; + + Если ДополнительныеСвойства.ЭтоНовый + И Не ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоВидовНоменклатуры") Тогда + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВидыНоменклатуры.Ссылка) КАК КоличествоВидов + |ИЗ + | Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры + |ГДЕ + | НЕ ВидыНоменклатуры.ЭтоГруппа"; + + Выборка = Запрос.Выполнить().Выбрать(); + + Если Выборка.Следующий() Тогда + + Если Выборка.КоличествоВидов > 2 Тогда + УстановитьПривилегированныйРежим(Истина); + + Константы.ИспользоватьНесколькоВидовНоменклатуры.Установить(Истина); + + УстановитьПривилегированныйРежим(Ложь); + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + + ОбновитьФлагиИспользованияСерийНаСкладахИВПроизводстве(); + ОбновитьСвязанныеВидыНоменклатуры(); + + РезультатОбновления = УстановкаЦенСервер.ОбновитьХарактеристикииСерииЦенообразования(Ссылка, ДополнительныеСвойства); + + Если Не РезультатОбновления.Результат Тогда + Отказ = Истина; + КонецЕсли; + +КонецПроцедуры + +Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка) + + Если ЭтоГруппа Тогда + Возврат; + КонецЕсли; + + Справочники.ВидыНоменклатуры.ЗаполнитьРеквизитыПоУмолчанию(ЭтотОбъект); + Справочники.ВидыНоменклатуры.ОтработатьЛогикуСвязиРеквизитов(ЭтотОбъект); + +КонецПроцедуры + +Процедура ПередУдалением(Отказ) + + Если ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + Если ЭтоГруппа Тогда + Возврат; + КонецЕсли; + + УправлениеСвойствами.ПередУдалениемВидаОбъекта(ЭтотОбъект, "НаборСвойств"); + УправлениеСвойствами.ПередУдалениемВидаОбъекта(ЭтотОбъект, "НаборСвойствСерий"); + УправлениеСвойствами.ПередУдалениемВидаОбъекта(ЭтотОбъект, "НаборСвойствХарактеристик"); + +КонецПроцедуры + +Процедура ПриЧтенииПредставленийНаСервере() Экспорт + + МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура УстановкаРеквизитовИсторииПереходаНаНовыеФормулы() + + Если ПустаяСтрока(ШаблонНаименованияДляПечатиНоменклатурыИсторияПереходаНаНовыеФормулы) + И НЕ ПустаяСтрока(ШаблонНаименованияДляПечатиНоменклатуры) Тогда + ШаблонНаименованияДляПечатиНоменклатурыИсторияПереходаНаНовыеФормулы = ШаблонНаименованияДляПечатиНоменклатуры; + КонецЕсли; + Если ПустаяСтрока(ШаблонНаименованияДляПечатиХарактеристикиИсторияПереходаНаНовыеФормулы) + И НЕ ПустаяСтрока(ШаблонНаименованияДляПечатиХарактеристики) Тогда + ШаблонНаименованияДляПечатиХарактеристикиИсторияПереходаНаНовыеФормулы = ШаблонНаименованияДляПечатиХарактеристики; + КонецЕсли; + Если ПустаяСтрока(ШаблонРабочегоНаименованияНоменклатурыИсторияПереходаНаНовыеФормулы) + И НЕ ПустаяСтрока(ШаблонРабочегоНаименованияНоменклатуры) Тогда + ШаблонРабочегоНаименованияНоменклатурыИсторияПереходаНаНовыеФормулы = ШаблонРабочегоНаименованияНоменклатуры; + КонецЕсли; + Если ПустаяСтрока(ШаблонРабочегоНаименованияСерииИсторияПереходаНаНовыеФормулы) + И НЕ ПустаяСтрока(ШаблонРабочегоНаименованияСерии) Тогда + ШаблонРабочегоНаименованияСерииИсторияПереходаНаНовыеФормулы = ШаблонРабочегоНаименованияСерии; + КонецЕсли; + Если ПустаяСтрока(ШаблонРабочегоНаименованияХарактеристикиИсторияПереходаНаНовыеФормулы) + И НЕ ПустаяСтрока(ШаблонРабочегоНаименованияХарактеристики) Тогда + ШаблонРабочегоНаименованияХарактеристикиИсторияПереходаНаНовыеФормулы = ШаблонРабочегоНаименованияХарактеристики; + КонецЕсли; + +КонецПроцедуры + +Процедура ОбновитьФлагиИспользованияСерийНаСкладахИВПроизводстве() + + Если Не ПолучитьФункциональнуюОпцию("ИспользоватьСерииНоменклатуры") Тогда + Возврат; + КонецЕсли; + + Если ДополнительныеСвойства.Свойство("ПропуститьОбновлениеФлагаИспользованияСерий") Тогда + Возврат; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ПолитикиУчетаСерий.Склад, + | ИСТИНА КАК ИспользоватьСерии, + | МАКСИМУМ(ПолитикиУчетаСерий.ПолитикаУчетаСерий.УчитыватьСебестоимостьПоСериям) КАК УчитыватьСебестоимостьПоСериям + |ПОМЕСТИТЬ ВидыНоменклатуры + |ИЗ + | Справочник.ВидыНоменклатуры.ПолитикиУчетаСерий КАК ПолитикиУчетаСерий + | + |СГРУППИРОВАТЬ ПО + | ПолитикиУчетаСерий.Склад + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | Склады.Ссылка КАК Склад, + | ЕСТЬNULL(ВидыНоменклатуры.ИспользоватьСерии, ЛОЖЬ) КАК ИспользоватьСерииНоменклатуры, + | ЕСТЬNULL(ВидыНоменклатуры.УчитыватьСебестоимостьПоСериям, ЛОЖЬ) КАК УчитыватьСебестоимостьПоСериям + |ИЗ + | Справочник.Склады КАК Склады + | ЛЕВОЕ СОЕДИНЕНИЕ ВидыНоменклатуры КАК ВидыНоменклатуры + | ПО Склады.Ссылка = ВидыНоменклатуры.Склад + |ГДЕ + | НЕ Склады.ЭтоГруппа + | И (ЕСТЬNULL(ВидыНоменклатуры.ИспользоватьСерии, ЛОЖЬ) <> Склады.ИспользоватьСерииНоменклатуры + | ИЛИ ЕСТЬNULL(ВидыНоменклатуры.УчитыватьСебестоимостьПоСериям, ЛОЖЬ) <> Склады.УчитыватьСебестоимостьПоСериям)"; + + + Выборка = Запрос.Выполнить().Выбрать(); + + Пока Выборка.Следующий() Цикл + + Если ТипЗнч(Выборка.Склад) = Тип("СправочникСсылка.Склады") Тогда + + СкладОбъект = Выборка.Склад.ПолучитьОбъект(); + + СкладОбъект.ИспользоватьСерииНоменклатуры = Выборка.ИспользоватьСерииНоменклатуры; + СкладОбъект.УчитыватьСебестоимостьПоСериям = Выборка.УчитыватьСебестоимостьПоСериям; + + СкладОбъект.ДополнительныеСвойства.Вставить("ПропуститьОбновлениеФлагаИспользованияСерий"); + + СкладОбъект.Записать(); + + Иначе + + ПодразделениеОбъект = Выборка.Склад.ПолучитьОбъект(); + + ПодразделениеОбъект.ИспользоватьСерииНоменклатуры = Выборка.ИспользоватьСерииНоменклатуры; + ПодразделениеОбъект.УчитыватьСебестоимостьПоСериям = Выборка.УчитыватьСебестоимостьПоСериям; + + ПодразделениеОбъект.ДополнительныеСвойства.Вставить("ПропуститьОбновлениеФлагаИспользованияСерий"); + ПодразделениеОбъект.Записать(); + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +// Добавляет в ТЧ ПолитикиУчетаСерий склады и производственные подразделения +// которые в ТЧ еще не добавлены. +// +Процедура ЗаполнитьТЧПолитикиУчетаСерийСкладамиИПодразделениями() + + Если ДополнительныеСвойства.Свойство("ПропуститьЗаполнениеТЧПолитикиУчетаСерий") Тогда + Возврат; + КонецЕсли; + + Запрос = Новый Запрос(); + Запрос.Текст = + "ВЫБРАТЬ + | ПолитикиУчетаСерий.Склад КАК Склад, + | ПолитикиУчетаСерий.ПолитикаУчетаСерий КАК ПолитикаУчетаСерий + |ПОМЕСТИТЬ ВТПолитикиУчетаСерий + |ИЗ + | &ПолитикиУчетаСерий КАК ПолитикиУчетаСерий + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | Склады.Ссылка КАК Склад, + | &ПолитикаУчетаСерийПоУмолчанию КАК ПолитикаУчетаСерий + |ИЗ + | Справочник.Склады КАК Склады + | ЛЕВОЕ СОЕДИНЕНИЕ ВТПолитикиУчетаСерий КАК ПолитикиУчетаСерий + | ПО Склады.Ссылка = ПолитикиУчетаСерий.Склад + |ГДЕ + | ПолитикиУчетаСерий.Склад ЕСТЬ NULL + | И НЕ Склады.ЭтоГруппа + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | Подразделения.Ссылка КАК Склад, + | &ПолитикаУчетаСерийПоУмолчанию КАК ПолитикаУчетаСерий + |ИЗ + | Справочник.СтруктураПредприятия КАК Подразделения + | ЛЕВОЕ СОЕДИНЕНИЕ ВТПолитикиУчетаСерий КАК ПолитикиУчетаСерий + | ПО Подразделения.Ссылка = ПолитикиУчетаСерий.Склад + |ГДЕ + | ПолитикиУчетаСерий.Склад ЕСТЬ NULL + | И Подразделения.ПроизводственноеПодразделение"; + + Запрос.УстановитьПараметр("ПолитикиУчетаСерий", ПолитикиУчетаСерий.Выгрузить()); + Запрос.УстановитьПараметр("ПолитикаУчетаСерийПоУмолчанию", ПолитикаУчетаСерий); + + УстановитьПривилегированныйРежим(Истина); + Выборка = Запрос.Выполнить().Выбрать(); + УстановитьПривилегированныйРежим(Ложь); + + Пока Выборка.Следующий() Цикл + НоваяСтрока = ПолитикиУчетаСерий.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка); + КонецЦикла; + +КонецПроцедуры + +Процедура ОбновитьСвязанныеВидыНоменклатуры() + + Если ДополнительныеСвойства.ЭтоНовый Тогда + Возврат; + КонецЕсли; + + ОбработанныеВидыНоменклатуры = Новый Массив(); + + Если ДополнительныеСвойства.ИспользоватьСерии + И Не ДополнительныеСвойства.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры Тогда + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ВидыНоменклатуры.Ссылка КАК ВидНоменклатуры + |ИЗ + | Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры + |ГДЕ + | ВидыНоменклатуры.ВладелецСерий = &ВладелецСерий"; + + Запрос.УстановитьПараметр("ВладелецСерий", Ссылка); + + Выборка = Запрос.Выполнить().Выбрать(); + + Пока Выборка.Следующий() Цикл + + ОбработанныеВидыНоменклатуры.Добавить(Выборка.ВидНоменклатуры); + + ИзменяемыйОбъект = Выборка.ВидНоменклатуры.ПолучитьОбъект(); + + ИзменяемыйОбъект.ИспользоватьСерии = ИспользоватьСерии; + Если Не ИспользоватьСерии Тогда + ИзменяемыйОбъект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры = Ложь; + // Остальные поля очистятся при записи + ИзменяемыйОбъект.Записать(); + Продолжить; + КонецЕсли; + + ИзменяемыйОбъект.НастройкаИспользованияСерий = НастройкаИспользованияСерий; + ИзменяемыйОбъект.ТочностьУказанияСрокаГодностиСерии = ТочностьУказанияСрокаГодностиСерии; + ИзменяемыйОбъект.ПолитикиУчетаСерий.Загрузить(ПолитикиУчетаСерий.Выгрузить()); + ИзменяемыйОбъект.НастройкиКлючаЦенПоСерии = НастройкиКлючаЦенПоСерии; + + // Остальные поля заполнятся при записи + ИзменяемыйОбъект.ДополнительныеСвойства.Вставить("ПропуститьЗаполнениеТЧПолитикиУчетаСерий"); + ИзменяемыйОбъект.ДополнительныеСвойства.Вставить("ПропуститьОбновлениеФлагаИспользованияСерий"); + + ИзменяемыйОбъект.Записать(); + + КонецЦикла; + КонецЕсли; + + Если ДополнительныеСвойства.ИспользоватьХарактеристики + И Не ДополнительныеСвойства.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры Тогда + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ВидыНоменклатуры.Ссылка КАК ВидНоменклатуры + |ИЗ + | Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры + |ГДЕ + | ВидыНоменклатуры.ВладелецХарактеристик = &ВладелецХарактеристик + | И НЕ ВидыНоменклатуры.Ссылка В (&ОбработанныеВидыНоменклатуры)"; + + Запрос.УстановитьПараметр("ВладелецХарактеристик", Ссылка); + Запрос.УстановитьПараметр("ОбработанныеВидыНоменклатуры", ОбработанныеВидыНоменклатуры); + + Выборка = Запрос.Выполнить().Выбрать(); + + Пока Выборка.Следующий() Цикл + + ИзменяемыйОбъект = Выборка.ВидНоменклатуры.ПолучитьОбъект(); + ИзменяемыйОбъект.НастройкиКлючаЦенПоХарактеристике = НастройкиКлючаЦенПоХарактеристике; + + // Остальные поля заполнятся при записи + ИзменяемыйОбъект.ДополнительныеСвойства.Вставить("ПропуститьЗаполнениеТЧПолитикиУчетаСерий"); + ИзменяемыйОбъект.ДополнительныеСвойства.Вставить("ПропуститьОбновлениеФлагаИспользованияСерий"); + + ИзменяемыйОбъект.Записать(); + + КонецЦикла; + КонецЕсли; + +КонецПроцедуры + +// Проверяет, есть ли совпадающие реквизиты для быстрого отбора номенклатуры и характеристик. +// Если есть, то выводит сообщение пользователю, т.к. не допускается добавлять один и тот же +// дополнительный реквизит в панель быстрого отбора и для номенклатуры и для характеристик. +// Если требуется такая настройка, то следует создать два отдельных доп. реквизита +// и соответственно указать их для номенклатуры и для характеристик. +// +// Например: +// Марка (для номенклатуры) и Марка (для характеристик). +// +// Параметры: +// Отказ - Булево, Неопределено - переменная в которую записывается флаг отказа. +// +Процедура ПроверитьСовпадающиеРеквизитыДляОтбора(Отказ) + + Если Не ИспользоватьХарактеристики Тогда + Возврат; + КонецЕсли; + + СовпадающиеРеквизиты = СовпадающиеРеквизитыОтбораНоменклатурыХарактеристик(); + + Если СовпадающиеРеквизиты.Количество() > 0 Тогда + + Отказ = Истина; + + Для каждого ПараметрыРеквизита Из СовпадающиеРеквизиты Цикл + + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Дополнительный реквизит для отбора номенклатуры в строке %1 совпадает с дополнительным реквизитом для отбора характеристик.'"), + ПараметрыРеквизита.НомерСтроки); + + Поле = "РеквизитыБыстрогоОтбораНоменклатуры[" + Формат(ПараметрыРеквизита.ИндексСтроки, "ЧЦ=10; ЧГ=0") + "].ПредставлениеРеквизита"; + + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, , Поле, "Объект"); + + КонецЦикла; + + КонецЕсли; + +КонецПроцедуры + +// Возвращаемое значение: +// Массив из Структура: +// * Свойство - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения +// * НомерСтроки - Число +// * ИндексСтроки - Число +// +Функция СовпадающиеРеквизитыОтбораНоменклатурыХарактеристик() + + СовпадающиеРеквизиты = Новый Массив; + + Отбор = Новый Структура("Свойство"); + + Для каждого СтрокаТабл Из РеквизитыБыстрогоОтбораНоменклатуры Цикл + + Если Не СтрокаТабл.ЭтоДопРеквизит + ИЛИ Не СтрокаТабл.Используется Тогда + Продолжить; + КонецЕсли; + + ЗаполнитьЗначенияСвойств(Отбор, СтрокаТабл); + + МассивСтрок = РеквизитыБыстрогоОтбораХарактеристик.НайтиСтроки(Отбор); + + Если МассивСтрок.Количество() > 0 Тогда + ПараметрыРеквизита = Новый Структура("Свойство, НомерСтроки, ИндексСтроки", + СтрокаТабл.Свойство, СтрокаТабл.НомерСтроки, РеквизитыБыстрогоОтбораНоменклатуры.Индекс(СтрокаТабл)); + + СовпадающиеРеквизиты.Добавить(ПараметрыРеквизита); + КонецЕсли; + + КонецЦикла; + + Возврат СовпадающиеРеквизиты; + +КонецФункции + +// Обновляет настройки ценообразования по владельцу +// +// Параметры: +// ИмяРеквизита - Строка - по характеристикам или сериям. +// +Процедура ОбновитьНастройкиЦенообразованияПоВладельцу(ИмяРеквизита) + + Если ИмяРеквизита = "НастройкиКлючаЦенПоХарактеристике" Тогда + ВладелецНастроек = ВладелецХарактеристик; + ИмяТабличнойЧасти = "РеквизитыХарактеристикДляКлючаЦен"; + Иначе + ВладелецНастроек = ВладелецСерий; + ИмяТабличнойЧасти = "РеквизитыСерийДляКлючаЦен"; + КонецЕсли; + + Если Не ЗначениеЗаполнено(ВладелецНастроек) Тогда + Возврат; + КонецЕсли; + + РеквизитОбъекта = ЭтотОбъект[ИмяРеквизита]; + + РеквизитОбъекта = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВладелецНастроек, ИмяРеквизита); + + Если ЭтотОбъект[ИмяРеквизита] <> РеквизитОбъекта Тогда + ЭтотОбъект[ИмяРеквизита] = РеквизитОбъекта; + КонецЕсли; + + Если РеквизитОбъекта = Перечисления.ВариантОтбораДляКлючаЦен.ИспользоватьПоРеквизитам Тогда + // получить список доп реквизитов по которым искать хар-ку + РеквизитыДляКлючаЦен = Справочники.ВидыНоменклатуры.ПолучитьРеквизитыДляКлючаЦен(ВладелецНастроек, "Характеристики"); + ЭтотОбъект[ИмяТабличнойЧасти].Загрузить(РеквизитыДляКлючаЦен); + Иначе + ЭтотОбъект[ИмяТабличнойЧасти].Очистить(); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#КонецЕсли +#КонецЕсли \ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/РазблокированиеРеквизитов.xml b/src/Catalogs/ВидыНоменклатуры/Forms/РазблокированиеРеквизитов.xml new file mode 100644 index 0000000..b2fcccf --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/РазблокированиеРеквизитов.xml @@ -0,0 +1,21 @@ + + +
+ + РазблокированиеРеквизитов + + + ru + Разблокирование реквизитов + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/РазблокированиеРеквизитов/Ext/Form.xml b/src/Catalogs/ВидыНоменклатуры/Forms/РазблокированиеРеквизитов/Ext/Form.xml new file mode 100644 index 0000000..a8bd7da --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/РазблокированиеРеквизитов/Ext/Form.xml @@ -0,0 +1,259 @@ + +
+ + false + + + + + + + ПриСозданииНаСервере + + + + false + 44 + false + web:FireBrick + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизиты не рекомендуется изменять, если есть документы в которых используется номенклатура с данным видом номенклатуры.</v8:content> + </v8:item> + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Тип номенклатуры</v8:content> + </v8:item> + + Vertical + Usual + None + false + + + + РазрешитьРедактированиеТипНоменклатуры + Right + Auto + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использование характеристик</v8:content> + </v8:item> + + Vertical + Usual + None + false + + + + РазрешитьРедактированиеИспользованиеХарактеристик + Right + Auto + + + + + + + РазрешитьРедактированиеИспользованияСерий + Right + Auto + + + + + РазрешитьРедактированиеВариантаОформленияУслуги + Right + Auto + + + + + РазрешитьРедактированиеАлкогольнаяПродукция + Right + Auto + + + + + РазрешитьРедактированиеСодержитДрагоценныеМатериалы + Right + Auto + + + + + РазрешитьРедактированиеНастроекНабора + Right + Auto + + + + + РазрешитьРедактированиеВариантаЗаданияТоварныхКатегорий + Right + Auto + + + + + РазрешитьРедактированиеЦенообразование + Right + Auto + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование использования характеристик</v8:content> + </v8:item> + + + xs:boolean + + + FunctionalOption.ИспользоватьХарактеристикиНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование типа номенклатуры</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование использования серий</v8:content> + </v8:item> + + + xs:boolean + + + FunctionalOption.ИспользоватьСерииНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование варианта оформления услуги</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование признака алкогольной продукции</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование содержания драгоценных металлов и камней</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование варианта задания товарных категорий</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование настроек набора</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование настроек ценообразования</v8:content> + </v8:item> + + + xs:boolean + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование</v8:content> + </v8:item> + + + + ru + Разрешить редактирование + + + РазрешитьРедактирование + DontUse + + +
\ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/РазблокированиеРеквизитов/Ext/Form/Module.bsl b/src/Catalogs/ВидыНоменклатуры/Forms/РазблокированиеРеквизитов/Ext/Form/Module.bsl new file mode 100644 index 0000000..6502a2a --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/РазблокированиеРеквизитов/Ext/Form/Module.bsl @@ -0,0 +1,94 @@ + +#Область ОбработчикиСобытийФормы + +&НаКлиенте +Процедура РазрешитьРедактирование(Команда) + + Результат = Новый Массив; + + Если РазрешитьРедактированиеТипНоменклатуры Тогда + Результат.Добавить("ТипНоменклатуры"); + Результат.Добавить("ОсобенностьУчета"); + КонецЕсли; + + Если РазрешитьРедактированиеИспользованиеХарактеристик Тогда + Результат.Добавить("ИспользоватьХарактеристики"); + Результат.Добавить("ИспользованиеХарактеристик"); + Результат.Добавить("ВладелецХарактеристик"); + КонецЕсли; + + Если РазрешитьРедактированиеИспользованияСерий Тогда + Результат.Добавить("ИспользоватьСерии"); + Результат.Добавить("ПолитикиУчетаСерий"); + Результат.Добавить("НастройкаИспользованияСерий"); + Результат.Добавить("ТочностьУказанияСрокаГодностиСерии"); + Результат.Добавить("ВладелецСерий"); + Результат.Добавить("НастройкиСерийБерутсяИзДругогоВидаНоменклатуры"); + Результат.Добавить("ЕстьИндивидуальныеНастройкиПолитикиУчетаСерий"); + КонецЕсли; + + Если РазрешитьРедактированиеВариантаОформленияУслуги Тогда + Результат.Добавить("ВариантОформленияПродажи"); + КонецЕсли; + + Если РазрешитьРедактированиеАлкогольнаяПродукция Тогда + Результат.Добавить("АлкогольнаяПродукция"); + КонецЕсли; + + Если РазрешитьРедактированиеСодержитДрагоценныеМатериалы Тогда + Результат.Добавить("СодержитДрагоценныеМатериалы"); + КонецЕсли; + + Если РазрешитьРедактированиеНастроекНабора Тогда + Результат.Добавить("ВариантПредставленияНабораВПечатныхФормах"); + Результат.Добавить("ВариантРасчетаЦеныНабора"); + КонецЕсли; + + Если РазрешитьРедактированиеВариантаЗаданияТоварныхКатегорий Тогда + Результат.Добавить("ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры"); + Результат.Добавить("ВладелецТоварныхКатегорий"); + КонецЕсли; + + Если РазрешитьРедактированиеЦенообразование Тогда + Результат.Добавить("НастройкиКлючаЦенПоХарактеристике"); + Результат.Добавить("НастройкиКлючаЦенПоСерии"); + Результат.Добавить("НастройкиКлючаЦенПоУпаковке"); + КонецЕсли; + + Закрыть(Результат); + +КонецПроцедуры // РазрешитьРедактирование() + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. + Возврат; + КонецЕсли; + + РазрешитьРедактированиеИспользованиеХарактеристик = Истина; + РазрешитьРедактированиеТипНоменклатуры = Истина; + РазрешитьРедактированиеИспользованияСерий = Истина; + РазрешитьРедактированиеВариантаОформленияУслуги = Истина; + РазрешитьРедактированиеАлкогольнаяПродукция = Истина; + РазрешитьРедактированиеСодержитДрагоценныеМатериалы = Истина; + РазрешитьРедактированиеНастроекНабора = Истина; + РазрешитьРедактированиеВариантаЗаданияТоварныхКатегорий = Истина; + РазрешитьРедактированиеЦенообразование = Истина; + + СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда); + +КонецПроцедуры + +#КонецОбласти diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаВыбора.xml b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаВыбора.xml new file mode 100644 index 0000000..1b4282f --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаВыбора.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаВыбора + + + ru + Форма выбора + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаВыбора/Ext/Form.xml b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаВыбора/Ext/Form.xml new file mode 100644 index 0000000..99a11a7 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаВыбора/Ext/Form.xml @@ -0,0 +1,788 @@ + +
+ LockOwnerWindow + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Создать на основании</v8:content> + </v8:item> + + + CommonPicture.ЗаполнитьПоШаблону + false + + Picture + + + + + + ОбработкаОповещения + ПриСозданииНаСервере + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Если номенклатура уже была задействована в программе (в документах, настройках и т.п.), то произвольное изменение вида номенклатуры может привести к проблемам. Показаны виды номенклатуры, которые можно выбрать без привнесения проблем. <link ОтключитьОтбор>Показать все виды номенклатуры</>.</v8:content> + </v8:item> + + + + + ДекорацияРасшифровкаОтбораОбработкаНавигационнойСсылки + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа пользовательских настроек</v8:content> + </v8:item> + + Usual + None + false + + + + None + true + true + true + ExpandTopLevel + true + true + AsFile + Список + Список.DefaultPicture + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список</v8:content> + </v8:item> + + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + ГруппаПользовательскихНастроек + true + + + false + + + + + Список + SearchStringRepresentation + + + + + + + Список + ViewStatusRepresentation + + Left + + + + + + Список + SearchControl + + + + + + СписокПриАктивизацииСтроки + + + + Список.Наименование + true + + + + + Список.Описание + + + + + Список.Ссылка + + false + + + + + +
+
+ + + + cfg:DynamicList + + true + + ~Список.ПодакцизныйТовар + Список.DefaultPicture + Список.АлкогольнаяПродукция + Список.ВариантОформленияПродажи + Список.ВариантПредставленияНабораВПечатныхФормах + Список.ВариантРасчетаЦеныНабора + Список.ВестиУчетПоГТД + Список.ВестиУчетСертификатовНоменклатуры + Список.ВидАлкогольнойПродукции + Список.ВладелецСерий + Список.ВладелецТоварныхКатегорий + Список.ВладелецХарактеристик + Список.ГруппаАналитическогоУчета + Список.ГруппаДоступа + Список.ГруппаФинансовогоУчета + Список.ЕдиницаДляОтчетов + Список.ЕдиницаИзмерения + Список.ЗапретРедактированияНаименованияДляПечатиНоменклатуры + Список.ЗапретРедактированияНаименованияДляПечатиХарактеристики + Список.ЗапретРедактированияРабочегоНаименованияНоменклатуры + Список.ЗапретРедактированияРабочегоНаименованияХарактеристики + Список.ИмпортнаяАлкогольнаяПродукция + Список.ИспользованиеХарактеристик + Список.ИспользоватьИндивидуальноеНаименованиеПриПечати + Список.ИспользоватьКоличествоСерии + Список.ИспользоватьНомерСерии + Список.ИспользоватьСерии + Список.ИспользоватьСрокГодностиСерии + Список.ИспользоватьУпаковки + Список.ИспользоватьХарактеристики + Список.КодОКВЭД + Список.КодТНВЭД + Список.КонтролироватьДублиНоменклатуры + Список.КонтролироватьДублиХарактеристик + Список.КоэффициентЕдиницыДляОтчетов + Список.НаборСвойств + Список.НаборСвойствСерий + Список.НаборСвойствХарактеристик + Список.НаборУпаковок + Список.Наименование + Список.НаименованиеДляПечати + Список.НастройкаИспользованияСерий + Список.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + Список.НоменклатураМногооборотнаяТара + Список.ОбособленнаяЗакупкаПродажа + Список.Описание + Список.ОсобенностьУчета + Список.ПометкаУдаления + Список.ПоставляетсяВМногооборотнойТаре + Список.Родитель + Список.СезоннаяГруппа + Список.СкладскаяГруппа + Список.СодержитДрагоценныеМатериалы + Список.Ссылка + Список.ТипНоменклатуры + Список.ТочностьУказанияСрокаГодностиСерии + Список.ХарактеристикаМногооборотнаяТара + Список.ШаблонНаименованияДляПечатиНоменклатуры + Список.ШаблонНаименованияДляПечатиХарактеристики + Список.ШаблонРабочегоНаименованияНоменклатуры + Список.ШаблонРабочегоНаименованияСерии + Список.ШаблонРабочегоНаименованияХарактеристики + Список.ШаблонЦенника + Список.ШаблонЭтикетки + Список.ШаблонЭтикеткиСерии + Список.ЭтоГруппа + + + true + true + ВЫБРАТЬ + ВидНоменклатурыПереопределяемый.Ссылка, + ВидНоменклатурыПереопределяемый.ПометкаУдаления, + ВидНоменклатурыПереопределяемый.Родитель, + ВидНоменклатурыПереопределяемый.ЭтоГруппа, + ВидНоменклатурыПереопределяемый.Наименование, + ВидНоменклатурыПереопределяемый.АлкогольнаяПродукция, + ВидНоменклатурыПереопределяемый.ВариантОформленияПродажи, + ВидНоменклатурыПереопределяемый.ВариантПредставленияНабораВПечатныхФормах, + ВидНоменклатурыПереопределяемый.ВариантРасчетаЦеныНабора, + ВидНоменклатурыПереопределяемый.ВестиУчетПоГТД, + ВидНоменклатурыПереопределяемый.ВестиУчетСертификатовНоменклатуры, + ВидНоменклатурыПереопределяемый.ВидАлкогольнойПродукции, + ВидНоменклатурыПереопределяемый.ВладелецСерий, + ВидНоменклатурыПереопределяемый.ВладелецТоварныхКатегорий, + ВидНоменклатурыПереопределяемый.ВладелецХарактеристик, + ВидНоменклатурыПереопределяемый.ГруппаАналитическогоУчета, + ВидНоменклатурыПереопределяемый.ГруппаДоступа, + ВидНоменклатурыПереопределяемый.ГруппаФинансовогоУчета, + ВидНоменклатурыПереопределяемый.ЕдиницаДляОтчетов, + ВидНоменклатурыПереопределяемый.ЕдиницаИзмерения, + ВидНоменклатурыПереопределяемый.ЗапретРедактированияНаименованияДляПечатиНоменклатуры, + ВидНоменклатурыПереопределяемый.ЗапретРедактированияНаименованияДляПечатиХарактеристики, + ВидНоменклатурыПереопределяемый.ЗапретРедактированияРабочегоНаименованияНоменклатуры, + ВидНоменклатурыПереопределяемый.ЗапретРедактированияРабочегоНаименованияХарактеристики, + ВидНоменклатурыПереопределяемый.ИмпортнаяАлкогольнаяПродукция, + ВидНоменклатурыПереопределяемый.ИспользованиеХарактеристик, + ВидНоменклатурыПереопределяемый.ИспользоватьИндивидуальноеНаименованиеПриПечати, + ВидНоменклатурыПереопределяемый.ИспользоватьКоличествоСерии, + ВидНоменклатурыПереопределяемый.ИспользоватьНомерСерии, + ВидНоменклатурыПереопределяемый.ИспользоватьСерии, + ВидНоменклатурыПереопределяемый.ИспользоватьСрокГодностиСерии, + ВидНоменклатурыПереопределяемый.ИспользоватьУпаковки, + ВидНоменклатурыПереопределяемый.ИспользоватьХарактеристики, + ВидНоменклатурыПереопределяемый.КонтролироватьДублиНоменклатуры, + ВидНоменклатурыПереопределяемый.КонтролироватьДублиХарактеристик, + ВидНоменклатурыПереопределяемый.КоэффициентЕдиницыДляОтчетов, + ВидНоменклатурыПереопределяемый.НаборСвойств, + ВидНоменклатурыПереопределяемый.НаборСвойствСерий, + ВидНоменклатурыПереопределяемый.НаборСвойствХарактеристик, + ВидНоменклатурыПереопределяемый.НаборУпаковок, + ВидНоменклатурыПереопределяемый.НаименованиеДляПечати, + ВидНоменклатурыПереопределяемый.НастройкаИспользованияСерий, + ВидНоменклатурыПереопределяемый.НоменклатураМногооборотнаяТара, + ВидНоменклатурыПереопределяемый.ОбособленнаяЗакупкаПродажа, + ВидНоменклатурыПереопределяемый.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры, + ВидНоменклатурыПереопределяемый.Описание, + ВидНоменклатурыПереопределяемый.ОсобенностьУчета, + ВидНоменклатурыПереопределяемый.УдалитьПодакцизныйТовар, + ВидНоменклатурыПереопределяемый.ПоставляетсяВМногооборотнойТаре, + ВидНоменклатурыПереопределяемый.СезоннаяГруппа, + ВидНоменклатурыПереопределяемый.ПолитикаУчетаСерий, + ВидНоменклатурыПереопределяемый.СкладскаяГруппа, + ВидНоменклатурыПереопределяемый.СодержитДрагоценныеМатериалы, + ВидНоменклатурыПереопределяемый.ТипНоменклатуры, + ВидНоменклатурыПереопределяемый.ТочностьУказанияСрокаГодностиСерии, + ВидНоменклатурыПереопределяемый.ХарактеристикаМногооборотнаяТара, + ВидНоменклатурыПереопределяемый.ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры, + ВидНоменклатурыПереопределяемый.ШаблонНаименованияДляПечатиНоменклатуры, + ВидНоменклатурыПереопределяемый.ШаблонНаименованияДляПечатиХарактеристики, + ВидНоменклатурыПереопределяемый.ШаблонРабочегоНаименованияНоменклатуры, + ВидНоменклатурыПереопределяемый.ШаблонРабочегоНаименованияСерии, + ВидНоменклатурыПереопределяемый.ШаблонРабочегоНаименованияХарактеристики, + ВидНоменклатурыПереопределяемый.ШаблонЦенника, + ВидНоменклатурыПереопределяемый.ШаблонЭтикетки, + ВидНоменклатурыПереопределяемый.ШаблонЭтикеткиСерии, + ВидНоменклатурыПереопределяемый.КодОКВЭД, + ВидНоменклатурыПереопределяемый.КодТНВЭД, + ВидНоменклатурыПереопределяемый.Представление +ИЗ + Справочник.ВидыНоменклатуры КАК ВидНоменклатурыПереопределяемый + + ГруппаФинансовогоУчета + ГруппаФинансовогоУчета + + + ТипНоменклатуры + ТипНоменклатуры + + + ЭтоГруппа + ЭтоГруппа + + + СкладскаяГруппа + СкладскаяГруппа + + + ВариантПредставленияНабораВПечатныхФормах + ВариантПредставленияНабораВПечатныхФормах + + + ПометкаУдаления + ПометкаУдаления + + + Наименование + Наименование + + + ВестиУчетПоГТД + ВестиУчетПоГТД + + + ВидАлкогольнойПродукции + ВидАлкогольнойПродукции + + + Ссылка + Ссылка + + + ВладелецТоварныхКатегорий + ВладелецТоварныхКатегорий + + + НаборСвойствХарактеристик + НаборСвойствХарактеристик + + + Родитель + Родитель + + + АлкогольнаяПродукция + АлкогольнаяПродукция + + + ВариантОформленияПродажи + ВариантОформленияПродажи + + + ВладелецСерий + ВладелецСерий + + + ВариантРасчетаЦеныНабора + ВариантРасчетаЦеныНабора + + + ВестиУчетСертификатовНоменклатуры + ВестиУчетСертификатовНоменклатуры + + + ГруппаДоступа + ГруппаДоступа + + + ВладелецХарактеристик + ВладелецХарактеристик + + + ГруппаАналитическогоУчета + ГруппаАналитическогоУчета + + + ЕдиницаДляОтчетов + ЕдиницаДляОтчетов + + + ЕдиницаИзмерения + ЕдиницаИзмерения + + + ЗапретРедактированияНаименованияДляПечатиНоменклатуры + ЗапретРедактированияНаименованияДляПечатиНоменклатуры + + + ЗапретРедактированияНаименованияДляПечатиХарактеристики + ЗапретРедактированияНаименованияДляПечатиХарактеристики + + + ЗапретРедактированияРабочегоНаименованияНоменклатуры + ЗапретРедактированияРабочегоНаименованияНоменклатуры + + + ЗапретРедактированияРабочегоНаименованияХарактеристики + ЗапретРедактированияРабочегоНаименованияХарактеристики + + + ИмпортнаяАлкогольнаяПродукция + ИмпортнаяАлкогольнаяПродукция + + + ИспользованиеХарактеристик + ИспользованиеХарактеристик + + + ИспользоватьИндивидуальноеНаименованиеПриПечати + ИспользоватьИндивидуальноеНаименованиеПриПечати + + + ИспользоватьКоличествоСерии + ИспользоватьКоличествоСерии + + + ИспользоватьНомерСерии + ИспользоватьНомерСерии + + + ИспользоватьСерии + ИспользоватьСерии + + + ИспользоватьСрокГодностиСерии + ИспользоватьСрокГодностиСерии + + + ИспользоватьУпаковки + ИспользоватьУпаковки + + + ИспользоватьХарактеристики + ИспользоватьХарактеристики + + + КонтролироватьДублиНоменклатуры + КонтролироватьДублиНоменклатуры + + + КонтролироватьДублиХарактеристик + КонтролироватьДублиХарактеристик + + + КоэффициентЕдиницыДляОтчетов + КоэффициентЕдиницыДляОтчетов + + + НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + + + НаборСвойств + НаборСвойств + + + НаборСвойствСерий + НаборСвойствСерий + + + НаборУпаковок + НаборУпаковок + + + НаименованиеДляПечати + НаименованиеДляПечати + + + НастройкаИспользованияСерий + НастройкаИспользованияСерий + + + НоменклатураМногооборотнаяТара + НоменклатураМногооборотнаяТара + + + ОбособленнаяЗакупкаПродажа + ОбособленнаяЗакупкаПродажа + + + Описание + Описание + + + ПоставляетсяВМногооборотнойТаре + ПоставляетсяВМногооборотнойТаре + + + СезоннаяГруппа + СезоннаяГруппа + + + ПолитикаУчетаСерий + ПолитикаУчетаСерий + + + СодержитДрагоценныеМатериалы + СодержитДрагоценныеМатериалы + + + ТочностьУказанияСрокаГодностиСерии + ТочностьУказанияСрокаГодностиСерии + + + ХарактеристикаМногооборотнаяТара + ХарактеристикаМногооборотнаяТара + + + ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры + ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры + + + ШаблонНаименованияДляПечатиНоменклатуры + ШаблонНаименованияДляПечатиНоменклатуры + + + ШаблонНаименованияДляПечатиХарактеристики + ШаблонНаименованияДляПечатиХарактеристики + + + ШаблонРабочегоНаименованияНоменклатуры + ШаблонРабочегоНаименованияНоменклатуры + + + ШаблонРабочегоНаименованияСерии + ШаблонРабочегоНаименованияСерии + + + ШаблонРабочегоНаименованияХарактеристики + ШаблонРабочегоНаименованияХарактеристики + + + ШаблонЦенника + ШаблонЦенника + + + ШаблонЭтикетки + ШаблонЭтикетки + + + ШаблонЭтикеткиСерии + ШаблонЭтикеткиСерии + + + КодОКВЭД + КодОКВЭД + + + КодТНВЭД + КодТНВЭД + + + ЕдиницаИзмеренияСрокаГодности + ЕдиницаИзмеренияСрокаГодности + + + СтавкаНДС + СтавкаНДС + + + КодОКП + КодОКП + + + СхемаОбеспечения + СхемаОбеспечения + + + СпособОбеспеченияПотребностей + СпособОбеспеченияПотребностей + + + ЦеноваяГруппа + ЦеноваяГруппа + + + Крепость + Крепость + + + ПродукцияМаркируемаяДляГИСМ + ПродукцияМаркируемаяДляГИСМ + + + КиЗГИСМ + КиЗГИСМ + + + ИспользоватьRFIDМеткиСерии + ИспользоватьRFIDМеткиСерии + + + ИспользоватьНомерКИЗГИСМСерии + ИспользоватьНомерКИЗГИСМСерии + + + ПодконтрольнаяПродукцияВЕТИС + ПодконтрольнаяПродукцияВЕТИС + + + КодРаздел7ДекларацииНДС + КодРаздел7ДекларацииНДС + + + АвтоматическиГенерироватьСерии + АвтоматическиГенерироватьСерии + + + ИспользоватьДатуПроизводстваСерии + ИспользоватьДатуПроизводстваСерии + + + ИспользоватьПроизводителяЕГАИССерии + ИспользоватьПроизводителяЕГАИССерии + + + ИспользоватьСправку2ЕГАИССерии + ИспользоватьСправку2ЕГАИССерии + + + ИспользоватьПроизводителяВЕТИССерии + ИспользоватьПроизводителяВЕТИССерии + + + ИспользоватьЗаписьСкладскогоЖурналаВЕТИССерии + ИспользоватьЗаписьСкладскогоЖурналаВЕТИССерии + + + ИспользоватьИдентификаторПартииВЕТИССерии + ИспользоватьИдентификаторПартииВЕТИССерии + + + ОблагаетсяНДСУПокупателя + ОблагаетсяНДСУПокупателя + + + КодОКВЭД2 + КодОКВЭД2 + + + КодОКПД2 + КодОКПД2 + + + ИспользоватьМРЦМОТПСерии + ИспользоватьМРЦМОТПСерии + + + НастройкиКлючаЦенПоНоменклатуре + НастройкиКлючаЦенПоНоменклатуре + + + НастройкиКлючаЦенПоХарактеристике + НастройкиКлючаЦенПоХарактеристике + + + НастройкиКлючаЦенПоСерии + НастройкиКлючаЦенПоСерии + + + НастройкиКлючаЦенПоУпаковке + НастройкиКлючаЦенПоУпаковке + + + ШаблонНаименованияДляПечатиКлючаЦен + ШаблонНаименованияДляПечатиКлючаЦен + + + ШаблонРабочегоНаименованияКлючаЦен + ШаблонРабочегоНаименованияКлючаЦен + + + РазрезыЦенообразования + РазрезыЦенообразования + + + ШаблонНаименованияДляПечатиНоменклатурыИсторияПереходаНаНовыеФормулы + ШаблонНаименованияДляПечатиНоменклатурыИсторияПереходаНаНовыеФормулы + + + ШаблонНаименованияДляПечатиХарактеристикиИсторияПереходаНаНовыеФормулы + ШаблонНаименованияДляПечатиХарактеристикиИсторияПереходаНаНовыеФормулы + + + ШаблонРабочегоНаименованияНоменклатурыИсторияПереходаНаНовыеФормулы + ШаблонРабочегоНаименованияНоменклатурыИсторияПереходаНаНовыеФормулы + + + ШаблонРабочегоНаименованияСерииИсторияПереходаНаНовыеФормулы + ШаблонРабочегоНаименованияСерииИсторияПереходаНаНовыеФормулы + + + ШаблонРабочегоНаименованияХарактеристикиИсторияПереходаНаНовыеФормулы + ШаблонРабочегоНаименованияХарактеристикиИсторияПереходаНаНовыеФормулы + + + РеквизитыДляКонтроляНоменклатуры + РеквизитыДляКонтроляНоменклатуры + + + РеквизитыДляКонтроляХарактеристик + РеквизитыДляКонтроляХарактеристик + + + РеквизитыДляКонтроляСерий + РеквизитыДляКонтроляСерий + + + РеквизитыБыстрогоОтбораНоменклатуры + РеквизитыБыстрогоОтбораНоменклатуры + + + РеквизитыБыстрогоОтбораХарактеристик + РеквизитыБыстрогоОтбораХарактеристик + + + ПолитикиУчетаСерий + ПолитикиУчетаСерий + + + РеквизитыХарактеристикДляКлючаЦен + РеквизитыХарактеристикДляКлючаЦен + + + РеквизитыСерийДляКлючаЦен + РеквизитыСерийДляКлючаЦен + + + Предопределенный + Предопределенный + + + ИмяПредопределенныхДанных + ИмяПредопределенныхДанных + + + ОсобенностьУчета + ОсобенностьУчета + + + ЗапрещенаПродажаЧерезПатент + ЗапрещенаПродажаЧерезПатент + + + УдалитьПодакцизныйТовар + УдалитьПодакцизныйТовар + + Catalog.ВидыНоменклатуры + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Несколько видов номенклатуры</v8:content> + </v8:item> + + + xs:boolean + + + + + + + cfg:CatalogRef.ВидыНоменклатуры + + + + + xs:boolean + + + +
\ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаВыбора/Ext/Form/Module.bsl b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаВыбора/Ext/Form/Module.bsl new file mode 100644 index 0000000..2037862 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаВыбора/Ext/Form/Module.bsl @@ -0,0 +1,279 @@ + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. + Возврат; + КонецЕсли; + + СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); + + НесколькоВидовНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоВидовНоменклатуры"); + Элементы.ДекорацияРасшифровкаОтбора.Видимость = Ложь; + + Если ЗначениеЗаполнено(Параметры.ТекущийВид) Тогда + + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, + "Ссылка", + Параметры.ТекущийВид, + ВидСравненияКомпоновкиДанных.НеРавно, + , + Истина); + ИначеЕсли Параметры.Свойство("Номенклатура") Тогда + + НастроитьСписок(Параметры.Номенклатура); + + КонецЕсли; + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + РаботаСНоменклатурой.ПриСозданииНаСервереФормаСпискаВидаНоменклатуры(ЭтотОбъект, ЭтотОбъект.КоманднаяПанель); + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + + // СтандартныеПодсистемы.ПодключаемыеКоманды + ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект); + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + + ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект); + + МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + Если ИмяСобытия = РаботаСНоменклатуройКлиент.ОписаниеОповещенийПодсистемы().ЗагрузкаКатегорий Тогда + Если Параметр.Количество() > 0 Тогда + Элементы.Список.ТекущаяСтрока = Параметр[0]; + КонецЕсли; + КонецЕсли; + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок + +&НаКлиенте +Процедура СписокПриАктивизацииСтроки(Элемент) + + // СтандартныеПодсистемы.ПодключаемыеКоманды + ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект); + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура НастроитьСписок(Номенклатура = Неопределено, ОтключениеОтбора = Ложь) + + УсловияВыбораНовогоВидаНоменклатуры = Справочники.Номенклатура.УсловияВыбораНовогоВидаНоменклатуры(); + + ТекстЗапроса = + "ВЫБРАТЬ + | ВидНоменклатурыПереопределяемый.Ссылка, + | ВидНоменклатурыПереопределяемый.ПометкаУдаления, + | ВидНоменклатурыПереопределяемый.Родитель, + | ВидНоменклатурыПереопределяемый.ЭтоГруппа, + | ВидНоменклатурыПереопределяемый.Наименование, + | ВидНоменклатурыПереопределяемый.АлкогольнаяПродукция, + | ВидНоменклатурыПереопределяемый.ВариантОформленияПродажи, + | ВидНоменклатурыПереопределяемый.ВариантПредставленияНабораВПечатныхФормах, + | ВидНоменклатурыПереопределяемый.ВариантРасчетаЦеныНабора, + | ВидНоменклатурыПереопределяемый.ВестиУчетПоГТД, + | ВидНоменклатурыПереопределяемый.ВестиУчетСертификатовНоменклатуры, + | ВидНоменклатурыПереопределяемый.ВидАлкогольнойПродукции, + | ВидНоменклатурыПереопределяемый.ВладелецСерий, + | ВидНоменклатурыПереопределяемый.ВладелецТоварныхКатегорий, + | ВидНоменклатурыПереопределяемый.ВладелецХарактеристик, + | ВидНоменклатурыПереопределяемый.ГруппаАналитическогоУчета, + | ВидНоменклатурыПереопределяемый.ГруппаДоступа, + | ВидНоменклатурыПереопределяемый.ГруппаФинансовогоУчета, + | ВидНоменклатурыПереопределяемый.ЕдиницаДляОтчетов, + | ВидНоменклатурыПереопределяемый.ЕдиницаИзмерения, + | ВидНоменклатурыПереопределяемый.ЗапретРедактированияНаименованияДляПечатиНоменклатуры, + | ВидНоменклатурыПереопределяемый.ЗапретРедактированияНаименованияДляПечатиХарактеристики, + | ВидНоменклатурыПереопределяемый.ЗапретРедактированияРабочегоНаименованияНоменклатуры, + | ВидНоменклатурыПереопределяемый.ЗапретРедактированияРабочегоНаименованияХарактеристики, + | ВидНоменклатурыПереопределяемый.ИмпортнаяАлкогольнаяПродукция, + | ВидНоменклатурыПереопределяемый.ИспользованиеХарактеристик, + | ВидНоменклатурыПереопределяемый.ИспользоватьИндивидуальноеНаименованиеПриПечати, + | ВидНоменклатурыПереопределяемый.ИспользоватьКоличествоСерии, + | ВидНоменклатурыПереопределяемый.ИспользоватьНомерСерии, + | ВидНоменклатурыПереопределяемый.ИспользоватьСерии, + | ВидНоменклатурыПереопределяемый.ИспользоватьСрокГодностиСерии, + | ВидНоменклатурыПереопределяемый.ИспользоватьУпаковки, + | ВидНоменклатурыПереопределяемый.ИспользоватьХарактеристики, + | ВидНоменклатурыПереопределяемый.КонтролироватьДублиНоменклатуры, + | ВидНоменклатурыПереопределяемый.КонтролироватьДублиХарактеристик, + | ВидНоменклатурыПереопределяемый.КоэффициентЕдиницыДляОтчетов, + | ВидНоменклатурыПереопределяемый.НаборСвойств, + | ВидНоменклатурыПереопределяемый.НаборСвойствСерий, + | ВидНоменклатурыПереопределяемый.НаборСвойствХарактеристик, + | ВидНоменклатурыПереопределяемый.НаборУпаковок, + | ВидНоменклатурыПереопределяемый.НаименованиеДляПечати, + | ВидНоменклатурыПереопределяемый.НастройкаИспользованияСерий, + | ВидНоменклатурыПереопределяемый.НоменклатураМногооборотнаяТара, + | ВидНоменклатурыПереопределяемый.ОбособленнаяЗакупкаПродажа, + | ВидНоменклатурыПереопределяемый.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры, + | ВидНоменклатурыПереопределяемый.Описание, + | ВидНоменклатурыПереопределяемый.ОсобенностьУчета, + | ВидНоменклатурыПереопределяемый.ПоставляетсяВМногооборотнойТаре, + | ВидНоменклатурыПереопределяемый.СезоннаяГруппа, + | ВидНоменклатурыПереопределяемый.ПолитикаУчетаСерий, + | ВидНоменклатурыПереопределяемый.СкладскаяГруппа, + | ВидНоменклатурыПереопределяемый.СодержитДрагоценныеМатериалы, + | ВидНоменклатурыПереопределяемый.ТипНоменклатуры, + | ВидНоменклатурыПереопределяемый.ТочностьУказанияСрокаГодностиСерии, + | ВидНоменклатурыПереопределяемый.ХарактеристикаМногооборотнаяТара, + | ВидНоменклатурыПереопределяемый.ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры, + | ВидНоменклатурыПереопределяемый.ШаблонНаименованияДляПечатиНоменклатуры, + | ВидНоменклатурыПереопределяемый.ШаблонНаименованияДляПечатиХарактеристики, + | ВидНоменклатурыПереопределяемый.ШаблонРабочегоНаименованияНоменклатуры, + | ВидНоменклатурыПереопределяемый.ШаблонРабочегоНаименованияСерии, + | ВидНоменклатурыПереопределяемый.ШаблонРабочегоНаименованияХарактеристики, + | ВидНоменклатурыПереопределяемый.ШаблонЦенника, + | ВидНоменклатурыПереопределяемый.ШаблонЭтикетки, + | ВидНоменклатурыПереопределяемый.ШаблонЭтикеткиСерии, + | ВидНоменклатурыПереопределяемый.КодОКВЭД, + | ВидНоменклатурыПереопределяемый.КодТНВЭД, + | ВидНоменклатурыПереопределяемый.Представление + |ИЗ + | Справочник.ВидыНоменклатуры КАК ВидНоменклатурыПереопределяемый"; + + Если Не ЗначениеЗаполнено(Номенклатура) + Или ОтключениеОтбора Тогда + + УстановитьСвойстваСписка(ТекстЗапроса); + + Элементы.ДекорацияРасшифровкаОтбора.Видимость = Ложь; + + Возврат; + + КонецЕсли; + + ТекстЗапроса = ТекстЗапроса + " + |ГДЕ + | ВидНоменклатурыПереопределяемый.ЭтоГруппа + | ИЛИ ИСТИНА "; + + Для Каждого КлючЗначение Из УсловияВыбораНовогоВидаНоменклатуры Цикл + + ТекстПараметра = СтрЗаменить(КлючЗначение.Значение, "НовыйВидНоменклатуры", "ВидНоменклатурыПереопределяемый"); + ТекстЗапроса = ТекстЗапроса + " И НЕ " + ТекстПараметра; + + КонецЦикла; + + Запрос = Новый Запрос; + Запрос.Текст = ТекстЗапроса; + ПараметрыЗапроса = Запрос.НайтиПараметры(); + + ИменаРеквизитов = Новый Структура; + Для Каждого Параметр Из ПараметрыЗапроса Цикл + ИменаРеквизитов.Вставить(Параметр.Имя, "ВидНоменклатуры." + Параметр.Имя); + КонецЦикла; + + СтарыеРеквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Номенклатура, ИменаРеквизитов); + + УстановитьСвойстваСписка(ТекстЗапроса); + + Для Каждого Параметр Из ПараметрыЗапроса Цикл + ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, + Параметр.Имя, + СтарыеРеквизиты[Параметр.Имя], + Истина); + КонецЦикла; + + Элементы.Список.Обновить(); + + МассивСтрок = Новый Массив; + МассивСтрок.Добавить(НСтр("ru = 'Если номенклатура уже была задействована в программе (в документах, настройках и т.п.), то произвольное изменение вида номенклатуры может привести к проблемам. Показаны виды номенклатуры, которые можно выбрать без привнесения проблем.'")); + + Если Пользователи.РолиДоступны("РедактированиеРеквизитовОбъектов") Тогда + ЧастьФорматированнойСтроки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Показать все виды номенклатуры.'"), + "ОтключитьОтбор"); + МассивСтрок.Добавить(ЧастьФорматированнойСтроки); + КонецЕсли; + + Элементы.ДекорацияРасшифровкаОтбора.Видимость = Истина; + Элементы.ДекорацияРасшифровкаОтбора.Заголовок = СтроковыеФункции.ФорматированнаяСтрока( + СтрСоединить(МассивСтрок, " ")); + +КонецПроцедуры + +&НаСервере +Процедура УстановитьСвойстваСписка(ТекстЗапроса) + + СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка(); + СвойстваСписка.ТекстЗапроса = ТекстЗапроса; + СвойстваСписка.ОсновнаяТаблица = "Справочник.ВидыНоменклатуры"; + СвойстваСписка.ДинамическоеСчитываниеДанных = Истина; + + ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Список, СвойстваСписка); + +КонецПроцедуры + +&НаКлиенте +Процедура ДекорацияРасшифровкаОтбораОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылка, СтандартнаяОбработка) + СтандартнаяОбработка = Ложь; + + Если НавигационнаяСсылка = "ОтключитьОтбор" Тогда + НастроитьСписок(,Истина); + КонецЕсли; +КонецПроцедуры + +#КонецОбласти + +#Область ПодключаемыеКоманды + +// ЭлектронноеВзаимодействие.РаботаСНоменклатурой +&НаКлиенте +Процедура Подключаемый_ПодобратьКатегорииИзСервиса(Команда) + + РаботаСНоменклатуройКлиент.ПодобратьКатегорииИзСервиса(); + +КонецПроцедуры +// Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + +// СтандартныеПодсистемы.ПодключаемыеКоманды +&НаКлиенте +Процедура Подключаемый_ВыполнитьКоманду(Команда) + ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт + ВыполнитьКомандуНаСервере(ПараметрыВыполнения); +КонецПроцедуры + +&НаСервере +Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения) + ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ОбновитьКоманды() + ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список); +КонецПроцедуры +// Конец СтандартныеПодсистемы.ПодключаемыеКоманды + +#КонецОбласти diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаГруппы.xml b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаГруппы.xml new file mode 100644 index 0000000..e2818f1 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаГруппы.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаГруппы + + + ru + Форма группы + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаГруппы/Ext/Form.xml b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаГруппы/Ext/Form.xml new file mode 100644 index 0000000..d573a4d --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаГруппы/Ext/Form.xml @@ -0,0 +1,35 @@ + +
+ LockOwnerWindow + Folders + + + ПослеЗаписиНаСервере + ПриЧтенииНаСервере + ПриСозданииНаСервере + ПередЗаписьюНаСервере + + + + Объект.Description + EnterOnInput + + + + + Объект.Parent + EnterOnInput + + + + + + + + cfg:CatalogObject.ВидыНоменклатуры + + true + true + + + \ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаГруппы/Ext/Form/Module.bsl b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаГруппы/Ext/Form/Module.bsl new file mode 100644 index 0000000..de71186 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаГруппы/Ext/Form/Module.bsl @@ -0,0 +1,54 @@ +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. + Возврат; + КонецЕсли; + + МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + +КонецПроцедуры + +&НаСервере +Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) + + // СтандартныеПодсистемы.УправлениеДоступом + УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи); + // Конец СтандартныеПодсистемы.УправлениеДоступом + + МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ПриЧтенииНаСервере(ТекущийОбъект) + + // СтандартныеПодсистемы.УправлениеДоступом + УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + // Конец СтандартныеПодсистемы.УправлениеДоступом + + МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) + + МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка) + + МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаНастройкиРазрезовЦенообразования.xml b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаНастройкиРазрезовЦенообразования.xml new file mode 100644 index 0000000..36b60cb --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаНастройкиРазрезовЦенообразования.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаНастройкиРазрезовЦенообразования + + + ru + Форма настройки разрезов ценообразования + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаНастройкиРазрезовЦенообразования/Ext/Form.xml b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаНастройкиРазрезовЦенообразования/Ext/Form.xml new file mode 100644 index 0000000..5d589e7 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаНастройкиРазрезовЦенообразования/Ext/Form.xml @@ -0,0 +1,222 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Изменение настроек ценообразования</v8:content> + </v8:item> + + false + Bottom + + Right + false + + + + + + ПриОткрытии + ПередЗакрытием + ПриСозданииНаСервере + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Характеристики</v8:content> + </v8:item> + + AlwaysHorizontal + Usual + None + false + + + + ВариантХарактеристики + None + true + + + + ВариантХарактеристикиПриИзменении + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Серии</v8:content> + </v8:item> + + AlwaysHorizontal + Usual + None + false + + + + ВариантСерии + true + + + + ВариантСерииПриИзменении + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Упаковки</v8:content> + </v8:item> + + AlwaysHorizontal + Usual + None + false + + + + ВариантУпаковки + true + + + + ВариантУпаковкиПриИзменении + + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Характеристики</v8:content> + </v8:item> + + + xs:decimal + + 1 + 0 + Nonnegative + + + + FunctionalOption.ИспользоватьХарактеристикиНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Серии</v8:content> + </v8:item> + + + xs:decimal + + 1 + 0 + Nonnegative + + + + FunctionalOption.ИспользоватьСерииНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Упаковки</v8:content> + </v8:item> + + + xs:decimal + + 1 + 0 + Nonnegative + + + + FunctionalOption.ИспользоватьУпаковкиНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Серии</v8:content> + </v8:item> + + + xs:boolean + + + FunctionalOption.ИспользоватьСерииНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Упаковки</v8:content> + </v8:item> + + + xs:boolean + + + FunctionalOption.ИспользоватьУпаковкиНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Характеристики</v8:content> + </v8:item> + + + xs:boolean + + + FunctionalOption.ИспользоватьХарактеристикиНоменклатуры + + + +
\ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаНастройкиРазрезовЦенообразования/Ext/Form/Module.bsl b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаНастройкиРазрезовЦенообразования/Ext/Form/Module.bsl new file mode 100644 index 0000000..9d1b108 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаНастройкиРазрезовЦенообразования/Ext/Form/Module.bsl @@ -0,0 +1,90 @@ +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + ВариантХарактеристики = Параметры.ВариантХарактеристики; + ВариантСерии = Параметры.ВариантСерии; + ВариантУпаковки = Параметры.ВариантУпаковки; + + ИспользоватьХарактеристики = Параметры.ИспользоватьХарактеристики; + ИспользоватьСерии = Параметры.ИспользоватьСерии; + ИспользоватьУпаковки = Параметры.ИспользоватьУпаковки; + + ОбновитьВидимостьИДоступностьЭлементов(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + ОбновитьНадпись(ВариантХарактеристики, Элементы.ДекорацияХарактеристики); + ОбновитьНадпись(ВариантСерии, Элементы.ДекорацияСерии); + ОбновитьНадпись(ВариантУпаковки, Элементы.ДекорацияУпаковки); + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) + + Если ЗавершениеРаботы Тогда + Возврат; + КонецЕсли; + + СтандартнаяОбработка = Ложь; + + РезультатВыбора = Новый Структура; + РезультатВыбора.Вставить("ВариантХарактеристики", ВариантХарактеристики); + РезультатВыбора.Вставить("ВариантСерии", ВариантСерии); + РезультатВыбора.Вставить("ВариантУпаковки", ВариантУпаковки); + + Закрыть(РезультатВыбора); + +КонецПроцедуры + +&НаКлиенте +Процедура ВариантХарактеристикиПриИзменении(Элемент) + ОбновитьНадпись(ВариантХарактеристики, Элементы.ДекорацияХарактеристики); +КонецПроцедуры + +&НаКлиенте +Процедура ВариантСерииПриИзменении(Элемент) + ОбновитьНадпись(ВариантСерии, Элементы.ДекорацияСерии); +КонецПроцедуры + +&НаКлиенте +Процедура ВариантУпаковкиПриИзменении(Элемент) + ОбновитьНадпись(ВариантУпаковки, Элементы.ДекорацияУпаковки); +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура ОбновитьВидимостьИДоступностьЭлементов() + + Элементы.ГруппаХарактеристики.Видимость = ПолучитьФункциональнуюОпцию("ИспользоватьХарактеристикиНоменклатуры"); + Элементы.ГруппаСерии.Видимость = ПолучитьФункциональнуюОпцию("ИспользоватьСерииНоменклатуры"); + Элементы.ГруппаУпаковки.Видимость = ПолучитьФункциональнуюОпцию("ИспользоватьУпаковкиНоменклатуры"); + + Элементы.ГруппаХарактеристики.Доступность = ИспользоватьХарактеристики; + Элементы.ГруппаСерии.Доступность = ИспользоватьСерии; + Элементы.ГруппаУпаковки.Доступность = ИспользоватьУпаковки; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьНадпись(ЗначениеРеквизита, Декорация) + + Если ЗначениеРеквизита = 0 Тогда + Декорация.Заголовок = НСтр("ru = '(снять)'"); + ИначеЕсли ЗначениеРеквизита = 1 Тогда + Декорация.Заголовок = НСтр("ru = '(установить)'"); + Иначе + Декорация.Заголовок = НСтр("ru = '(не изменять)'"); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаНастройкиУчетаСерий.xml b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаНастройкиУчетаСерий.xml new file mode 100644 index 0000000..bdd2a99 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаНастройкиУчетаСерий.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаНастройкиУчетаСерий + + + ru + Форма настройки учета серий + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаНастройкиУчетаСерий/Ext/Form.xml b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаНастройкиУчетаСерий/Ext/Form.xml new file mode 100644 index 0000000..08db893 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаНастройкиУчетаСерий/Ext/Form.xml @@ -0,0 +1,235 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройки учета серий</v8:content> + </v8:item> + + + ListSettings + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Создать на основании</v8:content> + </v8:item> + + + CommonPicture.ЗаполнитьПоШаблону + false + + Picture + + + + + + ПриСозданииНаСервере + + + + true + true + true + AsFile + НастройкиУчетаСерий + НастройкиУчетаСерий.DefaultPicture + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройки учета серий</v8:content> + </v8:item> + + + ListSettings + OutputList + + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + true + + + false + + + + + НастройкиУчетаСерий + SearchStringRepresentation + + + + + + + НастройкиУчетаСерий + ViewStatusRepresentation + + Left + + + + + + НастройкиУчетаСерий + SearchControl + + + + + + НастройкиУчетаСерийВыбор + НастройкиУчетаСерийПриАктивизацииСтроки + + + + НастройкиУчетаСерий.ВидНоменклатуры + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид номенклатуры</v8:content> + </v8:item> + + + + + + НастройкиУчетаСерий.ПолитикаУчетаСерий + + + + + НастройкиУчетаСерий.Ссылка + + false + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ссылка</v8:content> + </v8:item> + + + + + +
+
+ + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройки учета серий</v8:content> + </v8:item> + + + cfg:DynamicList + + true + + НастройкиУчетаСерий.ВидНоменклатуры + НастройкиУчетаСерий.ПолитикаУчетаСерий + НастройкиУчетаСерий.Ссылка + + + true + true + ВЫБРАТЬ + ВидыНоменклатурыПолитикиУчетаСерий.Ссылка КАК Ссылка, + ВидыНоменклатурыПолитикиУчетаСерий.ПолитикаУчетаСерий КАК ПолитикаУчетаСерий, + ВидыНоменклатурыПолитикиУчетаСерий.Склад КАК Склад +ПОМЕСТИТЬ ПолитикиУчетаСерийСклада +ИЗ + Справочник.ВидыНоменклатуры.ПолитикиУчетаСерий КАК ВидыНоменклатурыПолитикиУчетаСерий +ГДЕ + ВидыНоменклатурыПолитикиУчетаСерий.Склад = &Склад +; + +//////////////////////////////////////////////////////////////////////////////// +ВЫБРАТЬ + ВидыНоменклатуры.Ссылка КАК Ссылка, + ВидыНоменклатуры.Наименование КАК ВидНоменклатуры, + ПолитикиУчетаСерийСклада.ПолитикаУчетаСерий КАК ПолитикаУчетаСерий +ИЗ + Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры + ЛЕВОЕ СОЕДИНЕНИЕ ПолитикиУчетаСерийСклада КАК ПолитикиУчетаСерийСклада + ПО ВидыНоменклатуры.Ссылка = ПолитикиУчетаСерийСклада.Ссылка +ГДЕ + ВидыНоменклатуры.ИспользоватьСерии + + Ссылка + Ссылка + + + ВидНоменклатуры + ВидНоменклатуры + + + ru + Вид номенклатуры + + + + + ПолитикаУчетаСерий + ПолитикаУчетаСерий + + + Склад + + + ru + Склад + + + + cfg:CatalogRef.СтруктураПредприятия + cfg:CatalogRef.Склады + + + true + + Catalog.ВидыНоменклатуры + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + + + cfg:CatalogRef.Склады + + + +
\ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаНастройкиУчетаСерий/Ext/Form/Module.bsl b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаНастройкиУчетаСерий/Ext/Form/Module.bsl new file mode 100644 index 0000000..c837963 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаНастройкиУчетаСерий/Ext/Form/Module.bsl @@ -0,0 +1,100 @@ + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + УстановитьУсловноеОформление(); + Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. + Возврат; + КонецЕсли; + + НастройкиУчетаСерий.Параметры.УстановитьЗначениеПараметра("Склад", Параметры.Склад); + + СобытияФорм.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка); + + // СтандартныеПодсистемы.ПодключаемыеКоманды + ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект); + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыНастройкиУчетаСерий + +&НаКлиенте +Процедура НастройкиУчетаСерийВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ПоказатьЗначение(Неопределено, Элемент.ТекущиеДанные.Ссылка); + +КонецПроцедуры + +&НаКлиенте +Процедура НастройкиУчетаСерийПриАктивизацииСтроки(Элемент) + + // СтандартныеПодсистемы.ПодключаемыеКоманды + ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект); + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда); + +КонецПроцедуры + +// СтандартныеПодсистемы.ПодключаемыеКоманды +&НаКлиенте +Процедура Подключаемый_ВыполнитьКоманду(Команда) + ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.НастройкиУчетаСерий); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт + ВыполнитьКомандуНаСервере(ПараметрыВыполнения); +КонецПроцедуры + +&НаСервере +Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения) + ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.НастройкиУчетаСерий); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ОбновитьКоманды() + ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.НастройкиУчетаСерий); +КонецПроцедуры +// Конец СтандартныеПодсистемы.ПодключаемыеКоманды + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура УстановитьУсловноеОформление() + + УсловноеОформление.Элементы.Очистить(); + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.НастройкиУчетаСерийПолитикаУчетаСерий.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("НастройкиУчетаСерий.ПолитикаУчетаСерий"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено; + + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента); + Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<на этом складе серии не учитываются>'")); + +КонецПроцедуры + +#КонецОбласти diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаРедактированияСоставаРеквизитов.xml b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаРедактированияСоставаРеквизитов.xml new file mode 100644 index 0000000..4958144 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаРедактированияСоставаРеквизитов.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаРедактированияСоставаРеквизитов + + + ru + Форма редактирования состава реквизитов + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаРедактированияСоставаРеквизитов/Ext/Form.xml b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаРедактированияСоставаРеквизитов/Ext/Form.xml new file mode 100644 index 0000000..af90b04 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаРедактированияСоставаРеквизитов/Ext/Form.xml @@ -0,0 +1,276 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Подбор реквизитов</v8:content> + </v8:item> + + false + + Abort + Cancel + Close + CustomizeForm + Help + Ignore + No + OK + RestoreValues + Retry + SaveValues + Yes + + + + ПриСозданииНаСервере + + + + List + true + true + true + true + true + AsFile + ТаблицаРеквизитов + ТаблицаРеквизитов.КодКартинкиСтроки + + CommonPicture.ЭлементПапка + false + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Таблица реквизитов</v8:content> + </v8:item> + + + Add + CancelSearch + Change + Choose + Copy + CopyToClipboard + Delete + EndEdit + Find + MoveDown + MoveUp + OutputList + SelectAll + SortListAsc + SortListDesc + + + + false + + + false + + + + + + + + ТаблицаРеквизитов + SearchStringRepresentation + + + + + + + ТаблицаРеквизитов + ViewStatusRepresentation + + Left + + + + + + ТаблицаРеквизитов + SearchControl + + + + + + ТаблицаРеквизитовВыборЗначения + ТаблицаРеквизитовВыбор + ТаблицаРеквизитовПередНачаломДобавления + ТаблицаРеквизитовПередУдалением + + + + ТаблицаРеквизитов.ПредставлениеРеквизита + true + EnterOnInput + 30 + false + + + + +
+
+ + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Таблица реквизитов</v8:content> + </v8:item> + + + v8:ValueTable + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Имя реквизита</v8:content> + </v8:item> + + + xs:string + + 255 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Имя реквизита</v8:content> + </v8:item> + + + xs:string + + 255 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Это доп реквизит</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Свойство</v8:content> + </v8:item> + + + cfg:ChartOfCharacteristicTypesRef.ДополнительныеРеквизитыИСведения + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Используется</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Код картинки строки</v8:content> + </v8:item> + + + xs:decimal + + 1 + 0 + Nonnegative + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Функция оповещения</v8:content> + </v8:item> + + + xs:string + + 255 + Variable + + + + + + + + ТаблицаРеквизитов + + + + + ТаблицаРеквизитов.Используется + Equal + true + + + + + Шрифт + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Добавить в панель</v8:content> + </v8:item> + + + + ru + Добавить в панель + + + ДобавитьВПанель + DontUse + + + \ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаРедактированияСоставаРеквизитов/Ext/Form/Module.bsl b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаРедактированияСоставаРеквизитов/Ext/Form/Module.bsl new file mode 100644 index 0000000..1381d89 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаРедактированияСоставаРеквизитов/Ext/Form/Module.bsl @@ -0,0 +1,134 @@ + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест". + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + Если Параметры.Свойство("ФункцияОповещения") Тогда + ФункцияОповещения = Параметры.ФункцияОповещения; + иначе + ФункцияОповещения = "ПодборРеквизитовВТаблицуОтбора"; + КонецЕсли; + + МассивРеквизитовОтбора = ПолучитьИзВременногоХранилища(Параметры.АдресВХранилище); + ЗаполнитьТаблицуЗначенийИзМассива(МассивРеквизитовОтбора); + + ТаблицаРеквизитов.Сортировать("ИмяРеквизита"); + + СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ДобавитьВПанель(Команда) + + ВыполнитьПодборРеквизитов(0); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыТаблицареквизитов + +&НаКлиенте +Процедура ТаблицаРеквизитовПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) + + Отказ = Истина; + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаРеквизитовПередУдалением(Элемент, Отказ) + + Отказ = Истина; + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаРеквизитовВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + ВыполнитьПодборРеквизитов(2); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаРеквизитовВыборЗначения(Элемент, Значение, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + ВыполнитьПодборРеквизитов(2); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура ЗаполнитьТаблицуЗначенийИзМассива(МассивСтрок) + + ТаблицаРеквизитов.Очистить(); + + Для Каждого СтрокаМассива Из МассивСтрок Цикл + + СтрокаТаблицыРеквизитов = ТаблицаРеквизитов.Добавить(); + ЗаполнитьЗначенияСвойств(СтрокаТаблицыРеквизитов, СтрокаМассива); + + КонецЦикла; + +КонецПроцедуры + + +// Выполнение операций по подбору и отмене подбора элементов +// +// Параметры: +// ВариантПодбора - Число - Вариант подбора элементов. 0 - произвести подбор; 1 - произвести отмену подбора; 2 - инвертировать подбор +&НаКлиенте +Процедура ВыполнитьПодборРеквизитов(ВариантПодбора = 0) + + Если Элементы.ТаблицаРеквизитов.ВыделенныеСтроки.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + МассивДобавляемых = Новый Массив; + + Для Каждого ВыделеннаяСтрока Из Элементы.ТаблицаРеквизитов.ВыделенныеСтроки Цикл + + ПараметрыСтроки = Новый Структура("ИмяРеквизита, ЭтоДопРеквизит, Свойство, Используется, ПредставлениеРеквизита, Используется"); + + ДанныеСтроки = Элементы.ТаблицаРеквизитов.ДанныеСтроки(ВыделеннаяСтрока); + Если ВариантПодбора = 0 Тогда + ДанныеСтроки.Используется = Истина; + ИначеЕсли ВариантПодбора = 1 Тогда + ДанныеСтроки.Используется = Ложь; + Иначе + ДанныеСтроки.Используется = Не ДанныеСтроки.Используется; + КонецЕсли; + + ЗаполнитьЗначенияСвойств(ПараметрыСтроки, ДанныеСтроки); + МассивДобавляемых.Добавить(ПараметрыСтроки); + + КонецЦикла; + + //Оповестить("ПодборРеквизитовВТаблицуОтбора", Новый Структура("МассивДобавляемых", МассивДобавляемых)); + Оповестить(ФункцияОповещения, Новый Структура("МассивДобавляемых", МассивДобавляемых)); + +КонецПроцедуры + +#КонецОбласти diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаСписка.xml b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаСписка.xml new file mode 100644 index 0000000..0e383c4 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаСписка.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаСписка + + + ru + Форма списка + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаСписка/Ext/Form.xml b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаСписка/Ext/Form.xml new file mode 100644 index 0000000..7f235e8 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаСписка/Ext/Form.xml @@ -0,0 +1,400 @@ + +
+ + false + + + ОбработкаОповещения + ПриСозданииНаСервере + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа командная панель</v8:content> + </v8:item> + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Создать на основании</v8:content> + </v8:item> + + + CommonPicture.ЗаполнитьПоШаблону + false + + Picture + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа ЭДО</v8:content> + </v8:item> + + + + ru + Группа ЭДО + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа командная панель форма</v8:content> + </v8:item> + + + + ru + Группа командная панель форма + + + Form + + + + + Список + SearchStringRepresentation + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Дополнение строка поиска</v8:content> + </v8:item> + + + + + + + Список + SearchControl + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Дополнение управление поиском</v8:content> + </v8:item> + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа пользовательских настроек</v8:content> + </v8:item> + + Usual + None + false + + + + None + true + true + ExpandTopLevel + true + true + AsFile + Список + Список.DefaultPicture + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список</v8:content> + </v8:item> + + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + ГруппаПользовательскихНастроек + true + + + false + + + + + Список + SearchStringRepresentation + + + + + + + Список + ViewStatusRepresentation + + Left + + + + + + Список + SearchControl + + + + + + СписокПриАктивизацииСтроки + + + + Список.Description + true + 40 + + + + + Список.Описание + + + + + Список.Ref + + false + + + + + +
+
+ + + + cfg:DynamicList + + true + + Список.Ref + + + true + true + ВЫБРАТЬ + ВидыНоменклатуры.Ссылка, + ВидыНоменклатуры.ПометкаУдаления, + ВидыНоменклатуры.Родитель, + ВидыНоменклатуры.ЭтоГруппа, + ВидыНоменклатуры.Наименование, + ВидыНоменклатуры.АлкогольнаяПродукция, + ВидыНоменклатуры.ВариантОформленияПродажи, + ВидыНоменклатуры.ВариантПредставленияНабораВПечатныхФормах, + ВидыНоменклатуры.ВариантРасчетаЦеныНабора, + ВидыНоменклатуры.ВестиУчетПоГТД, + ВидыНоменклатуры.ВестиУчетСертификатовНоменклатуры, + ВидыНоменклатуры.ВидАлкогольнойПродукции, + ВидыНоменклатуры.ВладелецСерий, + ВидыНоменклатуры.ВладелецТоварныхКатегорий, + ВидыНоменклатуры.ВладелецХарактеристик, + ВидыНоменклатуры.ГруппаАналитическогоУчета, + ВидыНоменклатуры.ГруппаДоступа, + ВидыНоменклатуры.ГруппаФинансовогоУчета, + ВидыНоменклатуры.ЕдиницаДляОтчетов, + ВидыНоменклатуры.ЕдиницаИзмерения, + ВидыНоменклатуры.ЕдиницаИзмеренияСрокаГодности, + ВидыНоменклатуры.ЗапретРедактированияНаименованияДляПечатиНоменклатуры, + ВидыНоменклатуры.ЗапретРедактированияНаименованияДляПечатиХарактеристики, + ВидыНоменклатуры.ЗапретРедактированияРабочегоНаименованияНоменклатуры, + ВидыНоменклатуры.ЗапретРедактированияРабочегоНаименованияХарактеристики, + ВидыНоменклатуры.ИмпортнаяАлкогольнаяПродукция, + ВидыНоменклатуры.ИспользованиеХарактеристик, + ВидыНоменклатуры.ИспользоватьИндивидуальноеНаименованиеПриПечати, + ВидыНоменклатуры.ИспользоватьКоличествоСерии, + ВидыНоменклатуры.ИспользоватьНомерСерии, + ВидыНоменклатуры.ИспользоватьСерии, + ВидыНоменклатуры.ИспользоватьСрокГодностиСерии, + ВидыНоменклатуры.ИспользоватьУпаковки, + ВидыНоменклатуры.ИспользоватьХарактеристики, + ВидыНоменклатуры.КонтролироватьДублиНоменклатуры, + ВидыНоменклатуры.КонтролироватьДублиХарактеристик, + ВидыНоменклатуры.КоэффициентЕдиницыДляОтчетов, + ВидыНоменклатуры.НаборСвойств, + ВидыНоменклатуры.НаборСвойствСерий, + ВидыНоменклатуры.НаборСвойствХарактеристик, + ВидыНоменклатуры.НаборУпаковок, + ВидыНоменклатуры.НаименованиеДляПечати, + ВидыНоменклатуры.НастройкаИспользованияСерий, + ВидыНоменклатуры.НоменклатураМногооборотнаяТара, + ВидыНоменклатуры.ОбособленнаяЗакупкаПродажа, + ВидыНоменклатуры.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры, + ВидыНоменклатуры.Описание, + ВидыНоменклатуры.УдалитьПодакцизныйТовар, + ВидыНоменклатуры.ПоставляетсяВМногооборотнойТаре, + ВидыНоменклатуры.СезоннаяГруппа, + ВидыНоменклатуры.ПолитикаУчетаСерий, + ВидыНоменклатуры.СкладскаяГруппа, + ВидыНоменклатуры.СодержитДрагоценныеМатериалы, + ВидыНоменклатуры.ТипНоменклатуры, + ВидыНоменклатуры.ТочностьУказанияСрокаГодностиСерии, + ВидыНоменклатуры.СтавкаНДС, + ВидыНоменклатуры.ХарактеристикаМногооборотнаяТара, + ВидыНоменклатуры.ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры, + ВидыНоменклатуры.ШаблонНаименованияДляПечатиНоменклатуры, + ВидыНоменклатуры.ШаблонНаименованияДляПечатиХарактеристики, + ВидыНоменклатуры.ШаблонРабочегоНаименованияНоменклатуры, + ВидыНоменклатуры.ШаблонРабочегоНаименованияСерии, + ВидыНоменклатуры.ШаблонРабочегоНаименованияХарактеристики, + ВидыНоменклатуры.ШаблонЦенника, + ВидыНоменклатуры.ШаблонЭтикетки, + ВидыНоменклатуры.ШаблонЭтикеткиСерии, + ВидыНоменклатуры.КодОКВЭД, + ВидыНоменклатуры.КодТНВЭД, + ВидыНоменклатуры.КодОКП, + ВидыНоменклатуры.СхемаОбеспечения, + ВидыНоменклатуры.СпособОбеспеченияПотребностей, + ВидыНоменклатуры.ЦеноваяГруппа, + ВидыНоменклатуры.Крепость, + ВидыНоменклатуры.ОсобенностьУчета, + ВидыНоменклатуры.ПродукцияМаркируемаяДляГИСМ, + ВидыНоменклатуры.КиЗГИСМ, + ВидыНоменклатуры.ИспользоватьRFIDМеткиСерии, + ВидыНоменклатуры.ИспользоватьНомерКИЗГИСМСерии, + ВидыНоменклатуры.ПодконтрольнаяПродукцияВЕТИС, + ВидыНоменклатуры.КодРаздел7ДекларацииНДС, + ВидыНоменклатуры.АвтоматическиГенерироватьСерии, + ВидыНоменклатуры.ИспользоватьДатуПроизводстваСерии, + ВидыНоменклатуры.ИспользоватьПроизводителяЕГАИССерии, + ВидыНоменклатуры.ИспользоватьСправку2ЕГАИССерии, + ВидыНоменклатуры.ИспользоватьПроизводителяВЕТИССерии, + ВидыНоменклатуры.ИспользоватьЗаписьСкладскогоЖурналаВЕТИССерии, + ВидыНоменклатуры.ИспользоватьИдентификаторПартииВЕТИССерии, + ВидыНоменклатуры.ОблагаетсяНДСУПокупателя, + ВидыНоменклатуры.УдалитьКодОКВЭД2, + ВидыНоменклатуры.КодОКПД2, + ВидыНоменклатуры.ИспользоватьМРЦМОТПСерии, + ВидыНоменклатуры.НастройкиКлючаЦенПоНоменклатуре, + ВидыНоменклатуры.НастройкиКлючаЦенПоХарактеристике, + ВидыНоменклатуры.НастройкиКлючаЦенПоСерии, + ВидыНоменклатуры.НастройкиКлючаЦенПоУпаковке, + ВидыНоменклатуры.ШаблонНаименованияДляПечатиКлючаЦен, + ВидыНоменклатуры.ШаблонРабочегоНаименованияКлючаЦен, + ВидыНоменклатуры.РазрезыЦенообразования, + ВидыНоменклатуры.ШаблонНаименованияДляПечатиНоменклатурыИсторияПереходаНаНовыеФормулы, + ВидыНоменклатуры.ШаблонНаименованияДляПечатиХарактеристикиИсторияПереходаНаНовыеФормулы, + ВидыНоменклатуры.ШаблонРабочегоНаименованияНоменклатурыИсторияПереходаНаНовыеФормулы, + ВидыНоменклатуры.ШаблонРабочегоНаименованияСерииИсторияПереходаНаНовыеФормулы, + ВидыНоменклатуры.ШаблонРабочегоНаименованияХарактеристикиИсторияПереходаНаНовыеФормулы, + ВидыНоменклатуры.ЗапрещенаПродажаЧерезПатент, + ВидыНоменклатуры.КодОКВЭД2, + ВидыНоменклатуры.РеквизитыДляКонтроляНоменклатуры.*, + ВидыНоменклатуры.РеквизитыДляКонтроляХарактеристик.*, + ВидыНоменклатуры.РеквизитыДляКонтроляСерий.*, + ВидыНоменклатуры.РеквизитыБыстрогоОтбораНоменклатуры.*, + ВидыНоменклатуры.РеквизитыБыстрогоОтбораХарактеристик.*, + ВидыНоменклатуры.ПолитикиУчетаСерий.*, + ВидыНоменклатуры.РеквизитыХарактеристикДляКлючаЦен.*, + ВидыНоменклатуры.РеквизитыСерийДляКлючаЦен.*, + ВидыНоменклатуры.Предопределенный, + ВидыНоменклатуры.ИмяПредопределенныхДанных, + ВидыНоменклатуры.НаименованиеЯзык1, + ВидыНоменклатуры.НаименованиеЯзык2 + ИЗ + Справочник.ВидыНоменклатуры + КАК + ВидыНоменклатуры + Catalog.ВидыНоменклатуры + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Несколько видов номенклатуры</v8:content> + </v8:item> + + + xs:boolean + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Изменить выделенные</v8:content> + </v8:item> + + + + ru + Изменить выделенные объекты + + + ИзменитьВыделенные + true + DontUse + + +
\ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаСписка/Ext/Form/Module.bsl b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаСписка/Ext/Form/Module.bsl new file mode 100644 index 0000000..4e1d774 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаСписка/Ext/Form/Module.bsl @@ -0,0 +1,113 @@ +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. + Возврат; + КонецЕсли; + + Если Параметры.Свойство("СтавкаНДС") Тогда + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( + Список, "СтавкаНДС", Параметры.СтавкаНДС); + Список.АвтоматическоеСохранениеПользовательскихНастроек = Ложь; + Элементы.Список.Отображение = ОтображениеТаблицы.Список; + КонецЕсли; + + СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); + + НесколькоВидовНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоВидовНоменклатуры"); + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + РаботаСНоменклатурой.ПриСозданииНаСервереФормаСпискаВидаНоменклатуры(ЭтотОбъект, Элементы.ГруппаЭДО); + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + + // СтандартныеПодсистемы.ПодключаемыеКоманды + ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения(); + ПараметрыРазмещения.КоманднаяПанель = Элементы.ГруппаКоманднаяПанель; + ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения); + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + + ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект); + + МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + Если ИмяСобытия = РаботаСНоменклатуройКлиент.ОписаниеОповещенийПодсистемы().ЗагрузкаКатегорий Тогда + Если Параметр.Количество() > 0 Тогда + Элементы.Список.ТекущаяСтрока = Параметр[0]; + КонецЕсли; + КонецЕсли; + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок + +&НаКлиенте +Процедура СписокПриАктивизацииСтроки(Элемент) + + // СтандартныеПодсистемы.ПодключаемыеКоманды + ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект); + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ИзменитьВыделенные(Команда) + ГрупповоеИзменениеОбъектовКлиент.ИзменитьВыделенные(Элементы.Список); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда); + +КонецПроцедуры + +#КонецОбласти + +#Область ПодключаемыеКоманды + +// ЭлектронноеВзаимодействие.РаботаСНоменклатурой +&НаКлиенте +Процедура Подключаемый_ПодобратьКатегорииИзСервиса(Команда) + + РаботаСНоменклатуройКлиент.ПодобратьКатегорииИзСервиса(ЭтотОбъект); + +КонецПроцедуры +// Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + +// СтандартныеПодсистемы.ПодключаемыеКоманды +&НаКлиенте +Процедура Подключаемый_ВыполнитьКоманду(Команда) + ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт + ВыполнитьКомандуНаСервере(ПараметрыВыполнения); +КонецПроцедуры + +&НаСервере +Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения) + ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ОбновитьКоманды() + ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список); +КонецПроцедуры +// Конец СтандартныеПодсистемы.ПодключаемыеКоманды +#КонецОбласти \ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаСпискаДляНастройкиЦенообразования.xml b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаСпискаДляНастройкиЦенообразования.xml new file mode 100644 index 0000000..cf7c4d5 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаСпискаДляНастройкиЦенообразования.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаСпискаДляНастройкиЦенообразования + + + ru + Форма списка для настройки ценообразования + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаСпискаДляНастройкиЦенообразования/Ext/Form.xml b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаСпискаДляНастройкиЦенообразования/Ext/Form.xml new file mode 100644 index 0000000..1bffd83 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаСпискаДляНастройкиЦенообразования/Ext/Form.xml @@ -0,0 +1,887 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Виды номенклатуры (настройка ценообразования)</v8:content> + </v8:item> + + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Создать на основании</v8:content> + </v8:item> + + + CommonPicture.ЗаполнитьПоШаблону + false + + Picture + + + + + + + ПриСозданииНаСервере + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>User settings group</v8:content> + </v8:item> + + false + Vertical + Usual + false + + + + Tree + None + true + ExpandTopLevel + true + true + Список + Список.DefaultPicture + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + СписокКомпоновщикНастроекПользовательскиеНастройки + true + + + + + + + false + + + + + Список + SearchStringRepresentation + + + + + + + Список + ViewStatusRepresentation + + Left + + + + + + Список + SearchControl + + + + + + СписокВыбор + СписокПриАктивизацииСтроки + СписокПриПолученииДанныхНаСервере + + + + Список.Наименование + true + + + + + Список.ВидНоменклатуры + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид номенклатуры</v8:content> + </v8:item> + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Виды номенклатуры группа характеристики</v8:content> + </v8:item> + + InCell + + + + Список.УстановитьХарактеристики + None + + + + + Список.ХарактеристикиОписание + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Характеристики</v8:content> + </v8:item> + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Виды номенклатуры группа серии</v8:content> + </v8:item> + + InCell + + + + Список.УстановитьСерии + None + + + + + Список.СерииОписание + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Серии</v8:content> + </v8:item> + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Виды номенклатуры группа упаковки</v8:content> + </v8:item> + + InCell + + + + Список.УстановитьУпаковки + None + + + + + Список.УпаковкиОписание + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Упаковки</v8:content> + </v8:item> + + + + + + + +
+
+ + + + cfg:DynamicList + + true + + Список.ИспользоватьСерии + Список.ИспользоватьУпаковки + Список.ИспользоватьХарактеристики + Список.ЭтоГруппа + + + true + true + ВЫБРАТЬ + ВидыНоменклатуры.Наименование КАК Наименование, + ВидыНоменклатуры.Ссылка КАК ВидНоменклатуры, + ВидыНоменклатуры.ЭтоГруппа, + ВидыНоменклатуры.ИспользоватьХарактеристики КАК ИспользоватьХарактеристики, + ВидыНоменклатуры.ИспользоватьСерии КАК ИспользоватьСерии, + Истина КАК ИспользоватьУпаковки, + ВЫБОР + КОГДА ВидыНоменклатуры.ЭтоГруппа + ИЛИ + НЕ ВидыНоменклатуры.ИспользоватьХарактеристики + ТОГДА 2 + КОГДА + ВидыНоменклатуры.НастройкиКлючаЦенПоХарактеристике = ЗНАЧЕНИЕ(Перечисление.ВариантОтбораДляКлючаЦен.НеИспользовать) + ТОГДА 1 + ИНАЧЕ 0 + КОНЕЦ КАК УстановитьХарактеристики, + ВЫБОР + КОГДА ВидыНоменклатуры.ЭтоГруппа + ИЛИ + НЕ ВидыНоменклатуры.ИспользоватьСерии + ТОГДА 2 + КОГДА + ВидыНоменклатуры.НастройкиКлючаЦенПоСерии = ЗНАЧЕНИЕ(Перечисление.ВариантОтбораДляКлючаЦен.НеИспользовать) + ТОГДА 1 + ИНАЧЕ 0 + КОНЕЦ КАК УстановитьСерии, + ВЫБОР + КОГДА ВидыНоменклатуры.ЭтоГруппа + ТОГДА 2 + КОГДА + ВидыНоменклатуры.НастройкиКлючаЦенПоУпаковке = ЗНАЧЕНИЕ(Перечисление.ВариантОтбораДляКлючаЦен.НеИспользовать) + ТОГДА 1 + ИНАЧЕ 0 + КОНЕЦ КАК УстановитьУпаковки, + ВЫРАЗИТЬ("" КАК СТРОКА(200)) КАК ХарактеристикиОписание, + ВЫРАЗИТЬ("" КАК СТРОКА(200)) КАК СерииОписание, + ВЫРАЗИТЬ("" КАК СТРОКА(200)) КАК УпаковкиОписание, + ВидыНоменклатуры.НастройкиКлючаЦенПоХарактеристике, + ВидыНоменклатуры.НастройкиКлючаЦенПоСерии, + ВидыНоменклатуры.НастройкиКлючаЦенПоУпаковке +ИЗ + Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры +ГДЕ + НЕ ВидыНоменклатуры.ПометкаУдаления + + АлкогольнаяПродукция + АлкогольнаяПродукция + + + Ссылка + Ссылка + + + ШаблонРабочегоНаименованияСерии + ШаблонРабочегоНаименованияСерии + + + ИспользоватьСрокГодностиСерии + ИспользоватьСрокГодностиСерии + + + ЕдиницаДляОтчетов + ЕдиницаДляОтчетов + + + ВариантОформленияПродажи + ВариантОформленияПродажи + + + ШаблонЭтикетки + ШаблонЭтикетки + + + ВестиУчетСертификатовНоменклатуры + ВестиУчетСертификатовНоменклатуры + + + ВариантПредставленияНабораВПечатныхФормах + ВариантПредставленияНабораВПечатныхФормах + + + ЗапретРедактированияНаименованияДляПечатиХарактеристики + ЗапретРедактированияНаименованияДляПечатиХарактеристики + + + ВариантРасчетаЦеныНабора + ВариантРасчетаЦеныНабора + + + ВладелецСерий + ВладелецСерий + + + ИспользованиеХарактеристик + ИспользованиеХарактеристик + + + РеквизитыБыстрогоОтбораХарактеристик + РеквизитыБыстрогоОтбораХарактеристик + + + ВидАлкогольнойПродукции + ВидАлкогольнойПродукции + + + РеквизитыДляКонтроляХарактеристик + РеквизитыДляКонтроляХарактеристик + + + ВестиУчетПоГТД + ВестиУчетПоГТД + + + ХарактеристикаМногооборотнаяТара + ХарактеристикаМногооборотнаяТара + + + Родитель + Родитель + + + НаборСвойствХарактеристик + НаборСвойствХарактеристик + + + ВладелецТоварныхКатегорий + ВладелецТоварныхКатегорий + + + ГруппаДоступа + ГруппаДоступа + + + ВладелецХарактеристик + ВладелецХарактеристик + + + ГруппаАналитическогоУчета + ГруппаАналитическогоУчета + + + ОсобенностьУчета + ОсобенностьУчета + + + ТипНоменклатуры + ТипНоменклатуры + + + КонтролироватьДублиНоменклатуры + КонтролироватьДублиНоменклатуры + + + ГруппаФинансовогоУчета + ГруппаФинансовогоУчета + + + ЕдиницаИзмерения + ЕдиницаИзмерения + + + ЕдиницаИзмеренияСрокаГодности + ЕдиницаИзмеренияСрокаГодности + + + КодТНВЭД + КодТНВЭД + + + ЗапретРедактированияНаименованияДляПечатиНоменклатуры + ЗапретРедактированияНаименованияДляПечатиНоменклатуры + + + КодОКП + КодОКП + + + ЦеноваяГруппа + ЦеноваяГруппа + + + ЗапретРедактированияРабочегоНаименованияНоменклатуры + ЗапретРедактированияРабочегоНаименованияНоменклатуры + + + ЗапретРедактированияРабочегоНаименованияХарактеристики + ЗапретРедактированияРабочегоНаименованияХарактеристики + + + ИмпортнаяАлкогольнаяПродукция + ИмпортнаяАлкогольнаяПродукция + + + СезоннаяГруппа + СезоннаяГруппа + + + ИспользоватьИндивидуальноеНаименованиеПриПечати + ИспользоватьИндивидуальноеНаименованиеПриПечати + + + ИспользоватьКоличествоСерии + ИспользоватьКоличествоСерии + + + СпособОбеспеченияПотребностей + СпособОбеспеченияПотребностей + + + ИспользоватьНомерСерии + ИспользоватьНомерСерии + + + ШаблонРабочегоНаименованияНоменклатуры + ШаблонРабочегоНаименованияНоменклатуры + + + НаборУпаковок + НаборУпаковок + + + КонтролироватьДублиХарактеристик + КонтролироватьДублиХарактеристик + + + КоэффициентЕдиницыДляОтчетов + КоэффициентЕдиницыДляОтчетов + + + НаборСвойств + НаборСвойств + + + НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + + + НаборСвойствСерий + НаборСвойствСерий + + + НаименованиеДляПечати + НаименованиеДляПечати + + + ПолитикаУчетаСерий + ПолитикаУчетаСерий + + + НастройкаИспользованияСерий + НастройкаИспользованияСерий + + + НоменклатураМногооборотнаяТара + НоменклатураМногооборотнаяТара + + + ОбособленнаяЗакупкаПродажа + ОбособленнаяЗакупкаПродажа + + + Описание + Описание + + + ПоставляетсяВМногооборотнойТаре + ПоставляетсяВМногооборотнойТаре + + + СхемаОбеспечения + СхемаОбеспечения + + + ПолитикиУчетаСерий + ПолитикиУчетаСерий + + + СкладскаяГруппа + СкладскаяГруппа + + + СодержитДрагоценныеМатериалы + СодержитДрагоценныеМатериалы + + + ШаблонНаименованияДляПечатиНоменклатуры + ШаблонНаименованияДляПечатиНоменклатуры + + + ТочностьУказанияСрокаГодностиСерии + ТочностьУказанияСрокаГодностиСерии + + + КодОКВЭД2 + КодОКВЭД2 + + + СтавкаНДС + СтавкаНДС + + + КодОКВЭД + КодОКВЭД + + + ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры + ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры + + + ШаблонНаименованияДляПечатиХарактеристики + ШаблонНаименованияДляПечатиХарактеристики + + + ШаблонРабочегоНаименованияХарактеристики + ШаблонРабочегоНаименованияХарактеристики + + + ШаблонЦенника + ШаблонЦенника + + + ШаблонЭтикеткиСерии + ШаблонЭтикеткиСерии + + + Крепость + Крепость + + + ИспользоватьЗаписьСкладскогоЖурналаВЕТИССерии + ИспользоватьЗаписьСкладскогоЖурналаВЕТИССерии + + + ПродукцияМаркируемаяДляГИСМ + ПродукцияМаркируемаяДляГИСМ + + + КиЗГИСМ + КиЗГИСМ + + + ИспользоватьПроизводителяЕГАИССерии + ИспользоватьПроизводителяЕГАИССерии + + + ИспользоватьRFIDМеткиСерии + ИспользоватьRFIDМеткиСерии + + + ИспользоватьНомерКИЗГИСМСерии + ИспользоватьНомерКИЗГИСМСерии + + + ПодконтрольнаяПродукцияВЕТИС + ПодконтрольнаяПродукцияВЕТИС + + + КодРаздел7ДекларацииНДС + КодРаздел7ДекларацииНДС + + + АвтоматическиГенерироватьСерии + АвтоматическиГенерироватьСерии + + + ИмяПредопределенныхДанных + ИмяПредопределенныхДанных + + + ИспользоватьДатуПроизводстваСерии + ИспользоватьДатуПроизводстваСерии + + + ИспользоватьСправку2ЕГАИССерии + ИспользоватьСправку2ЕГАИССерии + + + ИспользоватьПроизводителяВЕТИССерии + ИспользоватьПроизводителяВЕТИССерии + + + ИспользоватьИдентификаторПартииВЕТИССерии + ИспользоватьИдентификаторПартииВЕТИССерии + + + ОблагаетсяНДСУПокупателя + ОблагаетсяНДСУПокупателя + + + ИспользоватьМРЦМОТПСерии + ИспользоватьМРЦМОТПСерии + + + КодОКПД2 + КодОКПД2 + + + НастройкиКлючаЦенПоНоменклатуре + НастройкиКлючаЦенПоНоменклатуре + + + ШаблонНаименованияДляПечатиКлючаЦен + ШаблонНаименованияДляПечатиКлючаЦен + + + ШаблонРабочегоНаименованияКлючаЦен + ШаблонРабочегоНаименованияКлючаЦен + + + РазрезыЦенообразования + РазрезыЦенообразования + + + ШаблонНаименованияДляПечатиНоменклатурыИсторияПереходаНаНовыеФормулы + ШаблонНаименованияДляПечатиНоменклатурыИсторияПереходаНаНовыеФормулы + + + ШаблонНаименованияДляПечатиХарактеристикиИсторияПереходаНаНовыеФормулы + ШаблонНаименованияДляПечатиХарактеристикиИсторияПереходаНаНовыеФормулы + + + ШаблонРабочегоНаименованияНоменклатурыИсторияПереходаНаНовыеФормулы + ШаблонРабочегоНаименованияНоменклатурыИсторияПереходаНаНовыеФормулы + + + ШаблонРабочегоНаименованияСерииИсторияПереходаНаНовыеФормулы + ШаблонРабочегоНаименованияСерииИсторияПереходаНаНовыеФормулы + + + ШаблонРабочегоНаименованияХарактеристикиИсторияПереходаНаНовыеФормулы + ШаблонРабочегоНаименованияХарактеристикиИсторияПереходаНаНовыеФормулы + + + РеквизитыДляКонтроляНоменклатуры + РеквизитыДляКонтроляНоменклатуры + + + РеквизитыДляКонтроляСерий + РеквизитыДляКонтроляСерий + + + РеквизитыБыстрогоОтбораНоменклатуры + РеквизитыБыстрогоОтбораНоменклатуры + + + РеквизитыХарактеристикДляКлючаЦен + РеквизитыХарактеристикДляКлючаЦен + + + РеквизитыСерийДляКлючаЦен + РеквизитыСерийДляКлючаЦен + + + Предопределенный + Предопределенный + + + ВидНоменклатуры + ВидНоменклатуры + + + ru + Вид номенклатуры + + + + + ЭтоГруппа + ЭтоГруппа + + + ИспользоватьХарактеристики + ИспользоватьХарактеристики + + + ИспользоватьСерии + ИспользоватьСерии + + + ИспользоватьУпаковки + ИспользоватьУпаковки + + + ru + Использовать упаковки + + + + + УстановитьХарактеристики + УстановитьХарактеристики + + + ru + Установить характеристики + + + + + ПометкаУдаления + ПометкаУдаления + + + УстановитьСерии + УстановитьСерии + + + ru + Установить серии + + + + + УстановитьУпаковки + УстановитьУпаковки + + + ru + Установить упаковки + + + + + ХарактеристикиОписание + ХарактеристикиОписание + + + ru + Характеристики описание + + + + + СерииОписание + СерииОписание + + + ru + Серии описание + + + + + УпаковкиОписание + УпаковкиОписание + + + ru + Упаковки описание + + + + + НастройкиКлючаЦенПоХарактеристике + НастройкиКлючаЦенПоХарактеристике + + + НастройкиКлючаЦенПоСерии + НастройкиКлючаЦенПоСерии + + + НастройкиКлючаЦенПоУпаковке + НастройкиКлючаЦенПоУпаковке + + + Наименование + Наименование + + + УдалитьПодакцизныйТовар + УдалитьПодакцизныйТовар + + + ЗапрещенаПродажаЧерезПатент + ЗапрещенаПродажаЧерезПатент + + Catalog.ВидыНоменклатуры + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать характеристики номенклатуры</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать серии номенклатуры</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать упаковки номенклатуры</v8:content> + </v8:item> + + + xs:boolean + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Изменить настройки ценообразования</v8:content> + </v8:item> + + ИзменитьНастройкиЦенообразования + + FunctionalOption.ИспользоватьСерииНоменклатуры + FunctionalOption.ИспользоватьУпаковкиНоменклатуры + FunctionalOption.ИспользоватьХарактеристикиНоменклатуры + + + +
\ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаСпискаДляНастройкиЦенообразования/Ext/Form/Module.bsl b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаСпискаДляНастройкиЦенообразования/Ext/Form/Module.bsl new file mode 100644 index 0000000..c471a19 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаСпискаДляНастройкиЦенообразования/Ext/Form/Module.bsl @@ -0,0 +1,396 @@ +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. + Возврат; + КонецЕсли; + + ИспользоватьХарактеристикиНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьХарактеристикиНоменклатуры"); + ИспользоватьСерииНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьСерииНоменклатуры"); + ИспользоватьУпаковкиНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьУпаковкиНоменклатуры"); + + УстановитьУсловноеОформление(); + + УстановитьНастройкиПоФО(); + + СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); + + // СтандартныеПодсистемы.ПодключаемыеКоманды + ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект); + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьНастройкиЦенообразования(Команда) + + ИзменитьНастройкиЦенообразованияОткрыть(); + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьНастройкиЦенообразованияОткрыть() + + ТекущиеДанные = Элементы.Список.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Или ТекущиеДанные.ЭтоГруппа Тогда + Возврат; + КонецЕсли; + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ВариантХарактеристики", 2); + ПараметрыФормы.Вставить("ВариантСерии", 2); + ПараметрыФормы.Вставить("ВариантУпаковки", 2); + + Если Элементы.Список.ВыделенныеСтроки.Количество()>1 Тогда + + ПараметрыФормы.Вставить("ИспользоватьХарактеристики", ИспользоватьХарактеристикиНоменклатуры); + ПараметрыФормы.Вставить("ИспользоватьСерии", ИспользоватьСерииНоменклатуры); + ПараметрыФормы.Вставить("ИспользоватьУпаковки", ИспользоватьУпаковкиНоменклатуры); + + Иначе + + ПараметрыФормы.Вставить("ИспользоватьХарактеристики", ТекущиеДанные.ИспользоватьХарактеристики И ИспользоватьХарактеристикиНоменклатуры); + ПараметрыФормы.Вставить("ИспользоватьСерии", ТекущиеДанные.ИспользоватьСерии И ИспользоватьСерииНоменклатуры); + ПараметрыФормы.Вставить("ИспользоватьУпаковки", ТекущиеДанные.ИспользоватьУпаковки И ИспользоватьУпаковкиНоменклатуры); + + КонецЕсли; + + + ОписаниеОповещенияПриЗакрытии = Новый ОписаниеОповещения("ИзменитьНастройкиЦенообразованияЗавершение", ЭтотОбъект); + + ОткрытьФорму("Справочник.ВидыНоменклатуры.Форма.ФормаНастройкиРазрезовЦенообразования",ПараметрыФормы, ЭтаФорма,,,,ОписаниеОповещенияПриЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры + +&НаКлиенте +Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ТекущиеДанные = Элемент.ТекущиеДанные; + + Если ТекущиеДанные <> Неопределено Тогда + Если НЕ ТекущиеДанные.ЭтоГруппа Тогда + Если Поле = Элементы.ВидНоменклатуры Тогда + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("Ключ", ТекущиеДанные.ВидНоменклатуры); + ПараметрыФормы.Вставить("ИспользуетсяЦенообразование25", Истина); + ОткрытьФорму("Справочник.ВидыНоменклатуры.ФормаОбъекта", ПараметрыФормы, Элементы.Список); + + Иначе + + ИзменитьНастройкиЦенообразованияОткрыть(); + + КонецЕсли; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СписокПриАктивизацииСтроки(Элемент) + + // СтандартныеПодсистемы.ПодключаемыеКоманды + ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект); + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + +КонецПроцедуры + +#КонецОбласти + +#Область ПодключаемыеКоманды + +// ЭлектронноеВзаимодействие.РаботаСНоменклатурой +&НаКлиенте +Процедура Подключаемый_ПодобратьКатегорииИзСервиса(Команда) + + РаботаСНоменклатуройКлиент.ПодобратьКатегорииИзСервиса(ЭтотОбъект); + +КонецПроцедуры +// Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + +// СтандартныеПодсистемы.ПодключаемыеКоманды +&НаКлиенте +Процедура Подключаемый_ВыполнитьКоманду(Команда) + ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт + ВыполнитьКомандуНаСервере(ПараметрыВыполнения); +КонецПроцедуры + +&НаСервере +Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения) + ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ОбновитьКоманды() + ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список); +КонецПроцедуры + +// Конец СтандартныеПодсистемы.ПодключаемыеКоманды + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область Прочее + +&НаСервере +Процедура УстановитьНастройкиПоФО() + + Элементы.ВидыНоменклатурыГруппаХарактеристики.Видимость = ИспользоватьХарактеристикиНоменклатуры; + Элементы.ВидыНоменклатурыГруппаСерии.Видимость = ИспользоватьСерииНоменклатуры; + Элементы.ВидыНоменклатурыГруппаУпаковки.Видимость = ИспользоватьУпаковкиНоменклатуры; + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьНастройкиЦенообразованияЗавершение(РезультатОповещения, ПараметрыОповещения) Экспорт + + ТекущиеДанные = Элементы.Список.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Или ТекущиеДанные.ЭтоГруппа Тогда + Возврат; + КонецЕсли; + + ВидыНоменклатуры = Новый Массив(); + Если Элементы.Список.ВыделенныеСтроки.Количество()>1 Тогда + Для Каждого Строка Из Элементы.Список.ВыделенныеСтроки Цикл + ВидыНоменклатуры.Добавить(Строка); + КонецЦикла; + Иначе + ВидыНоменклатуры.Добавить(ТекущиеДанные.ВидНоменклатуры); + КонецЕсли; + + ИзменитьНастройкиЦенообразованияЗавершениеСервер(ВидыНоменклатуры, РезультатОповещения); + + Элементы.Список.Обновить(); + +КонецПроцедуры + +&НаСервере +Процедура ИзменитьНастройкиЦенообразованияЗавершениеСервер(ВидыНоменклатуры, РезультатОповещения) Экспорт + + ПараметрыУстановки = Новый Структура("НастройкиКлючаЦенПоХарактеристике, НастройкиКлючаЦенПоСерии, НастройкиКлючаЦенПоУпаковке", Неопределено, Неопределено,Неопределено,); + + Если РезультатОповещения.ВариантХарактеристики = 0 Тогда + ПараметрыУстановки.НастройкиКлючаЦенПоХарактеристике = Перечисления.ВариантОтбораДляКлючаЦен.НеИспользовать; + ИначеЕсли РезультатОповещения.ВариантХарактеристики = 1 Тогда + ПараметрыУстановки.НастройкиКлючаЦенПоХарактеристике = Перечисления.ВариантОтбораДляКлючаЦен.Использовать; + КонецЕсли; + + Если РезультатОповещения.ВариантСерии = 0 Тогда + ПараметрыУстановки.НастройкиКлючаЦенПоСерии = Перечисления.ВариантОтбораДляКлючаЦен.НеИспользовать; + ИначеЕсли РезультатОповещения.ВариантСерии = 1 Тогда + ПараметрыУстановки.НастройкиКлючаЦенПоСерии = Перечисления.ВариантОтбораДляКлючаЦен.Использовать; + КонецЕсли; + + Если РезультатОповещения.ВариантУпаковки = 0 Тогда + ПараметрыУстановки.НастройкиКлючаЦенПоУпаковке = Перечисления.ВариантОтбораДляКлючаЦен.НеИспользовать; + ИначеЕсли РезультатОповещения.ВариантУпаковки = 1 Тогда + ПараметрыУстановки.НастройкиКлючаЦенПоУпаковке = Перечисления.ВариантОтбораДляКлючаЦен.Использовать; + КонецЕсли; + + Справочники.ВидыНоменклатуры.УстановитьРеквизитыЦенообразования(ВидыНоменклатуры, ПараметрыУстановки); + +КонецПроцедуры + +&НаСервере +Процедура УстановитьУсловноеОформление() + + УсловноеОформление.Элементы.Очистить(); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.УстановитьХарактеристики.Имя); + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ХарактеристикиОписание.Имя); + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.ИспользоватьХарактеристики"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.ЭтоГруппа"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина); + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.ДымчатоБелый); + Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<характеристики не используются>'")); + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветНедоступногоТекста); + + Элемент = УсловноеОформление.Элементы.Добавить(); + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ХарактеристикиОписание.Имя); + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.ИспользоватьХарактеристики"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.УстановитьХарактеристики"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно; + ОтборЭлемента.ПравоеЗначение = 0; + Элемент.Оформление.УстановитьЗначениеПараметра("Текст", ""); + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветНедоступногоТекста); + + Элемент = УсловноеОформление.Элементы.Добавить(); + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.УстановитьСерии.Имя); + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СерииОписание.Имя); + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.ИспользоватьСерии"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.ЭтоГруппа"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина); + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.ДымчатоБелый); + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветНедоступногоТекста); + Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<серии не используются>'")); + + Элемент = УсловноеОформление.Элементы.Добавить(); + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СерииОписание.Имя); + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.ИспользоватьСерии"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.УстановитьСерии"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно; + ОтборЭлемента.ПравоеЗначение = 0; + Элемент.Оформление.УстановитьЗначениеПараметра("Текст", ""); + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветНедоступногоТекста); + + Элемент = УсловноеОформление.Элементы.Добавить(); + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.УстановитьУпаковки.Имя); + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.УпаковкиОписание.Имя); + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.ИспользоватьУпаковки"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.ЭтоГруппа"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина); + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.ДымчатоБелый); + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветНедоступногоТекста); + Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<упаковки не используются>'")); + + Элемент = УсловноеОформление.Элементы.Добавить(); + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.УпаковкиОписание.Имя); + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.ИспользоватьУпаковки"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.УстановитьУпаковки"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно; + ОтборЭлемента.ПравоеЗначение = 0; + Элемент.Оформление.УстановитьЗначениеПараметра("Текст", ""); + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветНедоступногоТекста); + + Элемент = УсловноеОформление.Элементы.Добавить(); + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ВидНоменклатуры.Имя); + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.ИспользоватьХарактеристики"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.ИспользоватьСерии"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.ИспользоватьУпаковки"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.ДымчатоБелый); + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветНедоступногоТекста); + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки) + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ВидыНоменклатуры.Ссылка КАК ВидНоменклатуры, + | ВидыНоменклатуры.РеквизитыХарактеристикДляКлючаЦен.( + | ИмяРеквизита), + | ВидыНоменклатуры.РеквизитыСерийДляКлючаЦен.( + | ИмяРеквизита) + |ИЗ + | Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры + |ГДЕ + | ВидыНоменклатуры.Ссылка В (&ВидыНоменклатуры) + | И НЕ ВидыНоменклатуры.ЭтоГруппа"; + + Запрос.УстановитьПараметр("ВидыНоменклатуры", Строки.ПолучитьКлючи()); + + СтрокаСпискаДанные = Неопределено; + + Выборка = Запрос.Выполнить().Выбрать(); + Пока Выборка.Следующий() Цикл + + СтрокаСпискаДанные = Строки[Выборка.ВидНоменклатуры].Данные; + + СтрокаСпискаДанные.ХарактеристикиОписание = НСтр("ru = 'по характеристикам'"); + Если СтрокаСпискаДанные.УстановитьХарактеристики = 0 Тогда + ВременнаяТаблица = Выборка.РеквизитыХарактеристикДляКлючаЦен.Выгрузить(); + Если ВременнаяТаблица.Количество() > 0 Тогда + МассивРеквизитов = ВременнаяТаблица.ВыгрузитьКолонку("ИмяРеквизита"); + Реквизиты = СтрСоединить(МассивРеквизитов, ","); + + СтрокаСпискаДанные.ХарактеристикиОписание = СтрШаблон(НСтр("ru = 'по реквизитам (%1)'"), Реквизиты); + КонецЕсли; + КонецЕсли; + + СтрокаСпискаДанные.СерииОписание = НСтр("ru = 'по сериям'"); + Если СтрокаСпискаДанные.УстановитьСерии = 0 Тогда + ВременнаяТаблица = Выборка.РеквизитыСерийДляКлючаЦен.Выгрузить(); + Если ВременнаяТаблица.Количество() > 0 Тогда + МассивРеквизитов = ВременнаяТаблица.ВыгрузитьКолонку("ИмяРеквизита"); + Реквизиты = СтрСоединить(МассивРеквизитов, ","); + + СтрокаСпискаДанные.СерииОписание = СтрШаблон(НСтр("ru = 'по реквизитам (%1)'"), Реквизиты); + КонецЕсли; + КонецЕсли; + + СтрокаСпискаДанные.УпаковкиОписание = НСтр("ru = 'по упаковкам'"); + + КонецЦикла; + + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаЭлемента.xml b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаЭлемента.xml new file mode 100644 index 0000000..f57dc4c --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаЭлемента.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаЭлемента + + + ru + Форма элемента + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаЭлемента/Ext/Form.xml b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаЭлемента/Ext/Form.xml new file mode 100644 index 0000000..ec3801d --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаЭлемента/Ext/Form.xml @@ -0,0 +1,7708 @@ + +
+ LockOwnerWindow + useIfNecessary + Items + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Создать на основании</v8:content> + </v8:item> + + + CommonPicture.ЗаполнитьПоШаблону + false + + Picture + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Перейти</v8:content> + </v8:item> + + + + + + + + + + + + ПослеЗаписи + ПослеЗаписиНаСервере + ОбработкаОповещения + ПриЧтенииНаСервере + ПриОткрытии + ПередЗаписью + ПриСозданииНаСервере + ПередЗаписьюНаСервере + ПриЗаписиНаСервере + ОбработкаПроверкиЗаполненияНаСервере + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Шапка</v8:content> + </v8:item> + + true + Vertical + Right + Usual + None + false + + + + НастройкаВидимостиФормы + None + Tumbler + 2 + + + + 0 + + + + ru + Показать все + + + ПоказатьВсе + + + + + 0 + + + + ru + Свернуть все + + + СвернутьВсе + + + + + + + НастройкаВидимостиФормыПриИзменении + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страницы</v8:content> + </v8:item> + + true + None + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страница контейнер</v8:content> + </v8:item> + + true + false + true + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Основное</v8:content> + </v8:item> + + + + ru + Основные параметры + + + Vertical + Collapsible + Picture + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа работа с номенклатурой</v8:content> + </v8:item> + + Usual + None + false + + + + Объект.Description + false + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа основное колонки</v8:content> + </v8:item> + + + + ru + Группа основное колонки + + + AlwaysHorizontal + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа основное лево</v8:content> + </v8:item> + + + + ru + Группа основное лево + + + Vertical + None + false + + + + Объект.ТипНоменклатуры + + + ru + Подсказка заполняется программно + + + Button + 26 + true + + + + ТипНоменклатурыПриИзменении + + + + Объект.Parent + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа основное право</v8:content> + </v8:item> + + + + ru + Группа основное право + + + Vertical + None + false + + + + Объект.ОсобенностьУчета + None + + + ru + Подсказка заполняется программно + + + Button + false + 50 + true + true + + + + ОсобенностьУчетаПриИзменении + + + + Объект.ГруппаДоступа + + + + + + + + + Объект.Описание + Left + false + 2 + false + true + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа наименование для печати ТТН</v8:content> + </v8:item> + + false + Vertical + Usual + None + false + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>При печати наименования груза в транспортной накладной использовать:</v8:content> + </v8:item> + + None + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа использования индивидуального наименования</v8:content> + </v8:item> + + 1 + false + false + AlwaysHorizontal + Usual + None + false + + + + ИспользоватьИндивидуальноеНаименование + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать общее наименование для печати</v8:content> + </v8:item> + + None + 1 + Auto + 1 + 1 + + + + 0 + + + + ru + наименование из настроек программы: + + + ИспользоватьНаименованиеИзКонстанты + + + + + + + ИспользоватьИндивидуальноеНаименованиеПриИзменении + + + + ОбщееНаименованиеДляПечати + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Наименование из настроек программы</v8:content> + </v8:item> + + None + false + false + style:ТекстИнформационнойНадписи + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа название для печати строка</v8:content> + </v8:item> + + false + AlwaysHorizontal + Usual + None + false + + + + ИспользоватьИндивидуальноеНаименование + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>При печати использовать</v8:content> + </v8:item> + + None + Auto + 1 + + + + 0 + + + + ru + индивидуальное наименование: + + + ИспользоватьИндивидуальноеНаименование + + + + + + + ИспользоватьИндивидуальноеНаименованиеПриИзменении + + + + Объект.НаименованиеДляПечати + None + false + 29 + + + + + + + + + Объект.ВариантРасчетаЦеныНабора + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Цена набора</v8:content> + </v8:item> + + Top + Auto + 1 + + + + 0 + + + Enum.ВариантыРасчетаЦенНаборов.EnumValue.РассчитываетсяИзЦенКомплектующих + + + + + 0 + + + Enum.ВариантыРасчетаЦенНаборов.EnumValue.ЦенаЗадаетсяЗаНаборРаспределяетсяПоЦенам + + + + + 0 + + + Enum.ВариантыРасчетаЦенНаборов.EnumValue.ЦенаЗадаетсяЗаНаборРаспределяетсяПоДолям + + + + + + + + Объект.ВариантПредставленияНабораВПечатныхФормах + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>В печатных формах выводить</v8:content> + </v8:item> + + Top + Auto + 1 + + + + 0 + + + + ru + Только набор + + + Enum.ВариантыПредставленияНаборовВПечатныхФормах.EnumValue.ТолькоНабор + + + + + 0 + + + + ru + Набор и комплектующие + + + Enum.ВариантыПредставленияНаборовВПечатныхФормах.EnumValue.НаборИКомплектующие + + + + + 0 + + + + ru + Только комплектующие + + + Enum.ВариантыПредставленияНаборовВПечатныхФормах.EnumValue.ТолькоКомплектующие + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа настройки характеристик серий</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа настройки характеристик серий лево</v8:content> + </v8:item> + + Vertical + Usual + None + false + false + + + + 15 + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Продажа оформляется:</v8:content> + </v8:item> + + Center + + + + + 15 + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Товарные категории:</v8:content> + </v8:item> + + Center + + + + + Объект.ИспользоватьХарактеристики + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Характеристики:</v8:content> + </v8:item> + + Right + + + ru + Рекомендуется использовать характеристики общие для вида номенклатуры. Тогда, например, можно задать единую линейку размеров для всей номенклатуры этого вида. + + + Button + Auto + + + + ИспользоватьХарактеристикиПриИзменении + + + + Объект.ИспользоватьСерии + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Серии:</v8:content> + </v8:item> + + Right + + + ru + Серии рекомендуется использовать, когда необходим дополнительный разрез складского учета. Например, учет по срокам годности, производственным партиям, серийным номерам и т.п. + + + Button + Auto + + + + ИспользоватьСерииПриИзменении + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа настройки характеристик серий центр</v8:content> + </v8:item> + + Vertical + Usual + None + false + false + + + + Объект.ВариантОформленияПродажи + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Продажа оформляется</v8:content> + </v8:item> + + None + false + 36 + true + false + true + + + + 0 + + + + ru + Реализацией товаров и услуг + + + Enum.ВариантыОформленияПродажи.EnumValue.РеализацияТоваровУслуг + + + + + 0 + + + + ru + Актом выполненных работ + + + Enum.ВариантыОформленияПродажи.EnumValue.АктВыполненныхРабот + + + + + 0 + + + + ru + Актом на передачу прав + + + Enum.ВариантыОформленияПродажи.EnumValue.АктНаПередачуПрав + + + + + + + + НастройкаТоварныхКатегорий + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Товарные категории</v8:content> + </v8:item> + + None + false + 36 + true + false + + + + 0 + + + + ru + Общие с другими видами номенклатуры + + + ОбщиеСДругимВидомНоменклатуры + + + + + 0 + + + + ru + Настроены для этого вида номенклатуры + + + НастроеныДляЭтогоВидаНоменклатуры + + + + + + + НастройкаТоварныхКатегорийПриИзменении + + + + Объект.ИспользованиеХарактеристик + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Характеристики</v8:content> + </v8:item> + + None + false + 36 + true + + + + 0 + + + + ru + Общие для этого вида номенклатуры + + + Enum.ВариантыИспользованияХарактеристикНоменклатуры.EnumValue.ОбщиеДляВидаНоменклатуры + + + + + 0 + + + + ru + Общие с другими видами номенклатуры + + + Enum.ВариантыИспользованияХарактеристикНоменклатуры.EnumValue.ОбщиеСДругимВидомНоменклатуры + + + + + 0 + + + + ru + Индивидуальные для номенклатуры + + + Enum.ВариантыИспользованияХарактеристикНоменклатуры.EnumValue.ИндивидуальныеДляНоменклатуры + + + + + + + ИспользованиеХарактеристикПриИзменении + + + + ВариантЗаданияНастроекСерий + None + false + 36 + true + false + + + + 0 + + + + ru + Настроены для этого вида номенклатуры + + + НастроеныДляВидаНоменклатуры + + + + + 0 + + + + ru + Используются так же, как в других видах номенклатуры + + + ИспользуютсяТакжеКакВДругомВидеНоменклатуры + + + + + + + ВариантЗаданияНастроекСерийПриИзменении + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа настройки характеристик серий право</v8:content> + </v8:item> + + Vertical + Usual + None + false + false + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Кабели (<link Изменить>изменить</>) и еще 3 видами</v8:content> + </v8:item> + + Center + + + + ВладелецТоварныхКатегорийОбработкаНавигационнойСсылки + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Манипуляторы (<link Изменить>изменить</>) и еще 3 видами</v8:content> + </v8:item> + + Center + + + + ВладелецХарактеристикОбработкаНавигационнойСсылки + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Аудиокниги (<link Изменить>изменить</>) и еще 3 видах</v8:content> + </v8:item> + + Center + + + + ВладелецСерийОбработкаНавигационнойСсылки + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа настройки состава реквизитов серий</v8:content> + </v8:item> + + AlwaysHorizontal + Usual + None + false + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Серия идентифицирует <b>Экземпляр товара</> (Номер, срок годности с точностью до дней)</v8:content> + </v8:item> + + Center + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Изменить</v8:content> + </v8:item> + + style:ГиперссылкаЦвет + Vertical + PopUp + None + + + + Объект.НастройкаИспользованияСерий + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Серия идентифицирует</v8:content> + </v8:item> + + false + true + + + + 0 + + + Enum.НастройкиИспользованияСерийНоменклатуры.EnumValue.ЭкземплярТовара + + + + + 0 + + + Enum.НастройкиИспользованияСерийНоменклатуры.EnumValue.ПартияТоваров + + + + + + + НастройкаИспользованияСерийПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизиты серии</v8:content> + </v8:item> + + Vertical + Usual + None + + + + Объект.ИспользоватьНомерСерии + Right + Auto + + + + НастройкаИспользованияСерийПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Даты</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + Объект.ИспользоватьСрокГодностиСерии + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Срок годности</v8:content> + </v8:item> + + Right + Auto + + + + НастройкаИспользованияСерийПриИзменении + + + + Объект.ИспользоватьДатуПроизводстваСерии + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Дата производства</v8:content> + </v8:item> + + Right + Auto + + + + НастройкаИспользованияСерийПриИзменении + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа точность указания даты</v8:content> + </v8:item> + + Usual + None + false + + + + 3 + + + + + Объект.ТочностьУказанияСрокаГодностиСерии + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>с точностью до</v8:content> + </v8:item> + + 5 + false + 16 + false + true + false + + + + 0 + + + + ru + до месяцев + + + Enum.ТочностиУказанияСрокаГодности.EnumValue.СТочностьюДоМесяцев + + + + + 0 + + + + ru + до дней + + + Enum.ТочностиУказанияСрокаГодности.EnumValue.СТочностьюДоДней + + + + + 0 + + + + ru + до часов + + + Enum.ТочностиУказанияСрокаГодности.EnumValue.СТочностьюДоЧасов + + + + + + + НастройкаИспользованияСерийПриИзменении + + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа реквизиты локализации серий</v8:content> + </v8:item> + + Vertical + Usual + None + false + + + + Объект.ИспользоватьНомерКИЗГИСМСерии + Right + ShowBottom + Auto + + + 30 + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номер контрольного (идентификационного) знака информационной системы маркировки товаров</v8:content> + </v8:item> + + + + НастройкаИспользованияСерийПриИзменении + + + + Объект.ИспользоватьПроизводителяЕГАИССерии + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Производитель (ЕГАИС)</v8:content> + </v8:item> + + Right + Auto + + + + НастройкаИспользованияСерийПриИзменении + + + + Объект.ИспользоватьСправку2ЕГАИССерии + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Справка 2 (ЕГАИС)</v8:content> + </v8:item> + + Right + Auto + + + + НастройкаИспользованияСерийПриИзменении + + + + Объект.ИспользоватьПроизводителяВЕТИССерии + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Производитель (ВетИС)</v8:content> + </v8:item> + + Right + Auto + + + + НастройкаИспользованияСерийПриИзменении + + + + Объект.ИспользоватьЗаписьСкладскогоЖурналаВЕТИССерии + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Запись складского журнала (ВетИС)</v8:content> + </v8:item> + + Right + Auto + + + + НастройкаИспользованияСерийПриИзменении + + + + Объект.ИспользоватьИдентификаторПартииВЕТИССерии + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Идентификатор партии (ВетИС)</v8:content> + </v8:item> + + Right + Auto + + + + НастройкаИспользованияСерийПриИзменении + + + + Объект.ИспользоватьМРЦМОТПСерии + Right + Auto + + + + НастройкаИспользованияСерийПриИзменении + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Дополнительно</v8:content> + </v8:item> + + Vertical + Usual + None + + + + Объект.ИспользоватьRFIDМеткиСерии + Right + Auto + + + + НастройкаИспользованияСерийПриИзменении + + + + Объект.АвтоматическиГенерироватьСерии + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Генерировать серии автоматически</v8:content> + </v8:item> + + Right + Auto + + + + НастройкаИспользованияСерийПриИзменении + + + + + + + + + + false + 100 + style:ПоясняющийТекст + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Для этого вида номенклатуры можно выбирать только те политики учета серий, которые предусматривают учет остатков по сериям. Учет остатков по сериям можно настроить <colorstyle -16><b>только</></><colorstyle -16><b> </></>при использовании ордерной схемы <b>при</><b> </><b>отражении</><b> </><b>излишков,</><b> </><b>недостач</><b> </><b>и</><b> </><b>порчи</>. Но в настройках складского учета использование ордерной схемы при отражении излишков недостач и порчи отключено, поэтому настроить использование серий для этого вида номенклатуры нельзя.</v8:content> + </v8:item> + + + + + + false + 100 + style:ПоясняющийТекст + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Для этого вида номенклатуры можно выбирать только те политики учета серий, которые предусматривают учет остатков по сериям, Учет остатков по сериям можно настроить <colorstyle -16><b>только</></><colorstyle -16><b> </></>на складах с ордерной схемой <b>при</><b> </><b>отражении</><b> </><b>излишков,</><b> </><b>недостач</><b> </><b>и</><b> </><b>порчи</>. Но использование ордерных складов отключено, поэтому настроить использование серий для этого вида номенклатуры нельзя.</v8:content> + </v8:item> + + + + + + false + style:ПоясняющийТекст + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Для этого вида номенклатуры можно выбирать <b><colorstyle -16>только </></>те политики учета серий, которые предусматривают учет остатков по сериям.</v8:content> + </v8:item> + + + + + + false + style:ПоясняющийТекст + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Возможно ограниченное использование политик учета серий.</v8:content> + </v8:item> + + + + + + false + 75 + style:ПоясняющийТекст + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>В настройках не включено указание в серии срока годности, поэтому <b><colorstyle -16>нельзя </></>использовать политики учета серий "Управление по FEFO остатками серий" и "Авторасчет по FEFO остатков серий"</v8:content> + </v8:item> + + + + + + false + 100 + style:ПоясняющийТекст + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><color #000000>В настройках складского учета</><b><color #000000> </></><b><colorstyle 0:b9627855-6773-4a59-b7d3-f9e2e565cd9e>не включено</></><b><colorstyle 0:b9627855-6773-4a59-b7d3-f9e2e565cd9e> </></><b><colorstyle 0:b9627855-6773-4a59-b7d3-f9e2e565cd9e>использование</></> ордерных складов, поэтому возможно только справочное указание серий. Для настройки учета остатков по сериям нужно включить использование ордерных складов и настроить в складах использование ордерной схемы <b>при отражении излишков, недостач и порчи</>. На отгрузку и поступление склады могут оставаться неордерными.</v8:content> + </v8:item> + + + + + + false + 75 + style:ПоясняющийТекст + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>В настройках складского учета <b><colorstyle 0:b9627855-6773-4a59-b7d3-f9e2e565cd9e>не включено</></><b><colorstyle 0:b9627855-6773-4a59-b7d3-f9e2e565cd9e> </></><b><colorstyle 0:b9627855-6773-4a59-b7d3-f9e2e565cd9e>использование </></>ордерной схемы <b>при отражении излишков недостач и порчи</>, поэтому возможно только справочное указание серий.</v8:content> + </v8:item> + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа надпись политика учета серий</v8:content> + </v8:item> + + Usual + None + false + + + + 15 + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Политика учета серий:</v8:content> + </v8:item> + + + + + + Объект.ПолитикаУчетаСерий + None + false + 34 + false + true + ShowInInputField + + + + ПолитикаУчетаСерийПриИзменении + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа политика учета серий2</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + false + 14 + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Политика учета серий:</v8:content> + </v8:item> + + + + ru + Указанная политика будет использована как общая политика для всех складов и производственных подразделений; именно эта политика будет устанавливаться по умолчанию для новых складов и производственных подразделений. + + + Button + + + + + Объект.ПолитикаУчетаСерий + None + None + false + 34 + false + true + ShowInInputField + + + 14 + + </ExtendedTooltip> + <Events> + <Event name="OnChange">ПолитикаУчетаСерийПриИзменении</Event> + </Events> + </InputField> + </ChildItems> + </UsualGroup> + <CheckBoxField name="ЕстьИндивидуальныеНастройкиПолитикиУчетаСерий" id="1743"> + <DataPath>ЕстьИндивидуальныеНастройкиПолитикиУчетаСерий</DataPath> + <TitleLocation>Right</TitleLocation> + <CheckBoxType>Auto</CheckBoxType> + <ContextMenu name="ЕстьИндивидуальныеНастройкиПолитикиУчетаСерийКонтекстноеМеню" id="1744"/> + <ExtendedTooltip name="ЕстьИндивидуальныеНастройкиПолитикиУчетаСерийРасширеннаяПодсказка" id="1745"/> + <Events> + <Event name="OnChange">ЕстьИндивидуальныеНастройкиПолитикиУчетаСерийПриИзменении</Event> + </Events> + </CheckBoxField> + <UsualGroup name="ГруппаПолитикиУчетаСерий" id="1816"> + <Title> + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа политики учета серий</v8:content> + </v8:item> + + AlwaysHorizontal + Usual + None + false + + + + 10 + false + 4 + false + true + AsFile + Объект.ПолитикиУчетаСерий + + Copy + MoveDown + MoveUp + + None + None + None + + + + false + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Политики учета серий группа команды политики учета серий</v8:content> + </v8:item> + + Item.ПолитикиУчетаСерий + + + + + + + + ПолитикиУчетаСерий + SearchStringRepresentation + + + + + + + ПолитикиУчетаСерий + ViewStatusRepresentation + + Left + + + + + + ПолитикиУчетаСерий + SearchControl + + + + + + ПолитикиУчетаСерийПриОкончанииРедактирования + ПолитикиУчетаСерийВыбор + ПолитикиУчетаСерийПередНачаломДобавления + ПолитикиУчетаСерийПередУдалением + ПолитикиУчетаСерийПриАктивизацииСтроки + + + + Объект.ПолитикиУчетаСерий.Склад + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Склад или подразделение</v8:content> + </v8:item> + + EnterOnInput + true + false + true + ShowInInputField + + + + ПолитикиУчетаСерийСкладПриИзменении + + + + Объект.ПолитикиУчетаСерий.ПолитикаУчетаСерий + EnterOnInput + true + false + true + ShowInInputField + + + + ПолитикиУчетаСерийПолитикаУчетаСерийПриИзменении + + + +
+ + 10 + false + false + + + +
+
+ + false + false + 2 + style:ПоясняющийТекст + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>На складе <b><colorstyle 0:b9627855-6773-4a59-b7d3-f9e2e565cd9e>не используетс</></><b><colorstyle 0:b9627855-6773-4a59-b7d3-f9e2e565cd9e>я</></><colorstyle 0:b9627855-6773-4a59-b7d3-f9e2e565cd9e> </>ордерная схема при отражении излишков недостач и порчи, поэтому возможно только справочное указание серий.</v8:content> + </v8:item> + + + + +
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Дополнительные реквизиты</v8:content> + </v8:item> + + Vertical + Collapsible + true + Picture + + + + false + false + style:ПоясняющийТекст + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Опишите с помощью дополнительных реквизитов свойства объектов (например, цвет, размер, марку и т.п.) + +Используйте одну из возможностей +- реквизиты общие для всей номенклатуры; +- реквизиты общие для нескольких видов номенклатуры; +- реквизиты с общим списком значений; +- реквизиты специфичные только для одного вида номенклатуры. + +Задайте порядок следования доп. реквизитов - в том же порядке они будут следовать в форме объекта.</v8:content> + </v8:item> + + Top + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа доп реквизиты</v8:content> + </v8:item> + + Horizontal + Usual + None + Equal + false + + + + SingleRow + true + true + true + AsFile + ТаблицаДопРеквизитовНоменклатуры + ТаблицаДопРеквизитовНоменклатуры.ИндексКартинки + + CommonPicture.ДополнительныеРеквизитыСведения + false + + + CancelSearch + Change + Copy + CopyToClipboard + EndEdit + Find + OutputList + SortListAsc + SortListDesc + + None + None + None + + + false + + + false + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Добавить</v8:content> + </v8:item> + + + StdPicture.CreateListItem + true + + + + + + + + + + + + + + + + + ТаблицаДопРеквизитовНоменклатуры + SearchStringRepresentation + + + + + + + ТаблицаДопРеквизитовНоменклатуры + ViewStatusRepresentation + + Left + + + + + + ТаблицаДопРеквизитовНоменклатуры + SearchControl + + + + + + ТаблицаДопРеквизитовНоменклатурыВыбор + ТаблицаДопРеквизитовНоменклатурыПередНачаломДобавления + ТаблицаДопРеквизитовНоменклатурыПриАктивизацииСтроки + ТаблицаДопРеквизитовНоменклатурыНачалоПеретаскивания + ТаблицаДопРеквизитовНоменклатурыОбработкаВыбора + ТаблицаДопРеквизитовНоменклатурыПриИзменении + + + + ТаблицаДопРеквизитовНоменклатуры.ПредставлениеРеквизита + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизиты номенклатуры</v8:content> + </v8:item> + + EnterOnInput + false + + + + +
+ + List + SingleRow + true + true + true + AsFile + ТаблицаДопРеквизитовХарактеристик + ТаблицаДопРеквизитовХарактеристик.ИндексКартинки + + CommonPicture.ДополнительныеРеквизитыСведения + false + + + CancelSearch + Change + Copy + CopyToClipboard + EndEdit + Find + OutputList + SortListAsc + SortListDesc + + None + None + None + + + false + + + false + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Добавить</v8:content> + </v8:item> + + + StdPicture.CreateListItem + true + + + + + + + + + + + + + + + + + ТаблицаДопРеквизитовХарактеристик + SearchStringRepresentation + + + + + + + ТаблицаДопРеквизитовХарактеристик + ViewStatusRepresentation + + Left + + + + + + ТаблицаДопРеквизитовХарактеристик + SearchControl + + + + + + ТаблицаДопРеквизитовХарактеристикВыбор + ТаблицаДопРеквизитовХарактеристикПередНачаломДобавления + ТаблицаДопРеквизитовХарактеристикПриАктивизацииСтроки + ТаблицаДопРеквизитовХарактеристикНачалоПеретаскивания + ТаблицаДопРеквизитовХарактеристикОбработкаВыбора + ТаблицаДопРеквизитовХарактеристикПриИзменении + + + + ТаблицаДопРеквизитовХарактеристик.ПредставлениеРеквизита + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизиты характеристик</v8:content> + </v8:item> + + EnterOnInput + false + + + + +
+ + List + SingleRow + true + true + true + AsFile + ТаблицаДопРеквизитовСерий + ТаблицаДопРеквизитовСерий.ИндексКартинки + + CommonPicture.ДополнительныеРеквизитыСведения + false + + + CancelSearch + Change + Copy + CopyToClipboard + EndEdit + Find + OutputList + SortListAsc + SortListDesc + + None + None + None + + + false + + + false + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Добавить</v8:content> + </v8:item> + + + StdPicture.CreateListItem + true + + + + + + + + + + + + + + + + + ТаблицаДопРеквизитовСерий + SearchStringRepresentation + + + + + + + ТаблицаДопРеквизитовСерий + ViewStatusRepresentation + + Left + + + + + + ТаблицаДопРеквизитовСерий + SearchControl + + + + + + ТаблицаДопРеквизитовСерийВыбор + ТаблицаДопРеквизитовСерийПередНачаломДобавления + ТаблицаДопРеквизитовСерийПриАктивизацииСтроки + ТаблицаДопРеквизитовСерийНачалоПеретаскивания + ТаблицаДопРеквизитовСерийОбработкаВыбора + ТаблицаДопРеквизитовСерийПриИзменении + + + + ТаблицаДопРеквизитовСерий.ПредставлениеРеквизита + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизиты серий</v8:content> + </v8:item> + + EnterOnInput + false + + + + +
+
+
+
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Шаблоны наименований</v8:content> + </v8:item> + + Vertical + Collapsible + true + Picture + + + + false + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура</v8:content> + </v8:item> + + Vertical + Usual + + + ru + Номенклатура (развернуть) + + + + + + Объект.ШаблонРабочегоНаименованияНоменклатуры + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Рабочее наименование</v8:content> + </v8:item> + + Top + false + false + true + true + true + UseContentHeight + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа шаблон рабочего наименования номенклатуры кнопка флаг</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + + Объект.ЗапретРедактированияРабочегоНаименованияНоменклатуры + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Запретить редактирование рабочего наименования в карточке номенклатуры</v8:content> + </v8:item> + + Right + + + ru + Если флаг включен, то рабочее наименование номенклатуры всегда будет генерироваться по шаблону, пользователь не сможет его изменять. + + + + Button + Auto + + + + + + + Объект.ШаблонНаименованияДляПечатиНоменклатуры + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Наименование для печати</v8:content> + </v8:item> + + Top + false + false + true + true + true + UseContentHeight + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа шаблон наименования для печати номенклатуры кнопка флаг</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + + Объект.ЗапретРедактированияНаименованияДляПечатиНоменклатуры + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Запретить редактирование наименования для печати в карточке номенклатуры</v8:content> + </v8:item> + + Right + + + ru + Если флаг включен, то наименование номенклатуры для печати всегда будет генерироваться по шаблону, пользователь не сможет его изменять. + + + Button + Auto + + + + + + + + + false + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Характеристики</v8:content> + </v8:item> + + true + Vertical + Usual + + + ru + Характеристики (развернуть) + + + + + + Объект.ШаблонРабочегоНаименованияХарактеристики + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Рабочее наименование</v8:content> + </v8:item> + + Top + false + false + true + true + true + UseContentHeight + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа шаблон рабочего наименования характеристики кнопка флаг</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + + Объект.ЗапретРедактированияРабочегоНаименованияХарактеристики + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Запретить редактирование рабочего наименования в карточке характеристики</v8:content> + </v8:item> + + Right + + + ru + Если флаг включен, то рабочее наименование характеристики всегда будет генерироваться по шаблону, пользователь не сможет его изменять. + + + Button + Auto + + + + + + + Объект.ШаблонНаименованияДляПечатиХарактеристики + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Наименование для печати</v8:content> + </v8:item> + + Top + false + false + true + true + true + UseContentHeight + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа шаблон наименования характеристики кнопка флаг</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + + Объект.ЗапретРедактированияНаименованияДляПечатиХарактеристики + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Запретить редактирование наименования для печати в карточке характеристики</v8:content> + </v8:item> + + Right + + + ru + Если флаг включен, то наименование для печати характеристики всегда будет генерироваться по шаблону, пользователь не сможет его изменять. + + + Button + Auto + + + + + + + + + false + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Серии</v8:content> + </v8:item> + + true + Vertical + Usual + + + ru + Серии (развернуть) + + + + + + Объект.ШаблонРабочегоНаименованияСерии + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Рабочее наименование</v8:content> + </v8:item> + + Top + false + false + true + UseContentHeight + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Быстрый отбор в списках</v8:content> + </v8:item> + + + + ru + Настройки панели быстрого отбора + + + Vertical + Collapsible + true + Picture + + + + false + style:ПоясняющийТекст + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройте список свойств, который будет отображаться в формах со списками номенклатуры, в т.ч. в подборе товаров в документы в режиме фильтра "По видам и свойствам". + +Указывайте свойства, по которым можно быстро установить отбор: если у свойства очень много значений, то поиск нужного значения будет занимать много времени и легче будет найти сразу саму номенклатуру. + +Управляйте порядком следования свойств - это влияет на отображение в формах со списками номенклатуры.</v8:content> + </v8:item> + + Top + + + + + true + true + true + AsFile + Объект.РеквизитыБыстрогоОтбораНоменклатуры + + CancelSearch + Change + Copy + CopyToClipboard + EndEdit + Find + OutputList + SelectAll + SortListAsc + SortListDesc + + None + None + None + + + + + + + + + + + + РеквизитыБыстрогоОтбораНоменклатуры + SearchStringRepresentation + + + + + + + РеквизитыБыстрогоОтбораНоменклатуры + ViewStatusRepresentation + + Left + + + + + + РеквизитыБыстрогоОтбораНоменклатуры + SearchControl + + + + + + РеквизитыБыстрогоОтбораНоменклатурыПередНачаломДобавления + + + + Объект.РеквизитыБыстрогоОтбораНоменклатуры.ПредставлениеРеквизита + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизиты номенклатуры</v8:content> + </v8:item> + + EnterOnInput + false + + + + +
+ + true + true + true + AsFile + Объект.РеквизитыБыстрогоОтбораХарактеристик + + CancelSearch + Change + Copy + CopyToClipboard + EndEdit + Find + OutputList + SelectAll + SortListAsc + SortListDesc + + None + None + None + + + + + + + РеквизитыБыстрогоОтбораХарактеристик + SearchStringRepresentation + + + + + + + РеквизитыБыстрогоОтбораХарактеристик + ViewStatusRepresentation + + Left + + + + + + РеквизитыБыстрогоОтбораХарактеристик + SearchControl + + + + + + РеквизитыБыстрогоОтбораХарактеристикПередНачаломДобавления + + + + Объект.РеквизитыБыстрогоОтбораХарактеристик.ПредставлениеРеквизита + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизиты характеристик</v8:content> + </v8:item> + + EnterOnInput + false + + + + +
+
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Видимость, контроль заполнения и уникальности</v8:content> + </v8:item> + + + + ru + Настройки номенклатуры + + + Vertical + Collapsible + true + Picture + + + + false + style:ПоясняющийТекст + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отображать при создании — для ускорения процесса ввода новых элементов отключите отображение тех реквизитов, значения которых не вводятся сразу, а чаще всего заполняются позже. + +Контролировать заполнение — для реквизитов, которые входят в шаблоны наименований или включены в панель быстрого отбора включите проверку обязательности заполнения. Можно воспользоваться соответствующей командой. + +Контролировать уникальность — при создании нового элемента программа будет проверять наличие в справочнике элемента с таким же сочетанием значений этих реквизитов.</v8:content> + </v8:item> + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройки создания переключатели</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройки создания страницы</v8:content> + </v8:item> + + None + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура (свернуть)</v8:content> + </v8:item> + + false + + + + false + 2 + true + true + true + true + AsFile + Объект.РеквизитыДляКонтроляНоменклатуры + + Add + CancelSearch + Change + Copy + CopyToClipboard + Delete + EndEdit + Find + MoveDown + MoveUp + OutputList + SelectAll + SortListAsc + SortListDesc + + None + None + None + + + + false + + + + + РеквизитыДляКонтроляНоменклатуры + SearchStringRepresentation + + + + + + + РеквизитыДляКонтроляНоменклатуры + ViewStatusRepresentation + + Left + + + + + + РеквизитыДляКонтроляНоменклатуры + SearchControl + + + + + + РеквизитыДляКонтроляНоменклатурыВыбор + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизит</v8:content> + </v8:item> + + Horizontal + true + + + + Объект.РеквизитыДляКонтроляНоменклатуры.ПредставлениеРеквизита + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизит</v8:content> + </v8:item> + + EnterOnInput + false + 10 + + + + + Объект.РеквизитыДляКонтроляНоменклатуры.ПредставлениеРеквизита + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизит</v8:content> + </v8:item> + + EnterOnInput + true + false + 10 + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отображать при создании</v8:content> + </v8:item> + + InCell + true + + + + Объект.РеквизитыДляКонтроляНоменклатуры.ОтображатьПриСоздании + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отображать при создании</v8:content> + </v8:item> + + 1 + Center + EnterOnInput + false + false + Auto + + + + + Объект.РеквизитыДляКонтроляНоменклатуры.ДляРазмераЯчейки + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Для размера ячейки</v8:content> + </v8:item> + + EnterOnInput + false + 6 + false + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Видимость</v8:content> + </v8:item> + + Horizontal + true + + + + Объект.РеквизитыДляКонтроляНоменклатуры.ВиденСУсловием + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Видимость</v8:content> + </v8:item> + + EnterOnInput + true + false + + + + + Объект.РеквизитыДляКонтроляНоменклатуры.ДляРазмераЯчейки + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Для размера ячейки</v8:content> + </v8:item> + + EnterOnInput + false + 4 + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Доступность</v8:content> + </v8:item> + + Horizontal + true + + + + Объект.РеквизитыДляКонтроляНоменклатуры.ДоступенСУсловием + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Доступность</v8:content> + </v8:item> + + EnterOnInput + true + false + + + + + Объект.РеквизитыДляКонтроляНоменклатуры.ДляРазмераЯчейки + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Для размера ячейки</v8:content> + </v8:item> + + EnterOnInput + false + 1 + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Контролировать заполнение</v8:content> + </v8:item> + + InCell + true + + + + Объект.РеквизитыДляКонтроляНоменклатуры.ЗаполнятьОбязательно + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Контролировать заполнения</v8:content> + </v8:item> + + Center + EnterOnInput + false + false + Auto + + + + РеквизитыДляКонтроляНоменклатурыЗаполнятьОбязательноПриИзменении + + + + Объект.РеквизитыДляКонтроляНоменклатуры.ЗаполнятьОбязательноСУсловием + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Для размера ячейки</v8:content> + </v8:item> + + EnterOnInput + true + false + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать в контроле уникальности</v8:content> + </v8:item> + + Horizontal + true + + + + Объект.РеквизитыДляКонтроляНоменклатуры.Уникален + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать в контроле уникальности</v8:content> + </v8:item> + + Left + 1 + Center + EnterOnInput + false + Auto + + + + РеквизитыДляКонтроляНоменклатурыУникаленПриИзменении + + + + Объект.РеквизитыДляКонтроляНоменклатуры.ДляРазмераЯчейки + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Для размера ячейки</v8:content> + </v8:item> + + EnterOnInput + false + 12 + false + + + + + + +
+
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Характеристики (свернуть)</v8:content> + </v8:item> + + false + + + + false + 2 + true + true + true + true + AsFile + Объект.РеквизитыДляКонтроляХарактеристик + + Add + CancelSearch + Change + Copy + CopyToClipboard + Delete + EndEdit + Find + MoveDown + MoveUp + OutputList + SelectAll + SortListAsc + SortListDesc + + None + None + None + + + + false + + + + + РеквизитыДляКонтроляХарактеристик + SearchStringRepresentation + + + + + + + РеквизитыДляКонтроляХарактеристик + ViewStatusRepresentation + + Left + + + + + + РеквизитыДляКонтроляХарактеристик + SearchControl + + + + + + РеквизитыДляКонтроляХарактеристикВыбор + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизит</v8:content> + </v8:item> + + Horizontal + true + + + + Объект.РеквизитыДляКонтроляХарактеристик.ПредставлениеРеквизита + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизит</v8:content> + </v8:item> + + EnterOnInput + false + 10 + + + + + Объект.РеквизитыДляКонтроляХарактеристик.ПредставлениеРеквизита + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизит</v8:content> + </v8:item> + + EnterOnInput + true + false + 10 + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отображать при создании</v8:content> + </v8:item> + + Horizontal + true + + + + Объект.РеквизитыДляКонтроляХарактеристик.ОтображатьПриСоздании + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отображать при создании</v8:content> + </v8:item> + + Center + EnterOnInput + false + false + Auto + + + + + Объект.РеквизитыДляКонтроляХарактеристик.ДляРазмераЯчейки + EnterOnInput + false + 6 + false + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Видимость</v8:content> + </v8:item> + + Horizontal + true + + + + Объект.РеквизитыДляКонтроляХарактеристик.ВиденСУсловием + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Видимость</v8:content> + </v8:item> + + EnterOnInput + true + false + + + + + Объект.РеквизитыДляКонтроляХарактеристик.ДляРазмераЯчейки + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Для размера ячейки</v8:content> + </v8:item> + + EnterOnInput + false + 4 + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Доступность</v8:content> + </v8:item> + + Horizontal + true + + + + Объект.РеквизитыДляКонтроляХарактеристик.ДоступенСУсловием + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Доступность</v8:content> + </v8:item> + + EnterOnInput + true + false + 4 + + + + + Объект.РеквизитыДляКонтроляХарактеристик.ДляРазмераЯчейки + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Для размера ячейки</v8:content> + </v8:item> + + EnterOnInput + false + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Контролировать заполнение</v8:content> + </v8:item> + + InCell + true + + + + Объект.РеквизитыДляКонтроляХарактеристик.ЗаполнятьОбязательно + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Контролировать заполнение</v8:content> + </v8:item> + + Center + EnterOnInput + true + false + false + Auto + + + + РеквизитыДляКонтроляХарактеристикЗаполнятьОбязательноПриИзменении + + + + Объект.РеквизитыДляКонтроляХарактеристик.ЗаполнятьОбязательноСУсловием + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Для размера ячейки</v8:content> + </v8:item> + + EnterOnInput + true + false + 6 + false + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать в контроле уникальности</v8:content> + </v8:item> + + Horizontal + true + + + + Объект.РеквизитыДляКонтроляХарактеристик.Уникален + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать в контроле уникальности</v8:content> + </v8:item> + + Center + EnterOnInput + false + false + Auto + + + + РеквизитыДляКонтроляХарактеристикУникаленПриИзменении + + + + Объект.РеквизитыДляКонтроляХарактеристик.ДляРазмераЯчейки + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Для размера ячейки</v8:content> + </v8:item> + + EnterOnInput + false + 12 + false + + + + + + +
+
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Серии (свернуть)</v8:content> + </v8:item> + + false + + + + 1 + false + false + 2 + true + true + true + true + AsFile + Объект.РеквизитыДляКонтроляСерий + None + None + None + + + false + + + false + + + + + РеквизитыДляКонтроляСерий + SearchStringRepresentation + + + + + + + РеквизитыДляКонтроляСерий + ViewStatusRepresentation + + Left + + + + + + РеквизитыДляКонтроляСерий + SearchControl + + + + + + РеквизитыДляКонтроляСерийВыбор + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизит</v8:content> + </v8:item> + + Horizontal + true + + + + Объект.РеквизитыДляКонтроляСерий.ПредставлениеРеквизита + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизит</v8:content> + </v8:item> + + EnterOnInput + false + 10 + + + + + Объект.РеквизитыДляКонтроляСерий.ПредставлениеРеквизита + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизит</v8:content> + </v8:item> + + EnterOnInput + true + false + 10 + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Контролировать заполнение</v8:content> + </v8:item> + + InCell + true + Right + + + + Объект.РеквизитыДляКонтроляСерий.ЗаполнятьОбязательно + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Контролировать заполнение</v8:content> + </v8:item> + + EnterOnInput + true + false + Auto + + + + + Объект.РеквизитыДляКонтроляСерий.ЗаполнятьОбязательноСУсловием + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Для размера ячейки</v8:content> + </v8:item> + + EnterOnInput + true + false + 6 + false + + + + + + +
+
+
+
+
+
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройка ценообразования</v8:content> + </v8:item> + + + + ru + Настройки номенклатуры + + + Vertical + Collapsible + true + Picture + + + + false + style:ПоясняющийТекст + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ценообразование может вестись по следующим разрезам: + +- Номенклатура (обязательный реквизит) +- Характеристики или реквизиты характеристики (включая дополнительные). +- Серии или реквизиты серии (включая дополнительные). +- Упаковки. + +Внимание! Можно использовать только те реквизиты, которые выбраны как обязательные к заполнению. </v8:content> + </v8:item> + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Цены ведутся по:</v8:content> + </v8:item> + + Vertical + Usual + + + ru + Показать рекомендации + + + true + + + + Объект.РазрезыЦенообразования + None + false + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройка разрезов ведения цен</v8:content> + </v8:item> + + Vertical + Usual + Picture + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройки ценообразования по характеристикам</v8:content> + </v8:item> + + Vertical + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройки ценообразования по характеристикам основная</v8:content> + </v8:item> + + ShowBottom + AlwaysHorizontal + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройки ценообразования по характеристикам основная гориз</v8:content> + </v8:item> + + ShowBottom + Usual + false + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Возможность использования данных по характеристикам номенклатуры в разрезе цен. Можно использовать как сами характеристики, так и их реквизиты. +Например, если характеристика состоит из размера и цвета, то для учета цен можно использовать только размеры (вся обувь определенной модели определенного размера будет иметь цену в независимости от цвета).</v8:content> + </v8:item> + + + + + Объект.НастройкиКлючаЦенПоХарактеристике + None + Auto + + + + 0 + + + + ru + без характеристик + + + Enum.ВариантОтбораДляКлючаЦен.EnumValue.НеИспользовать + + + + + 0 + + + + ru + по характеристикам + + + Enum.ВариантОтбораДляКлючаЦен.EnumValue.Использовать + + + + + 0 + + + + ru + по реквизитам характеристик + + + Enum.ВариантОтбораДляКлючаЦен.EnumValue.ИспользоватьПоРеквизитам + + + + + + + НастройкиКлючаЦенПоХарактеристикеПриИзменении + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><<Реквизиты не выбраны>> <link ИзменитьНастройкуИспользованияРеквизитов_Характеристики>изменить</></v8:content> + </v8:item> + + Center + + + + ИзменитьНаборРеквизитовХарактеристикДляКлючаЦенОбработкаНавигационнойСсылки + + + + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройки ценообразования по характеристикам информация</v8:content> + </v8:item> + + false + Usual + None + false + + + + + CommonPicture.ИнформацияПоНедоступнымПолям + false + + AsFile + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Невозможно включение ведения ценообразования по характеристикам по следующим причинам: +- по виду номенклатуры не ведется учет в разрезе характеристик</v8:content> + </v8:item> + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройки ценообразования по сериям</v8:content> + </v8:item> + + Vertical + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройки ценообразования по сериям основная</v8:content> + </v8:item> + + ShowBottom + AlwaysHorizontal + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройки ценообразования по сериям основная гориз</v8:content> + </v8:item> + + ShowBottom + Usual + false + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Возможность использования данных по сериям номенклатуры в разрезе цен. Можно использовать как сами серии, так и их реквизиты. +Например, если серии идентифицируется сроком годности, то для учета цен можно использовать этот реквизит (ценами можно будет управлять в зависимости от срока годности товара).</v8:content> + </v8:item> + + + + + Объект.НастройкиКлючаЦенПоСерии + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Серии</v8:content> + </v8:item> + + None + ShowBottom + Auto + + + + 0 + + + + ru + без серий + + + Enum.ВариантОтбораДляКлючаЦен.EnumValue.НеИспользовать + + + + + 0 + + + + ru + по сериям + + + Enum.ВариантОтбораДляКлючаЦен.EnumValue.Использовать + + + + + 0 + + + + ru + по реквизитам серий + + + Enum.ВариантОтбораДляКлючаЦен.EnumValue.ИспользоватьПоРеквизитам + + + + + + + НастройкиКлючаЦенПоСерииПриИзменении + + + + false + 1 + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><<Реквизиты не выбраны>> <link ИзменитьНастройкуИспользованияРеквизитов_Серии>изменить</></v8:content> + </v8:item> + + Center + + + + ИзменитьНаборРеквизитовСерийДляКлючаЦенОбработкаНавигационнойСсылки + + + + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройки ценообразования по сериям информация</v8:content> + </v8:item> + + false + Usual + None + false + + + + + CommonPicture.ИнформацияПоНедоступнымПолям + false + + AsFile + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Невозможно включение по сериям по следующим причинам: +- по виду номенклатуры не ведется учет в разрезе серий</v8:content> + </v8:item> + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройки ценообразования по упаковкам</v8:content> + </v8:item> + + Vertical + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройки ценообразования по упаковкам основная</v8:content> + </v8:item> + + ShowBottom + AlwaysHorizontal + Usual + None + false + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Возможность использования данных по упаковкам номенклатуры в разрезе цен. При выборе цены будут вестись с указанием единиц упаковки. +Например, можно устанавливать отдельно цены за 1 бутылку лимонада и за ящик лимонада (20 бутылок). Таким образом, цена за упаковку может отличаться от суммы цен за единицу товара в этой упаковке.</v8:content> + </v8:item> + + + + + Объект.НастройкиКлючаЦенПоУпаковке + None + Auto + + + + 0 + + + + ru + без упаковок + + + Enum.ВариантОтбораДляКлючаЦен.EnumValue.НеИспользовать + + + + + 0 + + + + ru + по упаковкам + + + Enum.ВариантОтбораДляКлючаЦен.EnumValue.Использовать + + + + + + + НастройкиКлючаЦенПоУпаковкеПриИзменении + + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройки ценообразования по упаковкам информация</v8:content> + </v8:item> + + false + Usual + None + false + + + + + CommonPicture.ИнформацияПоНедоступнымПолям + false + + AsFile + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Невозможно включение ценообрзования по упаковкам по следующим причинам: +- учет по упаковкам не ведется</v8:content> + </v8:item> + + + + + + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Значения, используемые при создании</v8:content> + </v8:item> + + true + Vertical + Collapsible + true + Picture + + + + false + style:ПоясняющийТекст + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Заполните значения реквизитов, которые будут подставляться по умолчанию при создании номенклатуры данного вида. + +Настройку рекомендуется делать для реквизитов, которые для подавляющего большинства номенклатуры данного вида имеют одно и то же значение.</v8:content> + </v8:item> + + Top + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа значения по умолчанию</v8:content> + </v8:item> + + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страница значения по умолчанию право</v8:content> + </v8:item> + + + + ru + Страница значения по умолчанию лево + + + Horizontal + Usual + None + false + Equal + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа колонки лево</v8:content> + </v8:item> + + + + ru + Страница значения по умолчанию лево + + + 48 + Vertical + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Описание</v8:content> + </v8:item> + + Usual + + + + Объект.ВестиУчетСертификатовНоменклатуры + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Учет сертификатов номенклатуры</v8:content> + </v8:item> + + Right + Auto + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Обеспечение</v8:content> + </v8:item> + + Vertical + Usual + Picture + false + + + + Объект.ОбособленнаяЗакупкаПродажа + Right + Auto + + + + + Объект.СпособОбеспеченияПотребностей + Left + + + + + Объект.СхемаОбеспечения + Left + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Планирование и маркетинг</v8:content> + </v8:item> + + Vertical + Usual + Picture + false + + + + Объект.СезоннаяГруппа + Left + + + + + + + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Контроль качества</v8:content> + </v8:item> + + Vertical + + + + Объект.КонтролироватьКачествоПоступившегоТовара + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Контроль качества поступившего товара</v8:content> + </v8:item> + + Right + Auto + + + + КонтролироватьКачествоПоступившегоТовараПриИзменении + + + + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа срок контроля</v8:content> + </v8:item> + + AlwaysHorizontal + None + false + + + + 1 + 1 + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отступ</v8:content> + </v8:item> + + + + + + Объект.СрокКонтроляКачества + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Срок контроля</v8:content> + </v8:item> + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>дн.</v8:content> + </v8:item> + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Цены</v8:content> + </v8:item> + + Vertical + Usual + Picture + false + + + + Объект.ЦеноваяГруппа + Left + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Шаблоны ценников и этикеток</v8:content> + </v8:item> + + Vertical + Usual + Picture + false + + + + Объект.ШаблонЦенника + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ценник</v8:content> + </v8:item> + + Left + + + ru + По умолчанию для печати ценника будет использоваться этот шаблон. Для каждой номенклатуры, можно назначить индивидуальный шаблон. + + + Button + + + + + Объект.ШаблонЭтикетки + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Этикетка товара</v8:content> + </v8:item> + + Left + + + ru + По умолчанию для печати этикетки товара будет использоваться этот шаблон. Для каждой номенклатуры, можно назначить индивидуальный шаблон. + + + Button + + + + + Объект.ШаблонЭтикеткиСерии + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Этикетка серии</v8:content> + </v8:item> + + Left + + + ru + Если задан шаблон этикетки серии, то он будет использоваться при печати. Если шаблон этикетки серии не задан, то будет использоваться шаблон этикеток серий из настроек программы. + + + Button + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интеграция с ФГИС</v8:content> + </v8:item> + + Vertical + false + + + + ВидПродукцииГИСМТ + 50 + + + + ВидПродукцииГИСМТПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа интеграция ФГИС</v8:content> + </v8:item> + + None + false + false + + + + ФлагФГИС + Right + Auto + + + + ФлагФГИСПриИзменении + + + + ВидПродукцииФГИС + 50 + + + + ВидПродукцииФГИСПриИзменении + + + + ВидыПродукцииФГИС + + + + ВидыПродукцииФГИСОбработкаНавигационнойСсылки + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Колонки право</v8:content> + </v8:item> + + 48 + Vertical + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Основные параметры учета</v8:content> + </v8:item> + + Vertical + Usual + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа ставки НДС</v8:content> + </v8:item> + + Usual + None + false + + + + Объект.СтавкаНДС + Left + false + 6 + false + + + + НастроитьФормуКлиент + + + + + + Объект.КодТНВЭД + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>ТН ВЭД</v8:content> + </v8:item> + + Left + + + ru + Классификатор товарной номенклатуры внешнеэкономической деятельности + + + false + 12 + + + + КодТНВЭДПриИзменении + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Единицы измерения и условия хранения</v8:content> + </v8:item> + + Vertical + Usual + Picture + + + + Объект.ИспользоватьУпаковки + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Упаковки</v8:content> + </v8:item> + + Right + Auto + + + + ИспользоватьУпаковкиПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа набор упаковок колонки</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + 1 + false + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа набор упаковок право</v8:content> + </v8:item> + + Vertical + Usual + None + false + false + + + + ИспользованиеУпаковок + None + Auto + + + + 0 + + + + ru + Индивидуальный набор + + + ИндивидуальныйНабор + + + + + + + ИспользованиеУпаковокПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа использование упаковок2</v8:content> + </v8:item> + + Horizontal + Usual + None + false + false + + + + ИспользованиеУпаковок + None + Auto + + + + 0 + + + + ru + Общий набор + + + ОбщийНабор + + + + + + + ИспользованиеУпаковокПриИзменении + + + + Объект.НаборУпаковок + None + + + + НаборУпаковокПриИзменении + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа единица измерения поставляется в таре</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + Объект.ЕдиницаИзмерения + Left + 9 + false + false + true + ShowInInputField + false + false + + + + ЕдиницаИзмеренияПриИзменении + + + + Объект.ПоставляетсяВМногооборотнойТаре + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>поставляется в таре</v8:content> + </v8:item> + + Right + Auto + + + + ПоставляетсяВМногооборотнойТареПриИзменении + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа тара колонки</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + 1 + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа тара колонки право</v8:content> + </v8:item> + + Vertical + Usual + None + false + false + + + + Объект.НоменклатураМногооборотнаяТара + Left + false + true + ShowInInputField + + + + НастроитьФормуКлиент + + + + Объект.ХарактеристикаМногооборотнаяТара + Left + false + true + ShowInInputField + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Единица для отчетов</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + Объект.ЕдиницаДляОтчетов + Left + 9 + false + false + true + ShowInInputField + false + false + + + + НастроитьФормуКлиент + + + + Объект.КоэффициентЕдиницыДляОтчетов + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>содержит</v8:content> + </v8:item> + + Left + 6 + false + 6 + + + + + Объект.ЕдиницаИзмерения + None + None + 13 + + + + + + + Объект.СкладскаяГруппа + Left + false + true + ShowInInputField + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Финансовый учет</v8:content> + </v8:item> + + Vertical + Usual + Picture + false + + + + Объект.ГруппаАналитическогоУчета + Left + + + + + Объект.ГруппаФинансовогоУчета + Left + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Регламентированный учет</v8:content> + </v8:item> + + Vertical + Usual + Picture + false + + + + Объект.ВестиУчетПоГТД + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Импортный товар (учет по ГТД)</v8:content> + </v8:item> + + Right + Auto + + + + + Объект.ОблагаетсяНДСУПокупателя + Right + Auto + + + + НастроитьФормуКлиент + + + + Объект.ЗапрещенаПродажаЧерезПатент + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура с пустым КВПД не подпадает под патентную систему налогообложения</v8:content> + </v8:item> + + Right + Auto + + + + + Объект.КодРаздел7ДекларацииНДС + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Операция декларации по НДС</v8:content> + </v8:item> + + false + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Код операции для заполнения раздела 7 декларации по НДС</v8:content> + </v8:item> + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сведения по алкогольной продукции</v8:content> + </v8:item> + + + + ru + Сведения об алкогольной и спиртосодержащей продукции + + + Vertical + Usual + Picture + false + + + + Объект.ВидАлкогольнойПродукции + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид продукции</v8:content> + </v8:item> + + Left + + + + + Объект.ИмпортнаяАлкогольнаяПродукция + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Происхождение</v8:content> + </v8:item> + + Left + true + true + + + + 0 + + + + ru + Россия + + + false + + + + + 0 + + + + ru + Импорт + + + true + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа крепость</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + Объект.Крепость + Left + 8 + + + + + 4 + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>% об.</v8:content> + </v8:item> + + Center + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Общероссийские классификаторы</v8:content> + </v8:item> + + + + ru + Значения классификаторов, устанавливаемые по умолчанию для номенклатуры + + + Vertical + Usual + Picture + false + + + + Объект.КодОКВЭД + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>ОКВЭД</v8:content> + </v8:item> + + Left + + + ru + Общероссийский классификатор видов экономической деятельности + + + false + 14 + + + + КодОКВЭДПриИзменении + + + + Объект.КодОКВЭД2 + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>ОКВЭД 2</v8:content> + </v8:item> + + Left + + + ru + Общероссийский классификатор видов экономической деятельности + + + false + 14 + true + + + + КодОКВЭД2ПриИзменении + КодОКВЭД2АвтоПодбор + КодОКВЭД2НачалоВыбора + + + + Объект.КодОКП + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>ОКП</v8:content> + </v8:item> + + Left + false + 12 + + + + КодОКППриИзменении + + + + Объект.КодОКПД2 + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>ОКПД2</v8:content> + </v8:item> + + Left + false + 12 + + + + КодОКПД2ПриИзменении + + + + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Дополнительные сведения</v8:content> + </v8:item> + + Vertical + Collapsible + true + Picture + + + + false + style:ПоясняющийТекст + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Предназначены для хранения свойств внешних по отношению к объекту (например, идентификатор объекта в другой информационной системе и т.п.) + +Используйте дополнительные свойства в исключительных случаях, когда нужно ограничить доступ к изменению свойств (либо, наоборот, дать доступ на изменение свойств пользователям, у которых нет прав на изменение самого объекта). Изменение свойства не требует перезаписи объекта. + +Задайте в этой форме последовательность дополнительных сведений - это определяет порядок их отображения в форме дополнительных сведений.</v8:content> + </v8:item> + + Top + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа дополнительные сведения</v8:content> + </v8:item> + + Horizontal + Usual + None + Equal + false + + + + List + true + true + true + AsFile + ТаблицаДопСведенийНоменклатуры + ТаблицаДопСведенийНоменклатуры.ИндексКартинки + + CommonPicture.ДополнительныеРеквизитыСведения + false + + + CancelSearch + Change + Copy + CopyToClipboard + EndEdit + Find + OutputList + SelectAll + SortListAsc + SortListDesc + + None + None + None + + + false + + + false + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Добавить</v8:content> + </v8:item> + + + StdPicture.CreateListItem + true + + + + + + + + + + + + + + + + + ТаблицаДопСведенийНоменклатуры + SearchStringRepresentation + + + + + + + ТаблицаДопСведенийНоменклатуры + ViewStatusRepresentation + + Left + + + + + + ТаблицаДопСведенийНоменклатуры + SearchControl + + + + + + ТаблицаДопСведенийНоменклатурыВыбор + ТаблицаДопСведенийНоменклатурыПередНачаломДобавления + ТаблицаДопСведенийНоменклатурыПриАктивизацииСтроки + ТаблицаДопСведенийНоменклатурыНачалоПеретаскивания + ТаблицаДопСведенийНоменклатурыОбработкаВыбора + ТаблицаДопСведенийНоменклатурыПриИзменении + + + + ТаблицаДопСведенийНоменклатуры.ПредставлениеРеквизита + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сведения номенклатуры</v8:content> + </v8:item> + + EnterOnInput + false + + + + +
+ + List + true + true + true + AsFile + ТаблицаДопСведенийХарактеристик + ТаблицаДопСведенийХарактеристик.ИндексКартинки + + CommonPicture.ДополнительныеРеквизитыСведения + false + + + CancelSearch + Change + Copy + CopyToClipboard + EndEdit + Find + OutputList + SelectAll + SortListAsc + SortListDesc + + None + None + None + + + false + + + false + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Добавить</v8:content> + </v8:item> + + + StdPicture.CreateListItem + true + + + + + + + + + + + + + + + + + ТаблицаДопСведенийХарактеристик + SearchStringRepresentation + + + + + + + ТаблицаДопСведенийХарактеристик + ViewStatusRepresentation + + Left + + + + + + ТаблицаДопСведенийХарактеристик + SearchControl + + + + + + ТаблицаДопСведенийХарактеристикВыбор + ТаблицаДопСведенийХарактеристикПередНачаломДобавления + ТаблицаДопСведенийХарактеристикПриАктивизацииСтроки + ТаблицаДопСведенийХарактеристикНачалоПеретаскивания + ТаблицаДопСведенийХарактеристикОбработкаВыбора + ТаблицаДопСведенийХарактеристикПриИзменении + + + + ТаблицаДопСведенийХарактеристик.ПредставлениеРеквизита + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сведения характеристик</v8:content> + </v8:item> + + EnterOnInput + false + + + + +
+ + List + true + true + true + AsFile + ТаблицаДопСведенийСерий + ТаблицаДопСведенийСерий.ИндексКартинки + + CommonPicture.ДополнительныеРеквизитыСведения + false + + + CancelSearch + Change + Copy + CopyToClipboard + EndEdit + Find + OutputList + SelectAll + SortListAsc + SortListDesc + + None + None + None + + + false + + + false + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Добавить</v8:content> + </v8:item> + + + StdPicture.CreateListItem + true + + + + + + + + + + + + + + + + + ТаблицаДопСведенийСерий + SearchStringRepresentation + + + + + + + ТаблицаДопСведенийСерий + ViewStatusRepresentation + + Left + + + + + + ТаблицаДопСведенийСерий + SearchControl + + + + + + ТаблицаДопСведенийСерийВыбор + ТаблицаДопСведенийСерийПередНачаломДобавления + ТаблицаДопСведенийСерийПриАктивизацииСтроки + ТаблицаДопСведенийСерийНачалоПеретаскивания + ТаблицаДопСведенийСерийОбработкаВыбора + ТаблицаДопСведенийСерийПриИзменении + + + + ТаблицаДопСведенийСерий.ПредставлениеРеквизита + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сведения серий</v8:content> + </v8:item> + + EnterOnInput + false + + + + +
+
+
+
+
+
+
+
+
+
+ + + + cfg:CatalogObject.ВидыНоменклатуры + + true + true + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Это политика для склада</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Соответствует политике по умолчанию</v8:content> + </v8:item> + + + xs:boolean + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Для размера ячейки</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Виден с условием</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Заполнять обязательно с условием</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Доступен с условием</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Это общий реквизит</v8:content> + </v8:item> + + + xs:boolean + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Для размера ячейки</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Виден с условием</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Заполнять обязательно с условием</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Доступен с условием</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Это общий реквизит</v8:content> + </v8:item> + + + xs:boolean + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Уникален</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отображать при создании</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Доступность уникален</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Доступность отображать при создании</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Для размера ячейки</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Виден с условием</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Заполнять обязательно с условием</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Доступен с условием</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Это общий реквизит</v8:content> + </v8:item> + + + xs:boolean + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Адрес хранилища дерева операторов</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Таблица доп реквизитов номенклатуры</v8:content> + </v8:item> + + + v8:ValueTable + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Свойство</v8:content> + </v8:item> + + + cfg:ChartOfCharacteristicTypesRef.ДополнительныеРеквизитыИСведения + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Общее свойство</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Представление реквизита</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Индекс картинки</v8:content> + </v8:item> + + + xs:decimal + + 1 + 0 + Nonnegative + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Таблица доп реквизитов характеристик</v8:content> + </v8:item> + + + v8:ValueTable + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Свойство</v8:content> + </v8:item> + + + cfg:ChartOfCharacteristicTypesRef.ДополнительныеРеквизитыИСведения + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Общее свойство</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Представление реквизита</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Индекс картинки</v8:content> + </v8:item> + + + xs:decimal + + 1 + 0 + Nonnegative + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Редактируются общие реквизиты сведения</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Текущий тип элемента</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Текущий тип владельца набора элементов</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Таблица доп реквизитов серий</v8:content> + </v8:item> + + + v8:ValueTable + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Свойство</v8:content> + </v8:item> + + + cfg:ChartOfCharacteristicTypesRef.ДополнительныеРеквизитыИСведения + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Общее свойство</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Представление реквизита</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Индекс картинки</v8:content> + </v8:item> + + + xs:decimal + + 1 + 0 + Nonnegative + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Таблица доп. сведений номенклатуры</v8:content> + </v8:item> + + + v8:ValueTable + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Свойство</v8:content> + </v8:item> + + + cfg:ChartOfCharacteristicTypesRef.ДополнительныеРеквизитыИСведения + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Общее свойство</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Представление реквизита</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Индекс картинки</v8:content> + </v8:item> + + + xs:decimal + + 1 + 0 + Nonnegative + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Таблица доп. сведений характеристик</v8:content> + </v8:item> + + + v8:ValueTable + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Свойство</v8:content> + </v8:item> + + + cfg:ChartOfCharacteristicTypesRef.ДополнительныеРеквизитыИСведения + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Общее свойство</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Представление реквизита</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Индекс картинки</v8:content> + </v8:item> + + + xs:decimal + + 1 + 0 + Nonnegative + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Таблица доп. сведений серий</v8:content> + </v8:item> + + + v8:ValueTable + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Свойство</v8:content> + </v8:item> + + + cfg:ChartOfCharacteristicTypesRef.ДополнительныеРеквизитыИСведения + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Общее свойство</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Представление реквизита</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Индекс картинки</v8:content> + </v8:item> + + + xs:decimal + + 1 + 0 + Nonnegative + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Склад</v8:content> + </v8:item> + + + cfg:CatalogRef.Склады + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать индивидуальное наименование</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Общее наименование для печати</v8:content> + </v8:item> + + + xs:string + + 50 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Есть право редактирования</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Надпись шаблон рабочего наименования номенклатуры</v8:content> + </v8:item> + + + v8ui:FormattedString + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Цвет текста формы</v8:content> + </v8:item> + + + v8ui:Color + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вариант задания настроек серий</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Виды номенклатуры с тем же владельцем характеристик</v8:content> + </v8:item> + + + v8:ValueListType + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Виды номенклатуры с тем же владельцем серий</v8:content> + </v8:item> + + + v8:ValueListType + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройка товарных категорий</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Виды номенклатуры с тем же владельцем товарных категорий</v8:content> + </v8:item> + + + v8:ValueListType + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Есть склады без ордерной схемы при отражении излишков недостач</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отбор владельца характеристик</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Версия данных текущего набора</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использование упаковок</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Тип номенклатуры</v8:content> + </v8:item> + + + v8ui:FormattedString + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать производство</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать продажу агентских услуг</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Есть индивидуальные настройки политики учета серий</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать несколько складов</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Есть склады ордерные на поступление</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Есть склады ордерные на отгрузку</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отбор владельца серий</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отбор владельца товарных категорий</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отказ открытия формы</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Особенность учета до изменения</v8:content> + </v8:item> + + + cfg:EnumRef.ОсобенностиУчетаНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Параметры влияющие на отбор политик указания серий до изменения</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройка видимости формы</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Редактируемое свойство зависимости</v8:content> + </v8:item> + + + v8:ValueTable + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Зависимое свойство</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Набор свойств</v8:content> + </v8:item> + + + cfg:CatalogRef.НаборыДополнительныхРеквизитовИСведений + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизит</v8:content> + </v8:item> + + + cfg:ChartOfCharacteristicTypesRef.ДополнительныеРеквизитыИСведения + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Условие</v8:content> + </v8:item> + + + xs:string + + 20 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Значение</v8:content> + </v8:item> + + + xs:boolean + xs:string + xs:dateTime + xs:decimal + cfg:AnyIBRef + + 10 + 0 + Any + + + 0 + Variable + + + Date + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Редактируемое свойство</v8:content> + </v8:item> + + + cfg:ChartOfCharacteristicTypesRef.ДополнительныеРеквизитыИСведения + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Редактируемое свойство вид настройки</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Используется ценообразование25</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Мультиязычность включена</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Наименование ОКВЭД2</v8:content> + </v8:item> + + + xs:string + + 500 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Набор общих свойств</v8:content> + </v8:item> + + + cfg:CatalogRef.НаборыДополнительныхРеквизитовИСведений + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Набор общих свойств характеристик</v8:content> + </v8:item> + + + cfg:CatalogRef.НаборыДополнительныхРеквизитовИСведений + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Набор общих свойств серий</v8:content> + </v8:item> + + + cfg:CatalogRef.НаборыДополнительныхРеквизитовИСведений + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ключ видов продукции</v8:content> + </v8:item> + + + cfg:CatalogRef.КлючиВидовПродукцииИС + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Используется подсистема ВЕТИС</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Используется подсистема ГИСМТ</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Используется подсистема ЕГАИС</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Используется подсистема ЗЕРНО</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Используется подсистема САТУРН</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид продукции ВЕТИС</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыПродукцииИС + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид продукции ГИСМТ</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыПродукцииИС + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид продукции ЕГАИС</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыПродукцииИС + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид продукции САТУРН</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыПродукцииИС + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид продукции ЗЕРНО</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыПродукцииИС + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид продукции ФГИС</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыПродукцииИС + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Виды продукции ФГИС</v8:content> + </v8:item> + + + v8ui:FormattedString + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Данные подсистем ФГИС</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Флаг ФГИС</v8:content> + </v8:item> + + + xs:boolean + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Требуется обновление классификатора видов продукции ИС</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интерактивная загрузка классификаторов доступна</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ключ видов продукции до изменения</v8:content> + </v8:item> + + + cfg:CatalogRef.КлючиВидовПродукцииИС + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Изменить...</v8:content> + </v8:item> + + + + ru + Редактировать шаблон рабочего наименования номенклатуры + + + + CommonPicture.КонструкторФормул + false + + РедактироватьШаблонРабочегоНаименованияНоменклатуры + Text + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Изменить...</v8:content> + </v8:item> + + + + ru + Редактировать шаблон наименования для печати номенклатуры + + + + CommonPicture.КонструкторФормул + false + + РедактироватьШаблонНаименованияДляПечатиНоменклатуры + Text + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Изменить...</v8:content> + </v8:item> + + + + ru + Редактировать шаблон рабочего наименования характеристики + + + + CommonPicture.КонструкторФормул + false + + РедактироватьШаблонРабочегоНаименованияХарактеристики + Text + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Изменить...</v8:content> + </v8:item> + + + + ru + Редактировать шаблон наименования для печати характеристики + + + + CommonPicture.КонструкторФормул + false + + РедактироватьШаблонНаименованияДляПечатиХарактеристики + Text + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Установить контроль заполнения реквизитов по умолчанию</v8:content> + </v8:item> + + + + ru + Включает проверку заполнения для реквизитов, используемых в фильтре по свойствам или в шаблонах наименований + + + ВключитьПроверкуЗаполненияДляРеквизитов + true + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Общий для всей номенклатуры</v8:content> + </v8:item> + + + + ru + Выбрать общий реквизит из существующих + + + СоздатьОбщийРеквизитНоменклатуры + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Новый для вида</v8:content> + </v8:item> + + + + ru + Создать уникальный реквизит +(только для этого набора) + + + СоздатьНовыйРеквизитНоменклатуры + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Из другого набора...</v8:content> + </v8:item> + + + + ru + Создать уникальный реквизит, который будет иметь +общий список значений с выбранным реквизитом. + + + СоздатьПоОбразцуРеквизитНоменклатуры + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Новый для вида</v8:content> + </v8:item> + + + + ru + Создать уникальный реквизит +(только для этого набора) + + + СоздатьНовыйРеквизитХарактеристики + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Общий для всех характеристик</v8:content> + </v8:item> + + + + ru + Выбрать общий реквизит из существующих + + + СоздатьОбщийРеквизитХарактеристики + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Из другого набора...</v8:content> + </v8:item> + + + + ru + Создать уникальный реквизит, который будет иметь +общий список значений с выбранным реквизитом. + + + СоздатьПоОбразцуРеквизитХарактеристики + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Новый для вида</v8:content> + </v8:item> + + + + ru + Создать уникальный реквизит +(только для этого набора) + + + СоздатьНовыйРеквизитСерии + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Общий для всех серий</v8:content> + </v8:item> + + + + ru + Выбрать общий реквизит из существующих + + + СоздатьОбщийРеквизитСерии + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Из другого набора...</v8:content> + </v8:item> + + + + ru + Создать уникальный реквизит, который будет иметь +общий список значений с выбранным реквизитом. + + + СоздатьПоОбразцуРеквизитСерии + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Новое для вида</v8:content> + </v8:item> + + + + ru + Создать уникальный реквизит +(только для этого набора) + + + СоздатьНовоеСведениеНоменклатуры + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Новое для вида</v8:content> + </v8:item> + + + + ru + Создать уникальный реквизит +(только для этого набора) + + + СоздатьНовоеСведениеСерии + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Новое для вида</v8:content> + </v8:item> + + + + ru + Создать уникальный реквизит +(только для этого набора) + + + СоздатьНовоеСведениеХарактеристики + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Общее для всей номенклатуры</v8:content> + </v8:item> + + + + ru + Выбрать общий реквизит из существующих + + + СоздатьОбщееСведениеНоменклатуры + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Общее для всех серий</v8:content> + </v8:item> + + + + ru + Выбрать общий реквизит из существующих + + + СоздатьОбщееСведениеСерии + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Общее для всех характеристик</v8:content> + </v8:item> + + + + ru + Выбрать общий реквизит из существующих + + + СоздатьОбщееСведениеХарактеристики + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Из другого набора...</v8:content> + </v8:item> + + + + ru + Создать уникальный реквизит, который будет иметь +общий список значений с выбранным реквизитом. + + + СоздатьПоОбразцуСведениеНоменклатуры + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Из другого набора...</v8:content> + </v8:item> + + + + ru + Создать уникальный реквизит, который будет иметь +общий список значений с выбранным реквизитом. + + + СоздатьПоОбразцуСведениеСерии + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Из другого набора...</v8:content> + </v8:item> + + + + ru + Создать уникальный реквизит, который будет иметь +общий список значений с выбранным реквизитом. + + + СоздатьПоОбразцуСведениеХарактеристики + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Добавить склад</v8:content> + </v8:item> + + + + ru + Добавить склад в политики учета серий + + + ДобавитьСкладВПолитикиУчетаСерий + + FunctionalOption.ИспользоватьПроизводство + + true + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Добавить подразделение</v8:content> + </v8:item> + + + + ru + Добавить подразделение в политики учета серий + + + ДобавитьПодразделениеВПолитикиУчетаСерий + + FunctionalOption.ИспользоватьПроизводство + + true + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Изменить...</v8:content> + </v8:item> + + + + ru + Редактировать шаблон рабочего наименования серии + + + + CommonPicture.КонструкторФормул + false + + РедактироватьШаблонРабочегоНаименованияСерии + Text + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура</v8:content> + </v8:item> + + + + ru + Показать реквизиты для контроля номенклатуры + + + ПоказатьРеквизитыДляКонтроляНоменклатуры + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Характеристики</v8:content> + </v8:item> + + + + ru + Показать реквизиты для контроля номенклатуры + + + ПоказатьРеквизитыДляКонтроляХарактеристик + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Серии</v8:content> + </v8:item> + + + + ru + Показать реквизиты для контроля номенклатуры + + + ПоказатьРеквизитыДляКонтроляСерий + DontUse + + + + + + CommonCommand.ЗадачиПоПредмету + Auto + false + + false + + + + CommonCommand.МоиЗаметкиПоПредмету + Auto + false + + false + + + + Catalog.ТоварныеКатегории.StandardCommand.OpenByValue + Auto + false + + false + + + + CommonCommand.ПрисоединенныеФайлы + Auto + false + + false + + + + Catalog.ВидыНоменклатуры.Command.НастройкаЦенообразования + Auto + false + + false + + + + + + CommonCommand.Напомнить + Auto + false + + + +
\ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаЭлемента/Ext/Form/Module.bsl b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаЭлемента/Ext/Form/Module.bsl new file mode 100644 index 0000000..b8a50d2 --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаЭлемента/Ext/Form/Module.bsl @@ -0,0 +1,6970 @@ +#Область ОбработчикиСобытийФормы + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + // СтандартныеПодсистемы.РаботаСФайлами + РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ); + // Конец СтандартныеПодсистемы.РаботаСФайлами + + // СтандартныеПодсистемы.ПодключаемыеКоманды + ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект); + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + +КонецПроцедуры + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект); + + Если ОтказОткрытияФормы Тогда + Отказ = Истина; + Возврат; + КонецЕсли; + + ЦветТекстаФормы = ЦветаСтиля.ЦветТекстаФормы; + + УстановитьУсловноеОформление(); + + Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда + + ПриЧтенииСозданииНаСервере(); + + ТолькоОбщие = Ложь; + + Если Параметры.Свойство("ЗначениеКопирования") Тогда + + ЗаполнитьСписокСвойствДопРеквизитовТаблицы( + ТаблицаДопРеквизитовНоменклатуры, + Параметры.ЗначениеКопирования.НаборСвойств, + НаборОбщихСвойств, + "Реквизиты", + ТолькоОбщие); + + ЗаполнитьСписокСвойствДопРеквизитовТаблицы( + ТаблицаДопРеквизитовХарактеристик, + НаборОбщихСвойствХарактеристик, + "Реквизиты", + ТолькоОбщие); + + ЗаполнитьСписокСвойствДопРеквизитовТаблицы( + ТаблицаДопРеквизитовСерий, + Параметры.ЗначениеКопирования.НаборСвойствСерий, + НаборОбщихСвойствСерий, + "Реквизиты", + ТолькоОбщие); + + ЗаполнитьСписокСвойствДопРеквизитовТаблицы( + ТаблицаДопСведенийНоменклатуры, + Параметры.ЗначениеКопирования.НаборСвойств, + НаборОбщихСвойств, + "Сведения", + ТолькоОбщие); + + ЗаполнитьСписокСвойствДопРеквизитовТаблицы( + ТаблицаДопСведенийХарактеристик, + Параметры.ЗначениеКопирования.НаборСвойствХарактеристик, + НаборОбщихСвойствХарактеристик, + "Сведения", + ТолькоОбщие); + + ЗаполнитьСписокСвойствДопРеквизитовТаблицы( + ТаблицаДопСведенийСерий, + Параметры.ЗначениеКопирования.НаборСвойствСерий, + НаборОбщихСвойствСерий, + "Сведения", + ТолькоОбщие); + + // Заполнить дополнительные реквизиты для контроля. + КоллекцияРеквизитовДляКонтроля = Справочники.ВидыНоменклатуры.КоллекцияРеквизитовДляКонтроля(Объект, "Номенклатура"); + НеиспользуемыеДляКонтроляЗаполненияИОтборовТипы = Справочники.Номенклатура.НеиспользуемыеДляКонтроляЗаполненияИОтборовТипы(); + + ДополнительныеРеквизиты = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Параметры.ЗначениеКопирования.НаборСвойств, "ДополнительныеРеквизиты"); // РезультатЗапроса + Если ДополнительныеРеквизиты <> Неопределено Тогда + ВыборкаДополнительныеРеквизиты = ДополнительныеРеквизиты.Выбрать(); // ВыборкаИзРезультатаЗапроса + Пока ВыборкаДополнительныеРеквизиты.Следующий() Цикл + + ДобавляемоеСвойство = ВыборкаДополнительныеРеквизиты.Свойство; + РеквизитыДобавляемоеСвойство = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДобавляемоеСвойство, + "ТипЗначения, ЗаполнятьОбязательно"); + ТипЗначения = РеквизитыДобавляемоеСвойство.ТипЗначения; + НоваяСтрока = КоллекцияРеквизитовДляКонтроля.Добавить(); + + НоваяСтрока.ИмяРеквизита = ДобавляемоеСвойство; + НоваяСтрока.ПредставлениеРеквизита = Строка(ДобавляемоеСвойство); + НоваяСтрока.Свойство = ДобавляемоеСвойство; + НоваяСтрока.ЭтоДопРеквизит = Истина; + НоваяСтрока.ЗаполнятьОбязательно = РеквизитыДобавляемоеСвойство.ЗаполнятьОбязательно; + НоваяСтрока.ОтображатьПриСоздании = РеквизитыДобавляемоеСвойство.ЗаполнятьОбязательно; + + УсловияДоступности = УсловияДоступности(); + УсловияДоступности.ЭтоНеиспользуемыйДляКонтроляТип = (НеиспользуемыеДляКонтроляЗаполненияИОтборовТипы.Найти(ТипЗначения) <> Неопределено); + УсловияДоступности.ТипРеквизитаБулево = (ТипЗначения = Новый ОписаниеТипов("Булево")); + УсловияДоступности.ЗаполнятьОбязательно = РеквизитыДобавляемоеСвойство.ЗаполнятьОбязательно; + + УстановитьДоступностьНастройкиПолейРеквизитаДляКонтроля(НоваяСтрока, УсловияДоступности); + + КонецЦикла; + КонецЕсли; + + КонецЕсли; + Иначе + + НастройкаВидимостиФормы = "СвернутьВсе"; + СвернутьРазвернутьВсеГруппы(ЭтотОбъект); + + КонецЕсли; + + СвязиПараметровВыбораПолитикиВШапке = Новый Массив; + СвязиПараметровВыбораПолитикиВТЧ = Новый Массив; + + Для Каждого ПараметрОтбораПолитик Из НоменклатураКлиентСервер.ПараметрыОтбораПолитикУчетаСерий() Цикл + + Если ПараметрОтбораПолитик.Ключ = "ВидНоменклатуры" Тогда + СвязиПараметровВыбораПолитикиВШапке.Добавить(Новый СвязьПараметраВыбора("ВидНоменклатуры", + "Объект.Ссылка", РежимИзмененияСвязанногоЗначения.НеИзменять)); + ИначеЕсли ПараметрОтбораПолитик.Ключ = "Склад" Тогда + СвязиПараметровВыбораПолитикиВТЧ.Добавить(Новый СвязьПараметраВыбора("Склад", + "Элементы.ПолитикиУчетаСерий.ТекущиеДанные.Склад", РежимИзмененияСвязанногоЗначения.Очищать)); + Иначе + СвязиПараметровВыбораПолитикиВШапке.Добавить(Новый СвязьПараметраВыбора(ПараметрОтбораПолитик.Ключ, + "Объект." + ПараметрОтбораПолитик.Ключ, РежимИзмененияСвязанногоЗначения.НеИзменять)); + СвязиПараметровВыбораПолитикиВТЧ.Добавить(Новый СвязьПараметраВыбора(ПараметрОтбораПолитик.Ключ, + "Объект." + ПараметрОтбораПолитик.Ключ, РежимИзмененияСвязанногоЗначения.НеИзменять)); + КонецЕсли; + + КонецЦикла; + + ПараметрВыбораСклад = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Новый ПараметрВыбора("Склад", Неопределено)); + ПараметрВыбораВидНоменклатуры = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Новый ПараметрВыбора("ВидНоменклатуры", Неопределено)); + + Элементы.ПолитикаУчетаСерий.СвязиПараметровВыбора = Новый ФиксированныйМассив(СвязиПараметровВыбораПолитикиВШапке); + Элементы.ПолитикаУчетаСерий.ПараметрыВыбора = Новый ФиксированныйМассив(ПараметрВыбораСклад); + + Элементы.ПолитикаУчетаСерий2.СвязиПараметровВыбора = Новый ФиксированныйМассив(СвязиПараметровВыбораПолитикиВШапке); + Элементы.ПолитикаУчетаСерий2.ПараметрыВыбора = Новый ФиксированныйМассив(ПараметрВыбораСклад); + + Элементы.ПолитикиУчетаСерийПолитикаУчетаСерий.СвязиПараметровВыбора = Новый ФиксированныйМассив(СвязиПараметровВыбораПолитикиВТЧ); + Элементы.ПолитикиУчетаСерийПолитикаУчетаСерий.ПараметрыВыбора = Новый ФиксированныйМассив(ПараметрВыбораВидНоменклатуры); + + // подсистема запрета редактирования ключевых реквизитов объектов + ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект); + + УправлениеДоступом.ПриСозданииФормыЗначенияДоступа(ЭтотОбъект); + + СобытияФорм.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка); + + ПриСозданииНаСервереЛокализация(); + + // СтандартныеПодсистемы.РаботаСФайлами + ПараметрыГиперссылки = РаботаСФайлами.ГиперссылкаФайлов(); + ПараметрыГиперссылки.Размещение = "КоманднаяПанель"; + РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки); + // Конец СтандартныеПодсистемы.РаботаСФайлами + + // СтандартныеПодсистемы.ПодключаемыеКоманды + ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект); + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + + ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект); + + МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + +КонецПроцедуры + +&НаСервере +Процедура ПриЧтенииНаСервере(ТекущийОбъект) + + // СтандартныеПодсистемы.УправлениеДоступом + УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + // Конец СтандартныеПодсистемы.УправлениеДоступом + + // СтандартныеПодсистемы.ПодключаемыеКоманды + ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект); + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + + Если ОбщегоНазначенияУТКлиентСервер.АвторизованВнешнийПользователь() Тогда + ОтказОткрытияФормы = Истина; + Возврат; + КонецЕсли; + + ПриЧтенииСозданииНаСервере(); + + МодификацияКонфигурацииПереопределяемый.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + + МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) + + Если ИспользоватьИндивидуальноеНаименование = "ИспользоватьИндивидуальноеНаименование" Тогда + Объект.ИспользоватьИндивидуальноеНаименованиеПриПечати = Истина; + Иначе + Объект.ИспользоватьИндивидуальноеНаименованиеПриПечати = Ложь; + КонецЕсли; + + Если ИспользуетсяЦенообразование25 + И Не ЗначениеЗаполнено(Объект.НастройкиКлючаЦенПоХарактеристике) + И Не Элементы.НастройкиКлючаЦенПоХарактеристике.Доступность Тогда + Объект.НастройкиКлючаЦенПоХарактеристике = ПредопределенноеЗначение("Перечисление.ВариантОтбораДляКлючаЦен.НеИспользовать"); + КонецЕсли; + + ОчиститьСообщения(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПослеЗаписи(ПараметрыЗаписи) + + Оповестить("Запись_ВидыНоменклатуры",,ЭтотОбъект); + МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтотОбъект, ПараметрыЗаписи); + + // СтандартныеПодсистемы.ПодключаемыеКоманды + ПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи); + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + +КонецПроцедуры + +&НаСервере +Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) + + Если Отказ Тогда + Возврат; + КонецЕсли; + + ЗаписатьДопРеквизитыСведенияНабора(Отказ, ТекущийОбъект, "ДопРеквизит", "Номенклатура"); + ЗаписатьДопРеквизитыСведенияНабора(Отказ, ТекущийОбъект, "ДопРеквизит", "ХарактеристикиНоменклатуры"); + ЗаписатьДопРеквизитыСведенияНабора(Отказ, ТекущийОбъект, "ДопРеквизит", "СерииНоменклатуры"); + + ЗаписатьДопРеквизитыСведенияНабора(Отказ, ТекущийОбъект, "ДопСведение", "Номенклатура"); + ЗаписатьДопРеквизитыСведенияНабора(Отказ, ТекущийОбъект, "ДопСведение", "ХарактеристикиНоменклатуры"); + ЗаписатьДопРеквизитыСведенияНабора(Отказ, ТекущийОбъект, "ДопСведение", "СерииНоменклатуры"); + + Если ЗначениеЗаполнено(Объект.Ссылка) Тогда + АктуализироватьНастройкиДопРеквизитовДляКонтроляПриЗаписи(ТекущийОбъект, "Номенклатура"); + АктуализироватьНастройкиДопРеквизитовДляКонтроляПриЗаписи(ТекущийОбъект, "ХарактеристикиНоменклатуры"); + АктуализироватьНастройкиДопРеквизитовДляКонтроляПриЗаписи(ТекущийОбъект, "СерииНоменклатуры"); + + ЗаписатьСвойстваДопРеквизитов("Номенклатура", Отказ); + ЗаписатьСвойстваДопРеквизитов("ХарактеристикиНоменклатуры", Отказ); + ЗаписатьСвойстваДопРеквизитов("СерииНоменклатуры", Отказ); + КонецЕсли; + + ПриЗаписиНаСервереЛокализация(Отказ, ТекущийОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "ПодборРеквизитовВТаблицуОтбора" Тогда + + // При подборе элемента в таблицу реквизитов отбора номенклатуры или характеристик. + Отбор = Новый Структура("ИмяРеквизита, ЭтоДопРеквизит, Свойство"); + + Если ТекущийТипВладельцаНабораЭлементов = "Номенклатура" Тогда + + ТЧРеквизитовОтбора = Объект.РеквизитыБыстрогоОтбораНоменклатуры; + + ИначеЕсли ТекущийТипВладельцаНабораЭлементов = "ХарактеристикиНоменклатуры" Тогда + + ТЧРеквизитовОтбора = Объект.РеквизитыБыстрогоОтбораХарактеристик; + + КонецЕсли; + + Для каждого ПараметрыСтроки Из Параметр.МассивДобавляемых Цикл + + ЗаполнитьЗначенияСвойств(Отбор, ПараметрыСтроки); + + РеквизитНеНайден = (ТЧРеквизитовОтбора.НайтиСтроки(Отбор).Количество() = 0); + + Если РеквизитНеНайден Тогда + + НоваяСтрока = ТЧРеквизитовОтбора.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрока, ПараметрыСтроки); + + КонецЕсли; + + КонецЦикла; + + Модифицированность = Истина; + + ИначеЕсли ИмяСобытия = "ПодборРеквизитовВТаблицуКлючаЦен" Тогда + + // При подборе элемента в таблицу реквизитов отбора номенклатуры или характеристик. + Отбор = Новый Структура("ИмяРеквизита, ЭтоДопРеквизит, Свойство"); + + Если ТекущийТипВладельцаНабораЭлементов = "ХарактеристикиНоменклатуры" Тогда + + ТЧРеквизитовКлючаЦен = Объект.РеквизитыХарактеристикДляКлючаЦен; + + ИначеЕсли ТекущийТипВладельцаНабораЭлементов = "СерииНоменклатуры" Тогда + + ТЧРеквизитовКлючаЦен = Объект.РеквизитыСерийДляКлючаЦен; + + КонецЕсли; + + Для каждого ПараметрыСтроки Из Параметр.МассивДобавляемых Цикл + + ЗаполнитьЗначенияСвойств(Отбор, ПараметрыСтроки); + + НайденныеСтроки = ТЧРеквизитовКлючаЦен.НайтиСтроки(Отбор); + + Если НайденныеСтроки.Количество() = 0 И ПараметрыСтроки.Используется Тогда + + НоваяСтрока = ТЧРеквизитовКлючаЦен.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрока, ПараметрыСтроки); + + ИначеЕсли НЕ ПараметрыСтроки.Используется Тогда + + Для Каждого Строка Из НайденныеСтроки Цикл + + ТЧРеквизитовКлючаЦен.Удалить(Строка); + + КонецЦикла; + + КонецЕсли; + + КонецЦикла; + + ТЧРеквизитовКлючаЦен.Сортировать("ЭтоДопРеквизит, ПредставлениеРеквизита"); + + Если ТекущийТипВладельцаНабораЭлементов = "ХарактеристикиНоменклатуры" Тогда + + СформироватьНадписьРазрезаЦенообразования("Характеристики"); + + ИначеЕсли ТекущийТипВладельцаНабораЭлементов = "СерииНоменклатуры" Тогда + + СформироватьНадписьРазрезаЦенообразования("Серии"); + + КонецЕсли; + + ОбновитьРазрезыЦенообразования(); + + Модифицированность = Истина; + + ИначеЕсли ИмяСобытия = "Запись_НаборыДополнительныхРеквизитовИСведений" + Или ИмяСобытия = "Запись_ДополнительныеРеквизитыИСведения" Тогда + + // При записи набора доп.реквизитов (сведений), например: + // открыли форму редактирования общих доп.реквизитов (сведений) и записали его. + ПриЗаписиНабораДополнительныхРеквизитовИСведенийНаСервере(); + + ИначеЕсли ИмяСобытия = "Свойства_УстановленаЗависимостьРеквизита" Тогда + + Если ЗначениеЗаполнено(РедактируемоеСвойствоВидНастройки) Тогда + ЗаписатьНастройкиСвойства(Параметр); + КонецЕсли; + + ИначеЕсли ИмяСобытия = "Запись_ВидыНоменклатуры" Тогда + + Если НЕ Источник.УникальныйИдентификатор = УникальныйИдентификатор Тогда + Прочитать(); + КонецЕсли; + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + ИначеЕсли ИмяСобытия = РаботаСНоменклатуройКлиент.ОписаниеОповещенийПодсистемы().ЗагрузкаКатегорий Тогда + Если Не Модифицированность Тогда + ПерезаполнитьИдентификаторыКатегорий(); + КонецЕсли; + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + + КонецЕсли; + + // СтандартныеПодсистемы.РаботаСФайлами + РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия); + // Конец СтандартныеПодсистемы.РаботаСФайлами + +КонецПроцедуры + +&НаСервере +Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) + + МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтотОбъект, Отказ, ТекущийОбъект, ПараметрыЗаписи); + + МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) + + //++ Локализация + ЗаполнитьКлючВидовПродукции(); + ИнтеграцияИС.ЗаполнитьДанныеПоКлючуВидовПродукции(ЭтотОбъект); + //-- Локализация + + // СтандартныеПодсистемы.УправлениеДоступом + УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи); + // Конец СтандартныеПодсистемы.УправлениеДоступом + + ЗаполнитьРеквизитыФормыПоРеквизитамОбъекта(); + + // подсистема запрета редактирования ключевых реквизитов объектов + ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект); + + МодификацияКонфигурацииПереопределяемый.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи); + + МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) + + ТекстСообщенияНеЗаполненаПолитика = НСтр("ru = 'Не заполнена колонка ""Политика учета серий"" для склада ""%1"" списка ""Политики учета серий"".'"); + ТекстСообщенияНеЗаполненСклад = НСтр("ru = 'Не заполнена колонка ""Склад"" в списке ""Политики учета серий"".'"); + ТекстСообщенияШаблонНаименования = НСтр("ru = 'В шаблоне для %1 нельзя использовать поле ""%2"", необходимо исправить шаблон.'"); + + ОшибкиЗаполнения = Неопределено; + Для ИндексСтроки = 0 По Объект.ПолитикиУчетаСерий.Количество() - 1 Цикл + + Строка = Объект.ПолитикиУчетаСерий[ИндексСтроки]; + + Если Не Строка.СоответствуетПолитикеПоУмолчанию + И Не ЗначениеЗаполнено(Строка.Склад) Тогда + ТекстСообщения = ТекстСообщенияНеЗаполненСклад; + ОбщегоНазначенияКлиентСервер.ДобавитьОшибкуПользователю(ОшибкиЗаполнения, + "Объект.ПолитикиУчетаСерий[%1].Склад", + ТекстСообщения, + , + , + , + ИндексСтроки); + ИначеЕсли Не Строка.СоответствуетПолитикеПоУмолчанию + И Не ЗначениеЗаполнено(Строка.ПолитикаУчетаСерий) Тогда + ТекстСообщения = СтрШаблон(ТекстСообщенияНеЗаполненаПолитика, Строка.Склад); + ОбщегоНазначенияКлиентСервер.ДобавитьОшибкуПользователю(ОшибкиЗаполнения, + "Объект.ПолитикиУчетаСерий[%1].ПолитикаУчетаСерий", + ТекстСообщения, + , + , + , + ИндексСтроки); + КонецЕсли; + + КонецЦикла; + + НаименованиеДляПроверки = "Наименование"; + Если СтрНайти(Объект.ШаблонРабочегоНаименованияНоменклатуры, "["+НаименованиеДляПроверки+"]") > 0 + И Объект.ЗапретРедактированияРабочегоНаименованияНоменклатуры Тогда + ТекстСообщения = СтрШаблон(ТекстСообщенияШаблонНаименования, + "рабочего наименования номенклатуры", НаименованиеДляПроверки); + ОбщегоНазначенияКлиентСервер.ДобавитьОшибкуПользователю(ОшибкиЗаполнения, + "Объект.ШаблонРабочегоНаименованияНоменклатуры", + ТекстСообщения); + КонецЕсли; + + НаименованиеДляПроверки = "НаименованиеПолное"; + Если СтрНайти(Объект.ШаблонНаименованияДляПечатиНоменклатуры, "["+НаименованиеДляПроверки+"]") > 0 + И Объект.ЗапретРедактированияНаименованияДляПечатиНоменклатуры Тогда + ТекстСообщения = СтрШаблон(ТекстСообщенияШаблонНаименования, + "наименования для печати номенклатуры", НаименованиеДляПроверки); + ОбщегоНазначенияКлиентСервер.ДобавитьОшибкуПользователю(ОшибкиЗаполнения, + "Объект.ШаблонНаименованияДляПечатиНоменклатуры", + ТекстСообщения); + КонецЕсли; + + НаименованиеДляПроверки = "Наименование"; + Если СтрНайти(Объект.ШаблонРабочегоНаименованияХарактеристики, "["+НаименованиеДляПроверки+"]") > 0 + И Объект.ЗапретРедактированияРабочегоНаименованияХарактеристики Тогда + ТекстСообщения = СтрШаблон(ТекстСообщенияШаблонНаименования, + "рабочего наименования характеристики", НаименованиеДляПроверки); + ОбщегоНазначенияКлиентСервер.ДобавитьОшибкуПользователю(ОшибкиЗаполнения, + "Объект.ШаблонРабочегоНаименованияХарактеристики", + ТекстСообщения); + КонецЕсли; + + НаименованиеДляПроверки = "НаименованиеПолное"; + Если СтрНайти(Объект.ШаблонНаименованияДляПечатиХарактеристики, "["+НаименованиеДляПроверки+"]") > 0 + И Объект.ЗапретРедактированияНаименованияДляПечатиХарактеристики Тогда + ТекстСообщения = СтрШаблон(ТекстСообщенияШаблонНаименования, + "наименования для печати характеристики", НаименованиеДляПроверки); + ОбщегоНазначенияКлиентСервер.ДобавитьОшибкуПользователю(ОшибкиЗаполнения, + "Объект.ШаблонНаименованияДляПечатиХарактеристики", + ТекстСообщения); + КонецЕсли; + + Если ИспользуетсяЦенообразование25 + И Не ЗначениеЗаполнено(Объект.НастройкиКлючаЦенПоХарактеристике) Тогда + ТекстСообщения = НСтр("ru = 'Не выбран вариант настройки разрезов ведения цен по характеристикам.'"); + ОбщегоНазначенияКлиентСервер.ДобавитьОшибкуПользователю(ОшибкиЗаполнения, + "Объект.НастройкиКлючаЦенПоХарактеристике", + ТекстСообщения); + КонецЕсли; + + ОбщегоНазначенияКлиентСервер.СообщитьОшибкиПользователю(ОшибкиЗаполнения, Отказ); + + ОбработкаПроверкиЗаполненияНаСервереЛокализация(Отказ, ПроверяемыеРеквизиты); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура НастроитьФормуКлиент(Элемент) + + НастроитьФорму(); + +КонецПроцедуры + +&НаКлиенте +Процедура ТипНоменклатурыПриИзменении(Элемент) Экспорт + + ТипНоменклатурыПриИзмененииСервер(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОсобенностьУчетаПриИзменении(Элемент) + + ТипНоменклатурыПриИзмененииСервер(); + +КонецПроцедуры + +#Область НастройкаИнтеграцииСФГИС + +&НаКлиенте +Процедура ВидПродукцииГИСМТПриИзменении(Элемент) + + //++ Локализация + ИнтеграцияИСКлиент.ВидПродукцииГИСМТПриИзменении(ЭтотОбъект); + //-- Локализация + +КонецПроцедуры + +&НаКлиенте +Процедура ФлагФГИСПриИзменении(Элемент) + + //++ Локализация + ИнтеграцияИСКлиент.ФлагФГИСПриИзменении(ЭтотОбъект); + //-- Локализация + +КонецПроцедуры + +&НаКлиенте +Процедура ВидПродукцииФГИСПриИзменении(Элемент) + + //++ Локализация + ИнтеграцияИСКлиент.ВидПродукцииФГИСПриИзменении(ЭтотОбъект); + //-- Локализация + +КонецПроцедуры + +&НаКлиенте +Процедура ВидыПродукцииФГИСОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + + //++ Локализация + СтандартнаяОбработка = Ложь; + + Если ТребуетсяОбновлениеКлассификатораВидовПродукции Тогда + + Если ИнтерактивнаяЗагрузкаКлассификаторовДоступна Тогда + + ОписаниеОповещения = Новый ОписаниеОповещения("Подключаемый_ПослеЗагрузкиКлассификаторов", ЭтотОбъект); + + ПараметрыОбновления = РаботаСКлассификаторамиКлиент.НовыйПараметрыОбновленияКлассификаторов(); + ПараметрыОбновления.Владелец = ЭтотОбъект; + ПараметрыОбновления.ОписаниеОповещения = ОписаниеОповещения; + ПараметрыОбновления.Идентификаторы = Новый Массив; + ПараметрыОбновления.Идентификаторы.Добавить( + ОбщегоНазначенияИСКлиентСервер.ИдентификаторКлассификатораВидовПродукцииИС()); + + РаботаСКлассификаторамиКлиент.ОбновитьКлассификаторы(ПараметрыОбновления); + + Иначе + + ПоказатьПредупреждение(, НСтр("ru = 'Интерактивная загрузка классификаторов недоступна. Обратитесь к администратору.'")); + + КонецЕсли; + + Иначе + + ПараметрыОткрытияФормы = Новый Структура; + ПараметрыОткрытияФормы.Вставить("КлючВидовПродукции", КлючВидовПродукции); + + ОткрытьФорму("ОбщаяФорма.НастройкаИнтеграцииИС", + ПараметрыОткрытияФормы,, + УникальныйИдентификатор,,, + Новый ОписаниеОповещения("НастройкаИнтеграцииСФГИСЗавершение", ЭтотОбъект), + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + + КонецЕсли; + //-- Локализация + +КонецПроцедуры + +#КонецОбласти + +&НаКлиенте +Процедура ИспользоватьХарактеристикиПриИзменении(Элемент) + + ИспользоватьХарактеристикиПриИзмененииНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура ИспользованиеХарактеристикПриИзменении(Элемент) + + Если Объект.ИспользованиеХарактеристик = ПредопределенноеЗначение("Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры") Тогда + ВыбратьВидВладелец("Характеристик"); + Иначе + Объект.ВладелецХарактеристик = Неопределено; + УстановитьРеквизитыЦенообразования(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура НастройкаТоварныхКатегорийПриИзменении(Элемент) + Объект.ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры = + НастройкаТоварныхКатегорий = "ОбщиеСДругимВидомНоменклатуры"; + + Если Объект.ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры Тогда + ВыбратьВидВладелец("ТоварныхКатегорий"); + Иначе + Объект.ВладелецТоварныхКатегорий = Неопределено; + НастроитьФорму(); + КонецЕсли; +КонецПроцедуры + +&НаКлиенте +Процедура ИспользоватьСерииПриИзменении(Элемент) + + ИспользоватьСерииПриИзмененииНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура ЕдиницаИзмеренияПриИзменении(Элемент) + ЕдиницаИзмеренияПриИзмененииСервер(); +КонецПроцедуры + +&НаКлиенте +Процедура ИспользоватьУпаковкиПриИзменении(Элемент) + + Если Не Объект.ИспользоватьУпаковки Тогда + Объект.НаборУпаковок = Неопределено; + ИспользованиеУпаковок = ""; + Иначе + Объект.ПоставляетсяВМногооборотнойТаре = Ложь; + Объект.НоменклатураМногооборотнаяТара = Неопределено; + Объект.ХарактеристикаМногооборотнаяТара = Неопределено; + ИспользованиеУпаковок = "ОбщийНабор"; + КонецЕсли; + + ИспользоватьУпаковкиПриИзмененииНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура НаборУпаковокПриИзменении(Элемент) + + НаборУпаковокПриИзмененииНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПоставляетсяВМногооборотнойТареПриИзменении(Элемент) + + Если Не Объект.ПоставляетсяВМногооборотнойТаре Тогда + Объект.НоменклатураМногооборотнаяТара = Неопределено; + Объект.ХарактеристикаМногооборотнаяТара = Неопределено; + КонецЕсли; + + НастроитьФорму(); +КонецПроцедуры + +&НаСервере +Процедура ПриЗаписиНабораДополнительныхРеквизитовИСведенийНаСервере() + + Если НЕ Модифицированность Тогда + Прочитать(); + Иначе + Если ТекущийТипВладельцаНабораЭлементов = "Номенклатура" + Или ТекущийТипВладельцаНабораЭлементов = "ХарактеристикиНоменклатуры" + Или ТекущийТипВладельцаНабораЭлементов = "СерииНоменклатуры" Тогда + + // Если редактируется состав набора общих дополнительных сведений, + // то изменять состав реквизитов для контроля и отбора не нужно. + Если ТекущийТипЭлемента <> "ДопСведение" Тогда + Справочники.ВидыНоменклатуры.ЗаполнитьДопРеквизитыДляКонтроляИОтбора(Объект, ТекущийТипВладельцаНабораЭлементов); + КонецЕсли; + + КонецЕсли; + + ЗаполнитьСпискиДопРеквизитовСведений(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВариантЗаданияНастроекСерийПриИзменении(Элемент) + Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + = ВариантЗаданияНастроекСерий = "ИспользуютсяТакжеКакВДругомВидеНоменклатуры"; + Если Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры Тогда + ВыбратьВидВладелец("Серий"); + Объект.ПолитикиУчетаСерий.Очистить(); + Иначе + Объект.ВладелецСерий = Неопределено; + УстановитьРеквизитыЦенообразования(); + КонецЕсли; +КонецПроцедуры + +&НаКлиенте +Процедура ВладелецХарактеристикОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылка, СтандартнаяОбработка) + ОбработкаНавигационнойСсылкиНадписиПоВидуВладельцу(НавигационнаяСсылка, "Характеристик", СтандартнаяОбработка); +КонецПроцедуры + +&НаКлиенте +Процедура ВладелецСерийОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылка, СтандартнаяОбработка) + ОбработкаНавигационнойСсылкиНадписиПоВидуВладельцу(НавигационнаяСсылка, "Серий", СтандартнаяОбработка); +КонецПроцедуры + +&НаКлиенте +Процедура ВладелецТоварныхКатегорийОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылка, СтандартнаяОбработка) + ОбработкаНавигационнойСсылкиНадписиПоВидуВладельцу(НавигационнаяСсылка, "ТоварныхКатегорий", СтандартнаяОбработка); +КонецПроцедуры + +&НаКлиенте +Процедура ИспользованиеУпаковокПриИзменении(Элемент) + Если ИспользованиеУпаковок = "ИндивидуальныйНабор" Тогда + Объект.НаборУпаковок = ПредопределенноеЗначение("Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры"); + Иначе + Объект.НаборУпаковок = ПредопределенноеЗначение("Справочник.НаборыУпаковок.ПустаяСсылка"); + КонецЕсли; + + НастроитьФорму(); +КонецПроцедуры + +&НаКлиенте +Процедура ПолитикаУчетаСерийПриИзменении(Элемент) + + Если Не ЕстьИндивидуальныеНастройкиПолитикиУчетаСерий Тогда + УстановитьПолитикуУчетаСерийПоУмолчанию(); + КонецЕсли; + + ДействиеПриИзмененииПолитикУчетаСерий(); + +КонецПроцедуры + +&НаКлиенте +Процедура ЕстьИндивидуальныеНастройкиПолитикиУчетаСерийПриИзменении(Элемент) + + Если ЕстьИндивидуальныеНастройкиПолитикиУчетаСерий + И Не ЗначениеЗаполнено(Объект.ПолитикаУчетаСерий) Тогда + Объект.ПолитикаУчетаСерий = ПредопределенноеЗначение("Справочник.ПолитикиУчетаСерий.СерииНеИспользуются"); + КонецЕсли; + + Если Объект.ПолитикиУчетаСерий.Количество() > 0 + И Не ЕстьИндивидуальныеНастройкиПолитикиУчетаСерий Тогда + + ВТЧУказываютсяСкладыИПодразделения = ИспользоватьНесколькоСкладов И ИспользоватьПроизводство; + + Если ВТЧУказываютсяСкладыИПодразделения Тогда + ТекстВопроса = Нстр("ru = 'Для всех складов и производственных подразделений будет установлена общая политика учета серий.'"); + ИначеЕсли ИспользоватьНесколькоСкладов Тогда + ТекстВопроса = Нстр("ru = 'Для всех складов будет установлена общая политика учета серий.'"); + Иначе + ТекстВопроса = Нстр("ru = 'Для всех производственных подразделений будет установлена общая политика учета серий.'"); + КонецЕсли; + + ПоказатьВопрос( + Новый ОписаниеОповещения("ЕстьИндивидуальныеНастройкиПолитикиУчетаСерийПриИзмененииЗавершение", ЭтотОбъект), + ТекстВопроса, + РежимДиалогаВопрос.ДаНет); + Возврат; + КонецЕсли; + + НастроитьФорму(); + ОбновитьПредупреждениеПоСкладуКлиент(); + +КонецПроцедуры + +&НаКлиенте +Процедура НастройкаИспользованияСерийПриИзменении(Элемент) + + Если Объект.ПолитикиУчетаСерий.Количество() > 0 Тогда + + ПараметрыВлияющиеНаОтборПолитикУказанияСерийСтали = НоменклатураКлиентСервер.ПараметрыОтбораПолитикУчетаСерий(); + ЗаполнитьЗначенияСвойств(ПараметрыВлияющиеНаОтборПолитикУказанияСерийСтали, Объект); + + Если Не ОбщегоНазначенияУТКлиентСервер.СтруктурыРавны(ПараметрыВлияющиеНаОтборПолитикУказанияСерийДоИзменения, + ПараметрыВлияющиеНаОтборПолитикУказанияСерийСтали) Тогда + ТекстВопроса = НСтр("ru = 'Изменились параметры, влияющие на возможность выбора политик указания серий. + |Политики, которые не удовлетворяют новым параметрам будут удалены. Продолжить?'"); + ПоказатьВопрос(Новый ОписаниеОповещения("НастройкаИспользованияСерийПриИзмененииЗавершение", ЭтотОбъект), + ТекстВопроса, + РежимДиалогаВопрос.ДаНет, + , + КодВозвратаДиалога.Да); + Возврат; + КонецЕсли; + + КонецЕсли; + + НастройкаИспользованияСерийПриИзмененииФрагмент(Истина); +КонецПроцедуры + +&НаКлиенте +Процедура НастройкаИспользованияСерийПриИзмененииЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт + + Ответ = РезультатВопроса; + + НастройкаИспользованияСерийПриИзмененииФрагмент(Ответ = КодВозвратаДиалога.Да); + +КонецПроцедуры + +&НаСервере +Процедура НастройкаИспользованияСерийПриИзмененииФрагмент(ПрименитьИзменения) + + Если Не ПрименитьИзменения Тогда + ЗаполнитьЗначенияСвойств(Объект, ПараметрыВлияющиеНаОтборПолитикУказанияСерийДоИзменения); + КонецЕсли; + + ЗаполняемыйОбъект = Объект; + НоменклатураЛокализация.ДополнитьОбъектФормы(ЭтотОбъект, ЗаполняемыйОбъект); + Справочники.ВидыНоменклатуры.ОтработатьЛогикуСвязиРеквизитов(ЗаполняемыйОбъект); + НоменклатураЛокализация.ВосстановитьОбъектФормы(ЭтотОбъект, ЗаполняемыйОбъект); + + ЗаполнитьРеквизитыФормыПоРеквизитамОбъекта(); + НастроитьФорму(); + +КонецПроцедуры + +&НаКлиенте +Процедура КодТНВЭДПриИзменении(Элемент) + + Если ЗначениеЗаполнено(Объект.КодТНВЭД) Тогда + КодТНВЭДПриИзмененииСервер(); + Иначе + НастроитьПодсказкуПоляКлассификатора(Элементы.КодТНВЭД.Имя, Объект.КодТНВЭД); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура НастройкаВидимостиФормыПриИзменении(Элемент) + + СвернутьРазвернутьВсеГруппы(ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура КодОКВЭДПриИзменении(Элемент) + + //++ Локализация + НастроитьПодсказкуПоляКлассификатора(Элемент.Имя, Объект.КодОКВЭД); + //-- Локализация + Возврат; + +КонецПроцедуры + +&НаКлиенте +Процедура КодОКВЭД2ПриИзменении(Элемент) + + //++ Локализация + КодОКВЭД2ПриИзмененииСервер(); + //-- Локализация + Возврат; + +КонецПроцедуры + +&НаКлиенте +Процедура КодОКВЭД2НачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) + + //++ Локализация + СтандартнаяОбработка = Ложь; + + ОбработкаЗакрытия = Новый ОписаниеОповещения( + "ПодборИзОКВЭДЗавершение", + ЭтотОбъект); + + ПараметрыФормы = КлассификаторОКВЭДКлиент.НовыйПараметрыВыбора(); + ПараметрыФормы.ОписаниеОповещенияОЗакрытии = ОбработкаЗакрытия; + ПараметрыФормы.Разрешенные = Истина; + ПараметрыФормы.ТекущийКод = Объект.КодОКВЭД2; + + КлассификаторОКВЭДКлиент.Выбрать(ПараметрыФормы); + //-- Локализация + Возврат; + +КонецПроцедуры + +&НаКлиенте +Процедура КодОКВЭД2АвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка) + + //++ Локализация + Если ЗначениеЗаполнено(Текст) Тогда + СтандартнаяОбработка = Ложь; + + ДанныеПодбора = ПодборОКВЭДСервер(Текст); + ДанныеВыбора = Новый СписокЗначений; + + Для Каждого ОКВЭД Из ДанныеПодбора Цикл + ДанныеВыбора.Добавить(ОКВЭД.Код, ОКВЭД.Представление); + КонецЦикла; + КонецЕсли; + //-- Локализация + Возврат; + +КонецПроцедуры + +&НаКлиенте +Процедура КодОКППриИзменении(Элемент) + + //++ Локализация + НастроитьПодсказкуПоляКлассификатора(Элемент.Имя, Объект.КодОКП); + //-- Локализация + Возврат; + +КонецПроцедуры + +&НаКлиенте +Процедура КодОКПД2ПриИзменении(Элемент) + + //++ Локализация + НастроитьПодсказкуПоляКлассификатора(Элемент.Имя, Объект.КодОКПД2); + //-- Локализация + Возврат; + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка) + + МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура КонтролироватьКачествоПоступившегоТовараПриИзменении(Элемент) + + НастроитьФорму(); + Если Не Объект.КонтролироватьКачествоПоступившегоТовара Тогда + Объект.СрокКонтроляКачества = 0; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыПолитикиУчетаСерий + +&НаКлиенте +Процедура ПолитикиУчетаСерийВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + ТекущиеДанные = Элементы.ПолитикиУчетаСерий.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Если Поле.Имя = "ПолитикиУчетаСерийСклад" + И (Элементы.ПолитикиУчетаСерий.ТолькоПросмотр + Или ТолькоПросмотр) Тогда + + СтандартнаяОбработка = Ложь; + ПоказатьЗначение(, ТекущиеДанные.Склад); + + ИначеЕсли Поле.Имя = "ПолитикиУчетаСерийПолитикаУчетаСерий" + И (Элементы.ПолитикиУчетаСерий.ТолькоПросмотр + Или ТолькоПросмотр) Тогда + + СтандартнаяОбработка = Ложь; + ПоказатьЗначение(, ТекущиеДанные.ПолитикаУчетаСерий); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПолитикиУчетаСерийПриАктивизацииСтроки(Элемент) + Если Элементы.ПолитикиУчетаСерий.ТекущиеДанные <> Неопределено + И ЗначениеЗаполнено(Элементы.ПолитикиУчетаСерий.ТекущиеДанные.Склад) Тогда + ПодключитьОбработчикОжидания("ОбновитьПредупреждениеПоСкладуКлиент", 0.1, Истина); + КонецЕсли; +КонецПроцедуры + +&НаКлиенте +Процедура ПолитикиУчетаСерийПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр) + + Если Копирование Тогда + Отказ = Истина; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПолитикиУчетаСерийСкладПриИзменении(Элемент) + + ТекущиеДанные = Элементы.ПолитикиУчетаСерий.ТекущиеДанные; + + Если ЗначениеЗаполнено(ТекущиеДанные.Склад) Тогда + ТекущиеДанные.ЭтоПолитикаДляСклада = Не ЗначениеЗаполнено(ТекущиеДанные.Склад) + Или ТипЗнч(ТекущиеДанные.Склад) = Тип("СправочникСсылка.Склады"); + + ПослеДобавленияНовогоСкладаПодразделенияВПолитикиУчетаСерий(ТекущиеДанные.Склад, ТекущиеДанные.ПолитикаУчетаСерий); + КонецЕсли; + ОбновитьПредупреждениеПоСкладуКлиент(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПолитикиУчетаСерийПередУдалением(Элемент, Отказ) + + Отказ = Истина; + + ПолитикиУчетаСерийПередУдалениемНаСервере(); + +КонецПроцедуры + +&НаСервере +Процедура ПолитикиУчетаСерийПередУдалениемНаСервере() + + ИдентификаторыВыделенныхСтрок = Элементы.ПолитикиУчетаСерий.ВыделенныеСтроки; + + Если ИдентификаторыВыделенныхСтрок.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + Для Каждого ИдСтроки Из ИдентификаторыВыделенныхСтрок Цикл + Строка = Объект.ПолитикиУчетаСерий.НайтиПоИдентификатору(ИдСтроки); + Если ЗначениеЗаполнено(Строка.Склад) Тогда + СтруктураОтбора = Новый Структура(); + СтруктураОтбора.Вставить("Склад", Строка.Склад); + + НайденныеСтроки = Объект.ПолитикиУчетаСерий.НайтиСтроки(СтруктураОтбора); + + Если НайденныеСтроки.Количество() > 1 Тогда + // Удалить строку если есть несколько строк по текущему складу + Объект.ПолитикиУчетаСерий.Удалить(Строка); + Иначе + // Скрыть строку если это единственная строка по складу + Строка.ПолитикаУчетаСерий = Объект.ПолитикаУчетаСерий; + КонецЕсли; + Иначе + Объект.ПолитикиУчетаСерий.Удалить(Строка); + КонецЕсли; + КонецЦикла; + + ДействиеПриИзмененииПолитикУчетаСерий(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПолитикиУчетаСерийПолитикаУчетаСерийПриИзменении(Элемент) + + ТекущиеДанные = Элементы.ПолитикиУчетаСерий.ТекущиеДанные; + + Если ЗначениеЗаполнено(ТекущиеДанные.Склад) Тогда + ПослеДобавленияНовогоСкладаПодразделенияВПолитикиУчетаСерий(ТекущиеДанные.Склад, ТекущиеДанные.ПолитикаУчетаСерий) + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПолитикиУчетаСерийПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования) + УдалитьПустыеСтрокиПолитикУчетаСерий(); +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыТаблицаДопРеквизитовНоменклатуры + +&НаКлиенте +Процедура ТаблицаДопРеквизитовНоменклатурыПриИзменении(Элемент) + + УстановитьДоступностьКомандРедактированияДопРеквизитовСведений("ДопРеквизит", "Номенклатура"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопРеквизитовНоменклатурыПриАктивизацииСтроки(Элемент) + + УстановитьДоступностьКомандРедактированияДопРеквизитовСведений("ДопРеквизит", "Номенклатура"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопРеквизитовНоменклатурыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) + + Отказ = Истина; + + ДобавитьДопРеквизитСведение("ДопРеквизит", "Номенклатура"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопРеквизитовНоменклатурыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + ПриВыбореСтрокиТаблицыДопРеквизитовСведений("ДопРеквизит", "Номенклатура", Элемент.ТекущиеДанные); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопРеквизитовНоменклатурыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ОбработкаВыбораДопРеквизитСведение(ВыбранноеЗначение, "ДопРеквизит", "Номенклатура"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопРеквизитовНоменклатурыНачалоПеретаскивания(Элемент, ПараметрыПеретаскивания, Выполнение) + + УстановитьЗапретПеретаскиванияЭлементовДопРеквизитовСведений(Выполнение, "ДопРеквизит", "Номенклатура"); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыТаблицаДопРеквизитовХарактеристик + +&НаКлиенте +Процедура ТаблицаДопРеквизитовХарактеристикПриИзменении(Элемент) + + УстановитьДоступностьКомандРедактированияДопРеквизитовСведений("ДопРеквизит", "ХарактеристикиНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопРеквизитовХарактеристикПриАктивизацииСтроки(Элемент) + + УстановитьДоступностьКомандРедактированияДопРеквизитовСведений("ДопРеквизит", "ХарактеристикиНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопРеквизитовХарактеристикПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) + + Отказ = Истина; + + ДобавитьДопРеквизитСведение("ДопРеквизит", "ХарактеристикиНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопРеквизитовХарактеристикВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + ПриВыбореСтрокиТаблицыДопРеквизитовСведений("ДопРеквизит", "ХарактеристикиНоменклатуры", Элемент.ТекущиеДанные); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопРеквизитовХарактеристикОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ОбработкаВыбораДопРеквизитСведение(ВыбранноеЗначение, "ДопРеквизит", "ХарактеристикиНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопРеквизитовХарактеристикНачалоПеретаскивания(Элемент, ПараметрыПеретаскивания, Выполнение) + + УстановитьЗапретПеретаскиванияЭлементовДопРеквизитовСведений(Выполнение, "ДопРеквизит", "ХарактеристикиНоменклатуры"); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыТаблицаДопРеквизитовСерий + +&НаКлиенте +Процедура ТаблицаДопРеквизитовСерийПриИзменении(Элемент) + + УстановитьДоступностьКомандРедактированияДопРеквизитовСведений("ДопРеквизит", "СерииНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопРеквизитовСерийПриАктивизацииСтроки(Элемент) + + УстановитьДоступностьКомандРедактированияДопРеквизитовСведений("ДопРеквизит", "СерииНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопРеквизитовСерийПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) + + Отказ = Истина; + + ДобавитьДопРеквизитСведение("ДопРеквизит", "СерииНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопРеквизитовСерийВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + ПриВыбореСтрокиТаблицыДопРеквизитовСведений("ДопРеквизит", "СерииНоменклатуры", Элемент.ТекущиеДанные); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопРеквизитовСерийОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ОбработкаВыбораДопРеквизитСведение(ВыбранноеЗначение, "ДопРеквизит", "СерииНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопРеквизитовСерийНачалоПеретаскивания(Элемент, ПараметрыПеретаскивания, Выполнение) + + УстановитьЗапретПеретаскиванияЭлементовДопРеквизитовСведений(Выполнение, "ДопРеквизит", "СерииНоменклатуры"); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыТаблицаДопСведенийНоменклатуры + +&НаКлиенте +Процедура ТаблицаДопСведенийНоменклатурыПриИзменении(Элемент) + + УстановитьДоступностьКомандРедактированияДопРеквизитовСведений("ДопСведение", "Номенклатура"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопСведенийНоменклатурыПриАктивизацииСтроки(Элемент) + + УстановитьДоступностьКомандРедактированияДопРеквизитовСведений("ДопСведение", "Номенклатура"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопСведенийНоменклатурыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) + + Отказ = Истина; + + ДобавитьДопРеквизитСведение("ДопСведение", "Номенклатура"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопСведенийНоменклатурыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + ПриВыбореСтрокиТаблицыДопРеквизитовСведений("ДопСведение", "Номенклатура", Элемент.ТекущиеДанные); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопСведенийНоменклатурыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ОбработкаВыбораДопРеквизитСведение(ВыбранноеЗначение, "ДопСведение", "Номенклатура"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопСведенийНоменклатурыНачалоПеретаскивания(Элемент, ПараметрыПеретаскивания, Выполнение) + + УстановитьЗапретПеретаскиванияЭлементовДопРеквизитовСведений(Выполнение, "ДопСведение", "Номенклатура"); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыТаблицаДопСведенийХарактеристик + +&НаКлиенте +Процедура ТаблицаДопСведенийХарактеристикПриИзменении(Элемент) + + УстановитьДоступностьКомандРедактированияДопРеквизитовСведений("ДопСведение", "ХарактеристикиНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопСведенийХарактеристикПриАктивизацииСтроки(Элемент) + + УстановитьДоступностьКомандРедактированияДопРеквизитовСведений("ДопСведение", "ХарактеристикиНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопСведенийХарактеристикПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) + + Отказ = Истина; + + ДобавитьДопРеквизитСведение("ДопСведение", "ХарактеристикиНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопСведенийХарактеристикВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + ПриВыбореСтрокиТаблицыДопРеквизитовСведений("ДопСведение", "ХарактеристикиНоменклатуры", Элемент.ТекущиеДанные); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопСведенийХарактеристикОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ОбработкаВыбораДопРеквизитСведение(ВыбранноеЗначение, "ДопСведение", "ХарактеристикиНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопСведенийХарактеристикНачалоПеретаскивания(Элемент, ПараметрыПеретаскивания, Выполнение) + + УстановитьЗапретПеретаскиванияЭлементовДопРеквизитовСведений(Выполнение, "ДопСведение", "ХарактеристикиНоменклатуры"); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыТаблицаДопСведенийСерий + +&НаКлиенте +Процедура ТаблицаДопСведенийСерийПриИзменении(Элемент) + + УстановитьДоступностьКомандРедактированияДопРеквизитовСведений("ДопСведение", "СерииНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопСведенийСерийПриАктивизацииСтроки(Элемент) + + УстановитьДоступностьКомандРедактированияДопРеквизитовСведений("ДопСведение", "СерииНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопСведенийСерийПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) + + Отказ = Истина; + + ДобавитьДопРеквизитСведение("ДопСведение", "СерииНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопСведенийСерийВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + ПриВыбореСтрокиТаблицыДопРеквизитовСведений("ДопСведение", "СерииНоменклатуры", Элемент.ТекущиеДанные); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопСведенийСерийОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ОбработкаВыбораДопРеквизитСведение(ВыбранноеЗначение, "ДопСведение", "СерииНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура ТаблицаДопСведенийСерийНачалоПеретаскивания(Элемент, ПараметрыПеретаскивания, Выполнение) + + УстановитьЗапретПеретаскиванияЭлементовДопРеквизитовСведений(Выполнение, "ДопСведение", "СерииНоменклатуры"); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыРеквизитыДляКонтроляНоменклатуры + +&НаКлиенте +Процедура РеквизитыДляКонтроляНоменклатурыУникаленПриИзменении(Элемент) + + ТекущиеДанные = Элементы.РеквизитыДляКонтроляНоменклатуры.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Если ТекущиеДанные.ЭтоДопРеквизит И Модифицированность Тогда + Записать(); + КонецЕсли; + + ИдентификаторСтрокиТаблицы = ТекущиеДанные.ПолучитьИдентификатор(); + + ПриИзмененииФлагаУникален("Номенклатура", ИдентификаторСтрокиТаблицы); + +КонецПроцедуры + +&НаСервере +Процедура ПриИзмененииФлагаУникален(ВладелецРеквизитов, ИдентификаторСтрокиТаблицы) + + КоллекцияРеквизитовДляКонтроля = Справочники.ВидыНоменклатуры.КоллекцияРеквизитовДляКонтроля(Объект, ВладелецРеквизитов); + ТекущиеДанные = КоллекцияРеквизитовДляКонтроля.НайтиПоИдентификатору(ИдентификаторСтрокиТаблицы); + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ЗаполняемыйОбъект = Объект; + НоменклатураЛокализация.ДополнитьОбъектФормы(ЭтотОбъект, ЗаполняемыйОбъект); + Справочники.ВидыНоменклатуры.ПриИзмененииФлагаУникален(ЗаполняемыйОбъект, ВладелецРеквизитов, ТекущиеДанные); + +КонецПроцедуры + +&НаКлиенте +Процедура РеквизитыДляКонтроляНоменклатурыЗаполнятьОбязательноПриИзменении(Элемент) + + ТекущиеДанные = Элементы.РеквизитыДляКонтроляНоменклатуры.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ТекущиеДанные.ДоступностьОтображатьПриСоздании = Не ТекущиеДанные.ЗаполнятьОбязательно; + + Если ТекущиеДанные.ЗаполнятьОбязательно Тогда + ТекущиеДанные.ОтображатьПриСоздании = Истина; + КонецЕсли; + + ИдентификаторСтрокиТаблицы = ТекущиеДанные.ПолучитьИдентификатор(); + + ПриИзмененииФлагаЗаполнятьОбязательно("Номенклатура", ИдентификаторСтрокиТаблицы); + +КонецПроцедуры + +&НаКлиенте +Процедура РеквизитыДляКонтроляНоменклатурыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + РеквизитыДляКонтроляВыбор("Номенклатуры", Поле, СтандартнаяОбработка); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыРеквизитыДляКонтроляХарактеристик + +&НаКлиенте +Процедура РеквизитыДляКонтроляХарактеристикУникаленПриИзменении(Элемент) + + ТекущиеДанные = Элементы.РеквизитыДляКонтроляХарактеристик.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ИдентификаторСтрокиТаблицы = ТекущиеДанные.ПолучитьИдентификатор(); + + ПриИзмененииФлагаУникален("ХарактеристикиНоменклатуры", ИдентификаторСтрокиТаблицы); + +КонецПроцедуры + +&НаКлиенте +Процедура РеквизитыДляКонтроляХарактеристикЗаполнятьОбязательноПриИзменении(Элемент) + + ТекущиеДанные = Элементы.РеквизитыДляКонтроляХарактеристик.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ТекущиеДанные.ДоступностьОтображатьПриСоздании = Не ТекущиеДанные.ЗаполнятьОбязательно; + + Если ТекущиеДанные.ЗаполнятьОбязательно Тогда + ТекущиеДанные.ОтображатьПриСоздании = Истина; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура РеквизитыДляКонтроляХарактеристикВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + РеквизитыДляКонтроляВыбор("Характеристик", Поле, СтандартнаяОбработка); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыРеквизитыДляКонтроляСерий + +&НаКлиенте +Процедура РеквизитыДляКонтроляСерийВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + РеквизитыДляКонтроляВыбор("Серий", Поле, СтандартнаяОбработка); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыРеквизитыБыстрогоОтбораНоменклатуры + +&НаКлиенте +Процедура РеквизитыБыстрогоОтбораНоменклатурыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) + + Отказ = Истина; + + Если Модифицированность Тогда + ЗаписатьПередИзменениемПанелиБыстрогоОтбораНоменклатуры() + Иначе + ИзменитьПанельБыстрогоОтбораНоменклатуры(); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыРеквизитыБыстрогоОтбораХарактеристик + +&НаКлиенте +Процедура РеквизитыБыстрогоОтбораХарактеристикПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) + + Отказ = Истина; + + Если Модифицированность + Или Не ЗначениеЗаполнено(Объект.НаборСвойствХарактеристик) Тогда + ЗаписатьПередИзменениемПанелиБыстрогоОтбораХарактеристики() + Иначе + ИзменитьПанельБыстрогоОтбораХарактеристики(); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +// СтандартныеПодсистемы.РаботаСФайлами +&НаКлиенте +Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда) + РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда); +КонецПроцедуры +// Конец СтандартныеПодсистемы.РаботаСФайлами + +// СтандартныеПодсистемы.РаботаСФайлами +&НаКлиенте +Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка) + РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка); +КонецПроцедуры +// Конец СтандартныеПодсистемы.РаботаСФайлами + +// СтандартныеПодсистемы.РаботаСФайлами +&НаКлиенте +Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка) + РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка); +КонецПроцедуры +// Конец СтандартныеПодсистемы.РаботаСФайлами + +// СтандартныеПодсистемы.РаботаСФайлами +&НаКлиенте +Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка) + РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка); +КонецПроцедуры +// Конец СтандартныеПодсистемы.РаботаСФайлами + +// СтандартныеПодсистемы.ПодключаемыеКоманды +&НаКлиенте +Процедура Подключаемый_ВыполнитьКоманду(Команда) + ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт + ВыполнитьКомандуНаСервере(ПараметрыВыполнения); +КонецПроцедуры + +&НаСервере +Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения) + ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ОбновитьКоманды() + ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект); +КонецПроцедуры +// Конец СтандартныеПодсистемы.ПодключаемыеКоманды + +&НаКлиенте +Процедура ВключитьПроверкуЗаполненияДляРеквизитов(Команда) + + ОчиститьСообщения(); + ВключитьПроверкуЗаполненияДляРеквизитовНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура РедактироватьШаблонРабочегоНаименованияНоменклатуры(Команда) + ИзменениеВРедактореШаблона("ШаблонРабочегоНаименованияНоменклатуры"); +КонецПроцедуры + +&НаКлиенте +Процедура РедактироватьШаблонРабочегоНаименованияСерии(Команда) + + ИзменениеВРедактореШаблона("ШаблонРабочегоНаименованияСерии"); + +КонецПроцедуры + +&НаКлиенте +Процедура РедактироватьШаблонНаименованияДляПечатиНоменклатуры(Команда) + + ИзменениеВРедактореШаблона("ШаблонНаименованияДляПечатиНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура РедактироватьШаблонРабочегоНаименованияХарактеристики(Команда) + + ИзменениеВРедактореШаблона("ШаблонРабочегоНаименованияХарактеристики"); + +КонецПроцедуры + +&НаКлиенте +Процедура РедактироватьШаблонНаименованияДляПечатиХарактеристики(Команда) + + ИзменениеВРедактореШаблона("ШаблонНаименованияДляПечатиХарактеристики"); + +КонецПроцедуры + +&НаКлиенте +Процедура ДобавитьСкладВПолитикиУчетаСерий(Команда) + + ОписаниеОповещения = Новый ОписаниеОповещения("ДобавитьСкладВПолитикиУчетаСерийЗавершение", ЭтотОбъект); + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("РежимВыбора", Истина); + ПараметрыФормы.Вставить("ВыборГруппИЭлементов", ИспользованиеГруппИЭлементов.Элементы); + ОткрытьФорму("Справочник.Склады.ФормаВыбора", ПараметрыФормы, Элементы.ПолитикиУчетаСерийСклад,,,,ОписаниеОповещения); + +КонецПроцедуры + +&НаКлиенте +Процедура ДобавитьПодразделениеВПолитикиУчетаСерий(Команда) + + ОписаниеОповещения = Новый ОписаниеОповещения("ДобавитьПодразделениеВПолитикиУчетаСерийЗавершение", ЭтотОбъект); + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("РежимВыбора", Истина); + + ПараметрыОтбора = Новый Структура("ПроизводственноеПодразделение", Истина); + ПараметрыФормы.Вставить("Отбор", ПараметрыОтбора); + + ОткрытьФорму("Справочник.СтруктураПредприятия.ФормаВыбора", ПараметрыФормы, Элементы.ПолитикиУчетаСерийСклад,,,,ОписаниеОповещения); + +КонецПроцедуры + +#Область КомандыДопРеквизитовИСведений + +&НаКлиенте +Процедура СоздатьНовыйРеквизитНоменклатуры(Команда) + + ДобавитьДопРеквизитСведение("ДопРеквизит", "Номенклатура"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьОбщийРеквизитНоменклатуры(Команда) + + ДобавитьДопРеквизитСведение("ДопРеквизит", "Номенклатура", "Общее"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьПоОбразцуРеквизитНоменклатуры(Команда) + + ДобавитьДопРеквизитСведение("ДопРеквизит", "Номенклатура", "ПоОбразцу"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьНовыйРеквизитХарактеристики(Команда) + + ДобавитьДопРеквизитСведение("ДопРеквизит", "ХарактеристикиНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьОбщийРеквизитХарактеристики(Команда) + + ДобавитьДопРеквизитСведение("ДопРеквизит", "ХарактеристикиНоменклатуры", "Общее"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьПоОбразцуРеквизитХарактеристики(Команда) + + ДобавитьДопРеквизитСведение("ДопРеквизит", "ХарактеристикиНоменклатуры", "ПоОбразцу"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьНовыйРеквизитСерии(Команда) + + ДобавитьДопРеквизитСведение("ДопРеквизит", "СерииНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьОбщийРеквизитСерии(Команда) + + ДобавитьДопРеквизитСведение("ДопРеквизит", "СерииНоменклатуры", "Общее"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьПоОбразцуРеквизитСерии(Команда) + + ДобавитьДопРеквизитСведение("ДопРеквизит", "СерииНоменклатуры", "ПоОбразцу"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьНовоеСведениеНоменклатуры(Команда) + + ДобавитьДопРеквизитСведение("ДопСведение", "Номенклатура"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьОбщееСведениеНоменклатуры(Команда) + + ДобавитьДопРеквизитСведение("ДопСведение", "Номенклатура", "Общее"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьПоОбразцуСведениеНоменклатуры(Команда) + + ДобавитьДопРеквизитСведение("ДопСведение", "Номенклатура", "ПоОбразцу"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьНовоеСведениеХарактеристики(Команда) + + ДобавитьДопРеквизитСведение("ДопСведение", "ХарактеристикиНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьОбщееСведениеХарактеристики(Команда) + + ДобавитьДопРеквизитСведение("ДопСведение", "ХарактеристикиНоменклатуры", "Общее"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьПоОбразцуСведениеХарактеристики(Команда) + + ДобавитьДопРеквизитСведение("ДопСведение", "ХарактеристикиНоменклатуры", "ПоОбразцу"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьНовоеСведениеСерии(Команда) + + ДобавитьДопРеквизитСведение("ДопСведение", "СерииНоменклатуры"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьОбщееСведениеСерии(Команда) + + ДобавитьДопРеквизитСведение("ДопСведение", "СерииНоменклатуры", "Общее"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьПоОбразцуСведениеСерии(Команда) + + ДобавитьДопРеквизитСведение("ДопСведение", "СерииНоменклатуры", "ПоОбразцу"); + +КонецПроцедуры + +#КонецОбласти + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтотОбъект, Команда); + +КонецПроцедуры + +#Область ПроцедурыИФункцииДляРедактированияТаблицДопРеквизитовСведений + +&НаКлиенте +Функция КомандыРедактированияДопРеквизитовСведений(ТипЭлемента, ТипВладельцаНабораЭлементов) + + СтруктураКоманд = Новый Структура; + СтруктураКоманд.Вставить("Удалить"); + СтруктураКоманд.Вставить("ПереместитьВверх"); + СтруктураКоманд.Вставить("ПереместитьВниз"); + + СтруктураКоманд.Вставить("КонтекстноеМенюУдалить"); + СтруктураКоманд.Вставить("КонтекстноеМенюПереместитьВверх"); + СтруктураКоманд.Вставить("КонтекстноеМенюПереместитьВниз"); + + ИмяТаблицыДопРеквизитовСведений = ИмяТаблицыДопРеквизитовСведений(ТипЭлемента, ТипВладельцаНабораЭлементов); + + СтруктураКоманд.Удалить = ИмяТаблицыДопРеквизитовСведений + "Удалить"; + СтруктураКоманд.ПереместитьВверх = ИмяТаблицыДопРеквизитовСведений + "ПереместитьВверх"; + СтруктураКоманд.ПереместитьВниз = ИмяТаблицыДопРеквизитовСведений + "ПереместитьВниз"; + + СтруктураКоманд.КонтекстноеМенюУдалить = ИмяТаблицыДопРеквизитовСведений + "КонтекстноеМенюУдалить"; + СтруктураКоманд.КонтекстноеМенюПереместитьВверх = ИмяТаблицыДопРеквизитовСведений + "КонтекстноеМенюПереместитьВверх"; + СтруктураКоманд.КонтекстноеМенюПереместитьВниз = ИмяТаблицыДопРеквизитовСведений + "КонтекстноеМенюПереместитьВниз"; + + Возврат СтруктураКоманд; + +КонецФункции + +&НаКлиенте +Функция ТаблицаФормыДопРеквизитовСведений(ТипЭлемента, ТипВладельцаНабораЭлементов) + + Если ТипЭлемента = "ДопРеквизит" Тогда + Если ТипВладельцаНабораЭлементов = "Номенклатура" Тогда + Возврат Элементы.ТаблицаДопРеквизитовНоменклатуры; + ИначеЕсли ТипВладельцаНабораЭлементов = "ХарактеристикиНоменклатуры" Тогда + Возврат Элементы.ТаблицаДопРеквизитовХарактеристик; + ИначеЕсли ТипВладельцаНабораЭлементов = "СерииНоменклатуры" Тогда + Возврат Элементы.ТаблицаДопРеквизитовСерий; + КонецЕсли; + ИначеЕсли ТипЭлемента = "ДопСведение" Тогда + Если ТипВладельцаНабораЭлементов = "Номенклатура" Тогда + Возврат Элементы.ТаблицаДопСведенийНоменклатуры; + ИначеЕсли ТипВладельцаНабораЭлементов = "ХарактеристикиНоменклатуры" Тогда + Возврат Элементы.ТаблицаДопСведенийХарактеристик; + ИначеЕсли ТипВладельцаНабораЭлементов = "СерииНоменклатуры" Тогда + Возврат Элементы.ТаблицаДопСведенийСерий; + КонецЕсли; + Иначе + Возврат Неопределено; + КонецЕсли; + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Функция ТаблицаДопРеквизитов(Форма, ТипЭлемента, ТипВладельцаНабораЭлементов) + + Если ТипЭлемента = "ДопРеквизит" Тогда + + Если ТипВладельцаНабораЭлементов = "Номенклатура" Тогда + Возврат Форма.ТаблицаДопРеквизитовНоменклатуры; + ИначеЕсли ТипВладельцаНабораЭлементов = "ХарактеристикиНоменклатуры" Тогда + Возврат Форма.ТаблицаДопРеквизитовХарактеристик; + ИначеЕсли ТипВладельцаНабораЭлементов = "СерииНоменклатуры" Тогда + Возврат Форма.ТаблицаДопРеквизитовСерий; + КонецЕсли; + + ИначеЕсли ТипЭлемента = "ДопСведение" Тогда + + Если ТипВладельцаНабораЭлементов = "Номенклатура" Тогда + Возврат Форма.ТаблицаДопСведенийНоменклатуры; + ИначеЕсли ТипВладельцаНабораЭлементов = "ХарактеристикиНоменклатуры" Тогда + Возврат Форма.ТаблицаДопСведенийХарактеристик; + ИначеЕсли ТипВладельцаНабораЭлементов = "СерииНоменклатуры" Тогда + Возврат Форма.ТаблицаДопСведенийСерий; + КонецЕсли; + + Иначе + Возврат Неопределено; + КонецЕсли; + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Функция ИмяТаблицыДопРеквизитовСведений(ТипЭлемента, ТипВладельцаНабораЭлементов) + + Если ТипЭлемента = "ДопРеквизит" Тогда + + Если ТипВладельцаНабораЭлементов = "Номенклатура" Тогда + Возврат "ТаблицаДопРеквизитовНоменклатуры"; + ИначеЕсли ТипВладельцаНабораЭлементов = "ХарактеристикиНоменклатуры" Тогда + Возврат "ТаблицаДопРеквизитовХарактеристик"; + ИначеЕсли ТипВладельцаНабораЭлементов = "СерииНоменклатуры" Тогда + Возврат "ТаблицаДопРеквизитовСерий"; + КонецЕсли; + + ИначеЕсли ТипЭлемента = "ДопСведение" Тогда + + Если ТипВладельцаНабораЭлементов = "Номенклатура" Тогда + Возврат "ТаблицаДопСведенийНоменклатуры"; + ИначеЕсли ТипВладельцаНабораЭлементов = "ХарактеристикиНоменклатуры" Тогда + Возврат "ТаблицаДопСведенийХарактеристик"; + ИначеЕсли ТипВладельцаНабораЭлементов = "СерииНоменклатуры" Тогда + Возврат "ТаблицаДопСведенийСерий"; + КонецЕсли; + + Иначе + Возврат Неопределено; + КонецЕсли; + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Функция НаборДопРеквизитовСведенийОбъекта(Объект, ТипВладельцаНабораЭлементов) + + Если ТипВладельцаНабораЭлементов = "Номенклатура" Тогда + Возврат Объект.НаборСвойств; + ИначеЕсли ТипВладельцаНабораЭлементов = "ХарактеристикиНоменклатуры" Тогда + Возврат Объект.НаборСвойствХарактеристик; + ИначеЕсли ТипВладельцаНабораЭлементов = "СерииНоменклатуры" Тогда + Возврат Объект.НаборСвойствСерий; + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +&НаСервереБезКонтекста +Функция НаборДопРеквизитовСведенийОбщий(ТипВладельцаНабораЭлементов) + + Если ТипВладельцаНабораЭлементов = "Номенклатура" Тогда + НаборДопРеквизитовСведений = УправлениеСвойствами.НаборСвойствПоИмени("Справочник_Номенклатура_Общие"); + ИначеЕсли ТипВладельцаНабораЭлементов = "ХарактеристикиНоменклатуры" Тогда + НаборДопРеквизитовСведений = УправлениеСвойствами.НаборСвойствПоИмени("Справочник_ХарактеристикиНоменклатуры_Общие"); + ИначеЕсли ТипВладельцаНабораЭлементов = "СерииНоменклатуры" Тогда + НаборДопРеквизитовСведений = УправлениеСвойствами.НаборСвойствПоИмени("Справочник_СерииНоменклатуры_Общие"); + Иначе + НаборДопРеквизитовСведений = Неопределено; + КонецЕсли; + + Возврат НаборДопРеквизитовСведений; + +КонецФункции + +&НаКлиенте +Процедура ДобавитьДопРеквизитСведение(ТипЭлемента, ТипВладельцаНабораЭлементов, Вид = "") + + Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда + + ТекстВопроса = Нстр("ru = 'Данные еще не записаны. + |Добавление дополнительных свойств возможно только после записи элемента. + |Записать элемент?'"); + + ПоказатьВопрос(Новый ОписаниеОповещения("ДобавитьДопРеквизитСведениеЗавершение", ЭтотОбъект, Новый Структура("Вид, ТипВладельцаНабораЭлементов, ТипЭлемента", Вид, ТипВладельцаНабораЭлементов, ТипЭлемента)), ТекстВопроса, РежимДиалогаВопрос.ДаНет); + Возврат; + + КонецЕсли; + + ДобавитьДопРеквизитСведениеФрагмент(Вид, ТипВладельцаНабораЭлементов, ТипЭлемента); +КонецПроцедуры + +&НаКлиенте +Процедура ДобавитьДопРеквизитСведениеФрагмент(Знач Вид, Знач ТипВладельцаНабораЭлементов, Знач ТипЭлемента) + + Перем НаборДопРеквизитовСведений, ПараметрыФормы; + + ТекущийТипВладельцаНабораЭлементов = ТипВладельцаНабораЭлементов; + ТекущийТипЭлемента = ТипЭлемента; + + НаборДопРеквизитовСведений = НаборДопРеквизитовСведенийОбъекта(Объект, ТипВладельцаНабораЭлементов); + Если НЕ ЗначениеЗаполнено(НаборДопРеквизитовСведений) Тогда + Возврат; + КонецЕсли; + + ВерсияДанныхТекущегоНабора = ПолучитьВерсиюДанныхНабора(НаборДопРеквизитовСведений); + + ПараметрыФормы = Новый Структура; + + Если Вид = "Общее" Тогда + НаборДопРеквизитовСведений = НаборДопРеквизитовСведенийОбщий(ТипВладельцаНабораЭлементов); + ИначеЕсли Вид = "ПоОбразцу" Тогда + Если ТипЭлемента = "ДопРеквизит" Тогда + ПараметрыФормы.Вставить("ВыборВладельцаДополнительныхЗначений", Истина); + Иначе + ПараметрыФормы.Вставить("ВыборОбщегоСвойства", Истина); + КонецЕсли; + КонецЕсли; + + ПараметрыФормы.Вставить("НаборСвойств", НаборДопРеквизитовСведений); + ПараметрыФормы.Вставить("ТекущийНаборСвойств", НаборДопРеквизитовСведений); + ПараметрыФормы.Вставить("ЭтоДополнительноеСведение", ТипЭлемента <> "ДопРеквизит"); + ПараметрыФормы.Вставить("ВидСвойства", ?(ПараметрыФормы.ЭтоДополнительноеСведение, + ПредопределенноеЗначение("Перечисление.ВидыСвойств.ДополнительныеСведения"), + ПредопределенноеЗначение("Перечисление.ВидыСвойств.ДополнительныеРеквизиты"))); + + ОткрытьФорму("ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ФормаОбъекта", + ПараметрыФормы, + ТаблицаФормыДопРеквизитовСведений(ТипЭлемента, ТипВладельцаНабораЭлементов), + , + , + , + , + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры + +// Обработчик оповещения. +// Параметры: +// РезультатВопроса - КодВозвратаДиалога - выбранный вариант. +// ДополнительныеПараметры - Структура - дополнительные параметры: +// * Вид - Строка - вид. +// * ТипЭлемента - Строка - тип элемента. +// * ТипВладельцаНабораЭлементов - Строка - тип владельца набора элементов. +// +&НаКлиенте +Процедура ДобавитьДопРеквизитСведениеЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт + + Вид = ДополнительныеПараметры.Вид; + ТипВладельцаНабораЭлементов = ДополнительныеПараметры.ТипВладельцаНабораЭлементов; + ТипЭлемента = ДополнительныеПараметры.ТипЭлемента; + + Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + + Попытка + ЭлементЗаписан = Записать(); + Исключение + Возврат; + КонецПопытки; + + Если Не ЭлементЗаписан Тогда + Возврат; + КонецЕсли; + + ДобавитьДопРеквизитСведениеФрагмент(Вид, ТипВладельцаНабораЭлементов, ТипЭлемента); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаВыбораДопРеквизитСведение(ВыбранноеЗначение, ТипЭлемента, ТипВладельцаНабораЭлементов) + + НаборДопРеквизитовСведений = НаборДопРеквизитовСведенийОбъекта(Объект, ТипВладельцаНабораЭлементов); + Если НЕ ЗначениеЗаполнено(НаборДопРеквизитовСведений) Тогда + Возврат; + КонецЕсли; + + ЭтоНаборыДополнительныхСведений = (ТипЭлемента <> "ДопРеквизит"); + + Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") + И ВыбранноеЗначение.Свойство("ВладелецДополнительныхЗначений") Тогда + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ЭтоДополнительноеСведение", ЭтоНаборыДополнительныхСведений); + ПараметрыФормы.Вставить("ТекущийНаборСвойств", НаборДопРеквизитовСведений); + ПараметрыФормы.Вставить("ВладелецДополнительныхЗначений", ВыбранноеЗначение.ВладелецДополнительныхЗначений); + + ОткрытьФорму("ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ФормаОбъекта", + ПараметрыФормы, ТаблицаФормыДопРеквизитовСведений(ТипЭлемента, ТипВладельцаНабораЭлементов)); + + ИначеЕсли ВыбранноеЗначение.Свойство("ОбщееСвойство") Тогда + + ЗаписатьОбщееСвойствоНаСервере(ВыбранноеЗначение, НаборДопРеквизитовСведений, ЭтоНаборыДополнительныхСведений); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьДоступностьКомандРедактированияДопРеквизитовСведений(ТипЭлемента, ТипВладельцаНабораЭлементов) + + ТаблицаДопРеквизитовСведений = ТаблицаФормыДопРеквизитовСведений(ТипЭлемента, ТипВладельцаНабораЭлементов); + + ТекущиеДанные = ТаблицаДопРеквизитовСведений.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + ТаблицаДопРеквизитов = ТаблицаДопРеквизитов(ЭтотОбъект, ТипЭлемента, ТипВладельцаНабораЭлементов); + КомандыРедактирования = КомандыРедактированияДопРеквизитовСведений(ТипЭлемента, ТипВладельцаНабораЭлементов); + + // Если активная строка - строка общего доп. реквизита (сведения), то сделать недоступными кнопки добавления, удаления, перемещения. + ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы( + Элементы, + КомандыРедактирования.Удалить, + "Доступность", + Не ТекущиеДанные.ОбщееСвойство); + + ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы( + Элементы, + КомандыРедактирования.ПереместитьВверх, + "Доступность", + Не ТекущиеДанные.ОбщееСвойство); + + ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы( + Элементы, + КомандыРедактирования.ПереместитьВниз, + "Доступность", + Не ТекущиеДанные.ОбщееСвойство); + + ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы( + Элементы, + КомандыРедактирования.КонтекстноеМенюУдалить, + "Доступность", + Не ТекущиеДанные.ОбщееСвойство); + + ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы( + Элементы, + КомандыРедактирования.КонтекстноеМенюПереместитьВверх, + "Доступность", + Не ТекущиеДанные.ОбщееСвойство); + + ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы( + Элементы, + КомандыРедактирования.КонтекстноеМенюПереместитьВниз, + "Доступность", + Не ТекущиеДанные.ОбщееСвойство); + + // Если активная строка - первая или последняя в списке, то сделать недоступными кнопки сдвига вверх или вниз. + Если Не ТекущиеДанные.ОбщееСвойство Тогда + + ИндексСтроки = ТаблицаДопРеквизитов.Индекс(ТекущиеДанные); + + Если ИндексСтроки = 0 Тогда + + ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы( + Элементы, + КомандыРедактирования.ПереместитьВверх, + "Доступность", + Ложь); + + ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы( + Элементы, + КомандыРедактирования.КонтекстноеМенюПереместитьВверх, + "Доступность", + Ложь); + + КонецЕсли; + + Если ИндексСтроки = ТаблицаДопРеквизитов.Количество() - 1 Тогда + + ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы( + Элементы, + КомандыРедактирования.ПереместитьВниз, + "Доступность", + Ложь); + + ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы( + Элементы, + КомандыРедактирования.КонтекстноеМенюПереместитьВниз, + "Доступность", + Ложь); + + КонецЕсли; + + Если ИндексСтроки <> 0 Тогда + + ПредыдущаяСтрока = ТаблицаДопРеквизитов[ИндексСтроки - 1]; + + Если ПредыдущаяСтрока.ОбщееСвойство Тогда + + // Если предыдущая строка является строкой общего реквизита, то сделать недоступной кнопку сдвига вверх. + ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы( + Элементы, + КомандыРедактирования.ПереместитьВверх, + "Доступность", + Ложь); + + ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы( + Элементы, + КомандыРедактирования.КонтекстноеМенюПереместитьВверх, + "Доступность", + Ложь); + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ЗаписатьДопРеквизитыСведенияНабора(Отказ, ТекущийОбъект, ТипЭлемента, ТипВладельцаНабораЭлементов) + + НаборСвойствДопРеквизитовСведений = НаборДопРеквизитовСведенийОбъекта(ТекущийОбъект, ТипВладельцаНабораЭлементов); + Если НЕ ЗначениеЗаполнено(НаборСвойствДопРеквизитовСведений) Тогда + Возврат; + КонецЕсли; + + ОбъектНаборСвойств = НаборСвойствДопРеквизитовСведений.ПолучитьОбъект(); + + Если ТипЭлемента = "ДопРеквизит" Тогда + ТЧДополнительныеРеквизитыСведения = ОбъектНаборСвойств.ДополнительныеРеквизиты; + ИначеЕсли ТипЭлемента = "ДопСведение" Тогда + ТЧДополнительныеРеквизитыСведения = ОбъектНаборСвойств.ДополнительныеСведения; + КонецЕсли; + + ТаблицаДопРеквизитов = ТаблицаДопРеквизитов(ЭтотОбъект, ТипЭлемента, ТипВладельцаНабораЭлементов); + ТЧДополнительныеРеквизитыСведения.Очистить(); + + Для каждого ЭлементСтр Из ТаблицаДопРеквизитов Цикл + Если Не ЭлементСтр.ОбщееСвойство Тогда + НовСтр = ТЧДополнительныеРеквизитыСведения.Добавить(); + НовСтр.Свойство = ЭлементСтр.Свойство; + НовСтр.ПометкаУдаления = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЭлементСтр.Свойство, "ПометкаУдаления"); + КонецЕсли; + КонецЦикла; + + Попытка + + ОбъектНаборСвойств.Записать(); + + Исключение + + // Установить признак отказа записи. + Отказ = Истина; + + // Добавить запись в журнал регистрации. + ИмяСобытия = НСтр("ru = 'Дополнительные %1 %2. Не удалось обновить состав дополнительных %3 набора.'"); + + ТипСведений = ?(ТипЭлемента = "ДопРеквизит", "реквизиты", "сведения"); + ТипОбъекта = ?(ТипВладельцаНабораЭлементов = "Номенклатура", "номенклатуры", ?(ТипВладельцаНабораЭлементов = "ХарактеристикиНоменклатуры", "характеристик", "серий")); + ТипСостава = ?(ТипЭлемента = "ДопРеквизит", "реквизитов", "сведений"); + + ИмяСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + ИмяСобытия, + ТипСведений, + ТипОбъекта, + ТипСостава); + + КомментарийЖурнала = НСтр("ru = 'При обновлении табличной части дополнительных реквизитов набора свойств ""%1"" произошла ошибка: ""%2""'"); + ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + КомментарийЖурнала = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + КомментарийЖурнала, + НаборСвойствДопРеквизитовСведений, + ПредставлениеОшибки); + + ЗаписьЖурналаРегистрации( + ИмяСобытия, + УровеньЖурналаРегистрации.Ошибка, + , + НаборСвойствДопРеквизитовСведений, + КомментарийЖурнала, + РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная); + + // Вызвать исключение. + ВыражениеИсключения = НСтр("ru = 'При записи дополнительных %1 %2 произошла ошибка (см. журнал регистрации).'"); + + ТипСведений = ?(ТипЭлемента = "ДопРеквизит", "реквизитов", "сведений"); + ТипОбъекта = ?(ТипВладельцаНабораЭлементов = "Номенклатура", "номенклатуры", ?(ТипВладельцаНабораЭлементов = "ХарактеристикиНоменклатуры", "характеристик", "серий")); + + ВыражениеИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + ВыражениеИсключения, + ТипСведений, + ТипОбъекта, + ТипСостава); + + ВызватьИсключение(ВыражениеИсключения); + + КонецПопытки; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриВыбореСтрокиТаблицыДопРеквизитовСведений(ТипЭлемента, ТипВладельцаНабораЭлементов, ТекущаяСтрока) + + Если ТекущаяСтрока = Неопределено Тогда + Возврат; + КонецЕсли; + + ТекущийТипЭлемента = ТипЭлемента; + ТекущийТипВладельцаНабораЭлементов = ТипВладельцаНабораЭлементов; + + НаборСвойств = ?(ТекущаяСтрока.ОбщееСвойство, + НаборОбщихСвойств, + Объект.НаборСвойств); + + Если ТипВладельцаНабораЭлементов = "ХарактеристикиНоменклатуры" Тогда + НаборСвойств = ?(ТекущаяСтрока.ОбщееСвойство, + НаборОбщихСвойствХарактеристик, + Объект.НаборСвойствХарактеристик); + ИначеЕсли ТипВладельцаНабораЭлементов = "СерииНоменклатуры" Тогда + НаборСвойств = ?(ТекущаяСтрока.ОбщееСвойство, + НаборОбщихСвойствСерий, + Объект.НаборСвойствСерий); + КонецЕсли; + + ПараметрыФормы = Новый Структура("Ключ, ТекущийНаборСвойств", ТекущаяСтрока.Свойство, НаборСвойств); + + ОткрытьФорму("ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Форма.ФормаЭлемента", + ПараметрыФормы, + ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьЗапретПеретаскиванияЭлементовДопРеквизитовСведений(Выполнение, ТипЭлемента, ТипВладельцаНабораЭлементов) + + ТаблицаДопРеквизитовСведений = ТаблицаФормыДопРеквизитовСведений(ТипЭлемента, ТипВладельцаНабораЭлементов); + ТекущиеДанные = ТаблицаДопРеквизитовСведений.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + Иначе + Выполнение = Не ТекущиеДанные.ОбщееСвойство; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область Прочее + +// Процедура вызывается при начале выбора шаблона наименования номенклатуры или характеристик. +// Проверяет модифицированность элемента и открывается форму редактирования шаблона. +// +// Параметры: +// ШаблонНаименования (Строка) - шаблон наименования, +// ЭлементШаблонаНаименования (ПолеФормы) - элемент шаблона, +// ИмяШаблона (Строка) - имя шаблона наименования, +// ФлагЗапрета (Строка) - имя флага запрета. +// +&НаКлиенте +Процедура ИзменениеВРедактореШаблона(ИмяШаблонаНаименования) + + ОчиститьСообщения(); + + ПараметрыВопроса = Новый Структура; + ПараметрыВопроса.Вставить("ИмяШаблонаНаименования", ИмяШаблонаНаименования); + + Если Модифицированность Тогда + + ТекстВопроса = НСтр("ru = 'Изменение шаблона наименования с помощью редактора + |формул возможно только после записи элемента, записать элемент?'"); + + + ПоказатьВопрос(Новый ОписаниеОповещения("ИзменениеВРедактореШаблонаВопросОЗаписиЗавершение", ЭтотОбъект, ПараметрыВопроса), + ТекстВопроса, РежимДиалогаВопрос.ОКОтмена,,,НСтр("ru = 'Редактирование шаблона'")); + + Возврат; + КонецЕсли; + + ИзменениеВРедактореШаблонаВопросФрагмент(ПараметрыВопроса); + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменениеВРедактореШаблонаВопросФрагмент(ДополнительныеПараметры) + + ИмяШаблона = ДополнительныеПараметры.ИмяШаблонаНаименования; + АдресДереваОперандов = ПодготовитьДеревоОперандов(ИмяШаблона); + + ПараметрыРедактированияШаблона = Новый Структура("Формула, ОперандыЗаголовок, Операторы, СтроковаяФормула, ДеревоОперандов"); + + ПараметрыРедактированияШаблона.Формула = Объект[ИмяШаблона]; + ПараметрыРедактированияШаблона.ОперандыЗаголовок = НСтр("ru = 'Доступные реквизиты'"); + ПараметрыРедактированияШаблона.Операторы = АдресХранилищаДереваОператоров; + + ПараметрыРедактированияШаблона.ДеревоОперандов = АдресДереваОперандов; + ПараметрыРедактированияШаблона.Вставить("ТипРезультата", Новый ОписаниеТипов("Строка")); + + ОписаниеОповещения = Новый ОписаниеОповещения("ИзменениеВРедактореШаблонаЗавершение", ЭтотОбъект, ДополнительныеПараметры); + + ОткрытьФорму( + "ОбщаяФорма.КонструкторФормул", + ПараметрыРедактированияШаблона, + ЭтотОбъект, + , + , + , + ОписаниеОповещения, + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры + +&НаСервере +Функция ПодготовитьДеревоОперандов(ИмяШаблона) + + НаборыСвойств = Новый Структура("НаборСвойств, НаборСвойствСерий, НаборСвойствХарактеристик"); + ЗаполнитьЗначенияСвойств(НаборыСвойств, Объект); + + ДеревоОперандов = Справочники.ВидыНоменклатуры.ПодготовитьДеревоОперандов(НаборыСвойств, ИмяШаблона); + + АдресХранения = ПоместитьВоВременноеХранилище(ДеревоОперандов, УникальныйИдентификатор); + + Возврат АдресХранения; + +КонецФункции + +&НаКлиенте +Процедура ИзменениеВРедактореШаблонаВопросОЗаписиЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт + + Если РезультатВопроса = КодВозвратаДиалога.ОК Тогда + Если Записать() Тогда + + ИзменениеВРедактореШаблонаВопросФрагмент(ДополнительныеПараметры); + + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменениеВРедактореШаблонаЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Шаблон = Результат; + ИмяШаблона = ДополнительныеПараметры.ИмяШаблонаНаименования; + + Если Шаблон <> Неопределено + И Объект[ИмяШаблона] <> Шаблон Тогда + Модифицированность = Истина; + Объект[ИмяШаблона] = Шаблон; + + Если Не МультиязычностьВключена Тогда + ИмяРеквизитаЗапретРедактированияНаименования = ИмяРеквизитаЗапретРедактированияНаименования(ИмяШаблона); + Если ИмяРеквизитаЗапретРедактированияНаименования <> "" Тогда + Объект[ИмяРеквизитаЗапретРедактированияНаименования] = ЗначениеЗаполнено(Объект[ИмяШаблона]); + КонецЕсли; + КонецЕсли; + + НастроитьПоШаблонуНаименования(ДополнительныеПараметры.ИмяШаблонаНаименования); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПостроитьДеревоОператоров() + + Дерево = РаботаСФормулами.ПолучитьПустоеДеревоОператоров(); + + ПредставлениеГруппыОператора = НСтр("ru = 'Разделители'"); + ГруппаОператоров = РаботаСФормулами.ДобавитьГруппуОператоров(Дерево, "Разделители", ПредставлениеГруппыОператора); + + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, "/", " + ""/"" + ", "/"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, "\", " + ""\"" + ", "\"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, "|", " + ""|"" + ", "|"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, "_", " + ""_"" + ", "_"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, ",", " + "", "" + ", ","); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, ".", " + "". "" + ", "."); + + ПредставлениеОператора = НСтр("ru = 'Пробел'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, "Пробел", " + "" "" + ", ПредставлениеОператора); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, "(", " + "" ("" + ", "("); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, ")", " + "") "" + ", ")"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, """", " + """""""" + ", """"); + + ПредставлениеГруппыОператора = НСтр("ru = 'Операторы'"); + ГруппаОператоров = РаботаСФормулами.ДобавитьГруппуОператоров(Дерево, "Операторы", ПредставлениеГруппыОператора); + + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, "+", " + ", "+"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, "-", " - ", "-"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, "*", " * ", "*"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, "/", " / ", "/"); + + ПредставлениеГруппыОператора = НСтр("ru = 'Логические операторы и константы'"); + ГруппаОператоров = РаботаСФормулами.ДобавитьГруппуОператоров(Дерево, "ЛогическиеОператорыИКонстанты", ПредставлениеГруппыОператора); + + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, "<", " < ", "<"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, ">", " > ", ">"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, "<=", " <= ", "<="); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, ">=", " >= ", ">="); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, "=", " = ", "="); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, "<>", " <> ", "<>"); + + Идентификатор = "И"; + КонструкцияДляВставки = " " + "И" + " "; + Представление = НСтр("ru = 'И'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление); + + Идентификатор = "Или"; + КонструкцияДляВставки = " " + "Или" + " "; + Представление = НСтр("ru = 'Или'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление); + + Идентификатор = "Не"; + КонструкцияДляВставки = " " + "Не" + " "; + Представление = НСтр("ru = 'Не'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление); + + Идентификатор = "ИСТИНА"; + КонструкцияДляВставки = " " + "ИСТИНА" + " "; + Представление = НСтр("ru = 'ИСТИНА'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление); + + Идентификатор = "ЛОЖЬ"; + КонструкцияДляВставки = " " + "ЛОЖЬ" + " "; + Представление = НСтр("ru = 'ЛОЖЬ'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление); + + ПредставлениеГруппыОператора = НСтр("ru = 'Числовые функции'"); + ГруппаОператоров = РаботаСФормулами.ДобавитьГруппуОператоров(Дерево, "ЧисловыеФункции", ПредставлениеГруппыОператора); + + Идентификатор = "Макс"; + КонструкцияДляВставки = "Макс(,)"; + Представление = НСтр("ru = 'Максимум'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление,, + 2); + + Идентификатор = "Мин"; + КонструкцияДляВставки = "Мин(,)"; + Представление = НСтр("ru = 'Минимум'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление,, + 2); + + Идентификатор = "Окр"; + ТекстОкругляемоеЗначение = НСтр("ru = '<Округляемое значение>'"); + ТекстКоличествоЗнаков = НСтр("ru = '<Знаков после запятой>'"); + КонструкцияДляВставки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + "Окр(%1, %2)", + ТекстОкругляемоеЗначение, + ТекстКоличествоЗнаков); + Представление = НСтр("ru = 'Округление'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление,, + 2); + + Идентификатор = "Цел"; + КонструкцияДляВставки = "Цел()"; + Представление = НСтр("ru = 'Целая часть'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление,, + 1); + + ПредставлениеГруппыОператора = НСтр("ru = 'Строковые функции'"); + ГруппаОператоров = РаботаСФормулами.ДобавитьГруппуОператоров(Дерево, "СтроковыеФункции", ПредставлениеГруппыОператора); + + Идентификатор = "Строка"; + КонструкцияДляВставки = "Строка()"; + Представление = НСтр("ru = 'Строка'"); + ПояснениеОператора = НСтр("ru = 'Преобразовывает значение в строку'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление, + ПояснениеОператора); + + Идентификатор = "ВРег"; + КонструкцияДляВставки = "ВРег()"; + Представление = НСтр("ru = 'Верхний регистр'"); + ПояснениеОператора = НСтр("ru = 'Приводит строку в верхний регистр'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление, + ПояснениеОператора); + + Идентификатор = "Лев"; + ТекстСтрокаИсходная = НСтр("ru = '<Исходная строка>'"); + ТекстКоличествоСимволов = НСтр("ru = '<Количество символов>'"); + КонструкцияДляВставки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + "Лев(%1, %2)", + ТекстСтрокаИсходная, + ТекстКоличествоСимволов); + Представление = НСтр("ru = 'Левая часть строки'"); + ПояснениеОператора = НСтр("ru = 'Получает указанное количество символов слева строки'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление, + ПояснениеОператора); + + Идентификатор = "НРег"; + КонструкцияДляВставки = "НРег()"; + Представление = НСтр("ru = 'Нижний регистр'"); + ПояснениеОператора = НСтр("ru = 'Приводит строку к нижнему регистру'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление, + ПояснениеОператора); + + Идентификатор = "Прав"; + ТекстСтрокаИсходная = НСтр("ru = '<Исходная строка>'"); + ТекстКоличествоСимволов = НСтр("ru = '<Количество символов>'"); + КонструкцияДляВставки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + "Прав(%1, %2)", + ТекстСтрокаИсходная, + ТекстКоличествоСимволов); + Представление = НСтр("ru = 'Правая часть строки'"); + ПояснениеОператора = НСтр("ru = 'Получает указанное количество символов справа строки'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление, + ПояснениеОператора); + + Идентификатор = "СокрЛ"; + КонструкцияДляВставки = "СокрЛ()"; + Представление = НСтр("ru = 'Удаление лишних символов слева'"); + ПояснениеОператора = НСтр("ru = 'Отсекает незначащие символы, стоящие слева от первого значащего символа в строке'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление, + ПояснениеОператора); + + Идентификатор = "СокрЛП"; + КонструкцияДляВставки = "СокрЛП()"; + Представление = НСтр("ru = 'Удаление лишних символов слева и справа'"); + ПояснениеОператора = НСтр("ru = 'Отсекает незначащие символы, стоящие слева от первого значащего символа в строке, и пробелы, стоящие справа от последнего значащего символа в строке'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление, + ПояснениеОператора); + + Идентификатор = "СокрП"; + КонструкцияДляВставки = "СокрП()"; + Представление = НСтр("ru = 'Удаление лишних символов справа'"); + ПояснениеОператора = НСтр("ru = 'Отсекает незначащие символы, стоящие справа от последнего значащего символа в строке'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление, + ПояснениеОператора); + + Идентификатор = "ТРег"; + КонструкцияДляВставки = "ТРег()"; + Представление = НСтр("ru = 'Титульный регистр'"); + ПояснениеОператора = НСтр("ru = 'Преобразует строку следующим образом: у каждого слова строки первый символ преобразуется к верхнему регистру. Все остальные символы преобразуются к нижнему регистру'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление, + ПояснениеОператора); + + Идентификатор = "СтрЗаменить"; + ТекстСтрокаИсходная = НСтр("ru = '<Исходная строка>'"); + ТекстСтрокаЧтоЗаменяем = НСтр("ru = '<Строка которую заменить>'"); + ТекстСтрокаНаЧтоЗаменяем = НСтр("ru = '<Строка на которую заменить>'"); + КонструкцияДляВставки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + "СтрЗаменить(%1, %2, %3)", + ТекстСтрокаИсходная, + ТекстСтрокаЧтоЗаменяем, + ТекстСтрокаНаЧтоЗаменяем); + Представление = НСтр("ru = 'Замена в строке'"); + ПояснениеОператора = НСтр("ru = 'Находит в исходной строке все вхождения подстроки поиска и заменяет ее на подстроку замены'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление, + ПояснениеОператора); + + Идентификатор = "СтрДлина"; + КонструкцияДляВставки = "СтрДлина()"; + Представление = НСтр("ru = 'Длина строки'"); + ПояснениеОператора = НСтр("ru = 'Возвращает количество символов строки'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление, + ПояснениеОператора); + + ПредставлениеГруппыОператора = НСтр("ru = 'Прочие функции'"); + ГруппаОператоров = РаботаСФормулами.ДобавитьГруппуОператоров(Дерево, "ПрочиеФункции", ПредставлениеГруппыОператора); + + Идентификатор = "?"; + ТекстУсловие = НСтр("ru = '<Условие>'"); + ТекстЗначениеИстина = НСтр("ru = '<Значение если истина>'"); + ТекстЗначениеЛожь = НСтр("ru = '<Значение если ложь>'"); + КонструкцияДляВставки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + "?(%1, %2, %3)", + ТекстУсловие, + ТекстЗначениеИстина, + ТекстЗначениеЛожь); + Представление = НСтр("ru = 'Условие'"); + ПояснениеОператора = НСтр("ru = 'Вычисляет значение в зависимости от значения условия'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление, + ПояснениеОператора); + + Идентификатор = "ПредопределенноеЗначение"; + КонструкцияДляВставки = "ПредопределенноеЗначение()"; + Представление = НСтр("ru = 'Предопределенное значение'"); + ПояснениеОператора = НСтр("ru = 'Обращение к предопределенному элементу по его имени'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление, + ПояснениеОператора); + + Идентификатор = "ЗначениеЗаполнено"; + КонструкцияДляВставки = "ЗначениеЗаполнено()"; + Представление = НСтр("ru = 'Значение заполнено'"); + ПояснениеОператора = НСтр("ru = 'Проверка заполненности значения'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление, + ПояснениеОператора); + + Идентификатор = "Формат"; + ТекстЗначение = НСтр("ru = '<Значение>'"); + ТекстФорматнаяСтрока = НСтр("ru = '<Форматная строка>'"); + КонструкцияДляВставки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + "Формат(%1, %2)", + ТекстЗначение, + ТекстФорматнаяСтрока); + Представление = НСтр("ru = 'Формат'"); + ПояснениеОператора = НСтр("ru = 'Выполняет форматирование значения в соответствии с форматной строкой'"); + РаботаСФормулами.ДобавитьОператор(ГруппаОператоров, + Идентификатор, + КонструкцияДляВставки, + Представление, + ПояснениеОператора); + + АдресХранилищаДереваОператоров = ПоместитьВоВременноеХранилище(Дерево, УникальныйИдентификатор); + +КонецПроцедуры + +&НаСервере +Процедура ПриИзмененииФлагаЗаполнятьОбязательно(ВладелецРеквизита, ИдентификаторСтрокиТаблицы) + + КоллекцияРеквизитовДляКонтроля = Справочники.ВидыНоменклатуры.КоллекцияРеквизитовДляКонтроля(Объект, ВладелецРеквизита); + + ТекущиеДанные = КоллекцияРеквизитовДляКонтроля.НайтиПоИдентификатору(ИдентификаторСтрокиТаблицы); + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Если ТекущиеДанные.ЗаполнятьОбязательно Тогда + ТекущиеДанные.ОтображатьПриСоздании = Истина; + КонецЕсли; + + Если ТекущиеДанные.ЭтоДопРеквизит Тогда + ТекущиеДанные.ДоступностьОтображатьПриСоздании = Не ТекущиеДанные.ЗаполнятьОбязательно; + Иначе + ТекущиеДанные.ДоступностьОтображатьПриСоздании = Справочники.ВидыНоменклатуры.ДоступноИзменениеНастройкиОтображенияРеквизита(Объект, + ТекущиеДанные, + ВладелецРеквизита); + КонецЕсли; + +КонецПроцедуры + +// Процедура заполняет нужную таблицу дополнительных реквизитов (сведений). +// +// Параметры: +// Таблица - ДанныеФормыКоллекция - Таблица доп.реквизитов (сведений). +// +// НаборСвойствДопРеквизитов - СправочникСсылка.НаборыДополнительныхРеквизитовИСведений - Ссылка на элемент-владелец +// набора доп.реквизитов (сведений). +// +// НаборОбщихСвойствДопРеквизитов - СправочникСсылка.НаборыДополнительныхРеквизитовИСведений - Ссылка на элемент-владелец +// набора общих доп.реквизитов (сведений). +// +// ТипДанных - Строка - Тип данных которые будут заполняться. +// Принимает значения: "Реквизиты", "Сведения". +// +// ТолькоОбщиеСвойства -Булево - Если параметр, установлен в Истина, то предварительно очищается не вся таблица, +// а только список общих доп.реквизитов (сведений). Это сделано для того чтобы избежать +// потери введенных данных о не общих доп.реквизитах (сведениях) в форму. +// Значение по умолчанию: Ложь. +&НаСервере +Процедура ЗаполнитьСписокСвойствДопРеквизитовТаблицы(Таблица, НаборСвойствДопРеквизитов, НаборОбщихСвойствДопРеквизитов, + ТипДанных, ТолькоОбщиеСвойства = Ложь) + + // Если нужно перезаполнить свойства, то проверить, что передана ссылка на набор свойств. + Если Не ТолькоОбщиеСвойства Тогда + Если Не ЗначениеЗаполнено(НаборСвойствДопРеквизитов) Тогда + Возврат; + КонецЕсли; + Иначе + // Если нужно перезаполнить только ОБЩИЕ свойства, то проверить, что передана ссылка на набор ОБЩИХ свойств. + Если Не ЗначениеЗаполнено(НаборОбщихСвойствДопРеквизитов) Тогда + Возврат; + КонецЕсли; + КонецЕсли; + + Если ТолькоОбщиеСвойства Тогда + + // Удалить из таблицы только строки общих свойств. + ВГраница = Таблица.Количество() - 1; + + Для ОбрИндекс = 0 По ВГраница Цикл + + СтрокаТаблицы = Таблица[ВГраница - ОбрИндекс]; + + Если СтрокаТаблицы.ОбщееСвойство Тогда + Таблица.Удалить(СтрокаТаблицы); + КонецЕсли; + + КонецЦикла; + + Иначе + + Таблица.Очистить(); + + КонецЕсли; + + Если ТипДанных = "Реквизиты" Тогда + ИмяТЧ = "ДополнительныеРеквизиты"; + ИначеЕсли ТипДанных = "Сведения" Тогда + ИмяТЧ = "ДополнительныеСведения"; + КонецЕсли; + + // Получить список дополнительных реквизитов из набора свойств, и дополнительных реквизитов из набора общих свойств. + Запрос = Новый Запрос; + + Запрос.УстановитьПараметр("НаборОбщихСвойств", НаборОбщихСвойствДопРеквизитов); + + Если ТолькоОбщиеСвойства Тогда + + Запрос.Текст = + "ВЫБРАТЬ + | ОбщиеДопРеквизитыСведения.Свойство КАК Свойство, + | ОбщиеДопРеквизитыСведения.Свойство.Заголовок КАК ПредставлениеРеквизита, + | ИСТИНА КАК ОбщееСвойство, + | ОбщиеДопРеквизитыСведения.НомерСтроки КАК НомерСтрокиДляСортировки, + | ВЫБОР КОГДА ОбщиеДопРеквизитыСведения.ПометкаУдаления ТОГДА 4 ИНАЧЕ 1 КОНЕЦ КАК ИндексКартинки + |ИЗ + | &ТабЧасть КАК ОбщиеДопРеквизитыСведения + |ГДЕ + | ОбщиеДопРеквизитыСведения.Ссылка = &НаборОбщихСвойств"; + + Иначе + + Запрос.УстановитьПараметр("НаборСвойств", НаборСвойствДопРеквизитов); + + Запрос.Текст = + "ВЫБРАТЬ + | ДопРеквизитыСведения.Свойство КАК Свойство, + | ДопРеквизитыСведения.Свойство.Заголовок КАК ПредставлениеРеквизита, + | ЛОЖЬ КАК ОбщееСвойство, + | ДопРеквизитыСведения.НомерСтроки КАК НомерСтрокиДляСортировки, + | ВЫБОР КОГДА ДопРеквизитыСведения.ПометкаУдаления ТОГДА 4 ИНАЧЕ 1 КОНЕЦ КАК ИндексКартинки + |ИЗ + | &ТабЧасть КАК ДопРеквизитыСведения + |ГДЕ + | ДопРеквизитыСведения.Ссылка = &НаборСвойств + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | ОбщиеДопРеквизитыСведения.Свойство, + | ОбщиеДопРеквизитыСведения.Свойство.Заголовок, + | ИСТИНА, + | ОбщиеДопРеквизитыСведения.НомерСтроки, + | ВЫБОР КОГДА ОбщиеДопРеквизитыСведения.ПометкаУдаления ТОГДА 4 ИНАЧЕ 1 КОНЕЦ + |ИЗ + | &ТабЧасть КАК ОбщиеДопРеквизитыСведения + |ГДЕ + | ОбщиеДопРеквизитыСведения.Ссылка = &НаборОбщихСвойств"; + + КонецЕсли; + + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТабЧасть", "Справочник.НаборыДополнительныхРеквизитовИСведений." + ИмяТЧ); + + РезультатЗапроса = Запрос.Выполнить(); + + Если РезультатЗапроса.Пустой() Тогда + Возврат; + КонецЕсли; + + ТаблицаДопРеквизитовСведений = РезультатЗапроса.Выгрузить(); + + Если ТолькоОбщиеСвойства Тогда + + ТаблицаДопРеквизитовСведений.Сортировать("НомерСтрокиДляСортировки Возр"); + + ТаблицаВсехДопРеквизитовСведений = Таблица.Выгрузить(); + ТаблицаВсехДопРеквизитовСведений.Очистить(); + + ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(ТаблицаДопРеквизитовСведений, ТаблицаВсехДопРеквизитовСведений); + ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(Таблица, ТаблицаВсехДопРеквизитовСведений); + + Таблица.Загрузить(ТаблицаВсехДопРеквизитовСведений); + + Иначе + + ТаблицаДопРеквизитовСведений.Сортировать("ОбщееСвойство Убыв, НомерСтрокиДляСортировки Возр"); + + Таблица.Загрузить(ТаблицаДопРеквизитовСведений); + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьСпискиДопРеквизитовСведений() + + Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда + Возврат; + КонецЕсли; + + НаборОбщихСвойств = УправлениеСвойствами.НаборСвойствПоИмени("Справочник_Номенклатура_Общие"); + НаборОбщихСвойствХарактеристик = УправлениеСвойствами.НаборСвойствПоИмени("Справочник_ХарактеристикиНоменклатуры_Общие"); + НаборОбщихСвойствСерий = УправлениеСвойствами.НаборСвойствПоИмени("Справочник_СерииНоменклатуры_Общие"); + + ЗаполнитьСписокСвойствДопРеквизитовТаблицы( + ТаблицаДопРеквизитовНоменклатуры, + Объект.НаборСвойств, + НаборОбщихСвойств, + "Реквизиты", + РедактируютсяОбщиеРеквизитыСведения); + + ЗаполнитьСписокСвойствДопРеквизитовТаблицы( + ТаблицаДопРеквизитовХарактеристик, + Объект.НаборСвойствХарактеристик, + НаборОбщихСвойствХарактеристик, + "Реквизиты", + РедактируютсяОбщиеРеквизитыСведения); + + ЗаполнитьСписокСвойствДопРеквизитовТаблицы( + ТаблицаДопРеквизитовСерий, + Объект.НаборСвойствСерий, + НаборОбщихСвойствСерий, + "Реквизиты", + РедактируютсяОбщиеРеквизитыСведения); + + ЗаполнитьСписокСвойствДопРеквизитовТаблицы( + ТаблицаДопСведенийНоменклатуры, + Объект.НаборСвойств, + НаборОбщихСвойств, + "Сведения", + РедактируютсяОбщиеРеквизитыСведения); + + ЗаполнитьСписокСвойствДопРеквизитовТаблицы( + ТаблицаДопСведенийХарактеристик, + Объект.НаборСвойствХарактеристик, + НаборОбщихСвойствХарактеристик, + "Сведения", + РедактируютсяОбщиеРеквизитыСведения); + + ЗаполнитьСписокСвойствДопРеквизитовТаблицы( + ТаблицаДопСведенийСерий, + Объект.НаборСвойствСерий, + НаборОбщихСвойствСерий, + "Сведения", + РедактируютсяОбщиеРеквизитыСведения); + +КонецПроцедуры + +&НаСервере +Процедура УстановитьДоступностьНастройкиПолейРеквизитаДляКонтроля(СтрокаРеквизитаДляКонтроля, УсловияДоступности) + + СтрокаРеквизитаДляКонтроля.ДоступностьЗаполнятьОбязательно = (Не УсловияДоступности.ТипРеквизитаБулево + И Не УсловияДоступности.ЗаполнятьОбязательно); + + Если УсловияДоступности.ТолькоЗаполнятьОбязательно Тогда + Возврат; + КонецЕсли; + + СтрокаРеквизитаДляКонтроля.ДоступностьУникален = (Не УсловияДоступности.ЭтоНеиспользуемыйДляКонтроляТип); + СтрокаРеквизитаДляКонтроля.ДоступностьОтображатьПриСоздании = (Не СтрокаРеквизитаДляКонтроля.ЗаполнятьОбязательно + И Не УсловияДоступности.ЗаполнятьОбязательно); + +КонецПроцедуры + +&НаСервере +Процедура НастроитьФорму() + + ТолькоПросмотр = Не ЕстьПравоРедактирования; + + ЗаполняемыйОбъект = Объект; + НоменклатураЛокализация.ДополнитьОбъектФормы(ЭтотОбъект, ЗаполняемыйОбъект); + ВидимостьЭлементов = Справочники.Номенклатура.ИспользованиеЭлементов(ЗаполняемыйОбъект, Ложь, Ложь); + НоменклатураЛокализация.ВосстановитьОбъектФормы(ЭтотОбъект, ЗаполняемыйОбъект); + + Для Каждого ЭлементВидимость Из ВидимостьЭлементов Цикл + + Если Элементы.Найти(ЭлементВидимость.Ключ) <> Неопределено Тогда + Элементы[ЭлементВидимость.Ключ].Видимость = ЭлементВидимость.Значение; + КонецЕсли; + + КонецЦикла; + + ЗначенияРеквизитов = Справочники.ВидыНоменклатуры.ЗначенияРеквизитовСтрогоЗаполняемыеПоОсобенностиУчета(КлючВидовПродукцииДоИзменения); + Если ЗначенияРеквизитов <> Неопределено Тогда + Для Каждого КлючЗначение Из ЗначенияРеквизитов Цикл + Если Элементы.Найти(КлючЗначение.Ключ) <> Неопределено Тогда + Элементы[КлючЗначение.Ключ].Доступность = Истина; + КонецЕсли; + КонецЦикла + КонецЕсли; + + #Область ЗначенияФО + + Если Не ИспользоватьНесколькоСкладов Тогда + + Для каждого ДанныеСтроки Из Объект.ПолитикиУчетаСерий Цикл + Если ТипЗнч(ДанныеСтроки.Склад) = Тип("СправочникСсылка.Склады") Тогда + Склад = ДанныеСтроки.Склад; + ПолитикаУчетаСерий = ДанныеСтроки.ПолитикаУчетаСерий; + Прервать; + КонецЕсли; + КонецЦикла; + + Склад = ЗначениеНастроекПовтИсп.ПолучитьСкладПоУмолчанию(Склад); + КонецЕсли; + + ИспользоватьДополнительныеРеквизитыИСведения = ПолучитьФункциональнуюОпцию("ИспользоватьДополнительныеРеквизитыИСведения"); + ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач = ПолучитьФункциональнуюОпцию( + "ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач", Новый Структура("Склад", Склад)); + ИспользоватьПродажуАгентскихУслуг = ПолучитьФункциональнуюОпцию("ИспользоватьПродажуАгентскихУслуг"); + ИспользоватьТоварныеКатегории = ПолучитьФункциональнуюОпцию("ИспользоватьТоварныеКатегории"); + + ИспользоватьХарактеристикиНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьХарактеристикиНоменклатуры"); + ИспользоватьСерииНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьСерииНоменклатуры"); + КонтролироватьУникальность = ПолучитьФункциональнуюОпцию("КонтролироватьУникальностьНоменклатурыПоСочетаниюЗначенийРеквизитов"); + ИспользоватьОрдерныеСклады = ПолучитьФункциональнуюОпцию("ИспользоватьОрдерныеСклады"); + БазоваяВерсия = ПолучитьФункциональнуюОпцию("БазоваяВерсия"); + + #КонецОбласти + + #Область НесколькоВидов + НесколькоВидовНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоВидовНоменклатуры"); + + Элементы.СтраницаНастройкиПанелиБыстрогоОтбора.Видимость = НесколькоВидовНоменклатуры; + Элементы.Родитель.Видимость = НесколькоВидовНоменклатуры; + Элементы.Описание.Видимость = НесколькоВидовНоменклатуры; + Элементы.ТипНоменклатуры.Видимость = НесколькоВидовНоменклатуры; + Элементы.ПодменюПерейти.Видимость = НесколькоВидовНоменклатуры; + Элементы.ДекорацияОтступ.Видимость = НесколькоВидовНоменклатуры; + Элементы.ОсобенностьУчета.Видимость = НесколькоВидовНоменклатуры + И Перечисления.ОсобенностиУчетаНоменклатуры.ОднаИзОсобенностейВключена(); // Наличие возможности выбора при хотя бы в одном типе + + #КонецОбласти + + #Область ТипНоменклатуры + ЭтоТовар = (Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар); + ЭтоМногооборотнаяТара = (Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.МногооборотнаяТара); + ЭтоРабота = (Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Работа); + ЭтоУслуга = (Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Услуга); + ЭтоНабор = (Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Набор); + + Элементы.ТипНоменклатуры.Подсказка = Перечисления.ТипыНоменклатуры.ПодсказкаПоТипуНоменклатуры(Объект.ТипНоменклатуры); + ОднаИзОсобенностейВключена = Перечисления.ОсобенностиУчетаНоменклатуры.ОднаИзОсобенностейВключена(Объект.ТипНоменклатуры); + Если Не ЗначениеЗаполнено(Объект.ТипНоменклатуры) Тогда + ПодсказкаОсобенностиУчета = НСтр("ru = 'Заполняется после выбора типа номенклатуры'"); + ИначеЕсли Не ОднаИзОсобенностейВключена И Не ЭтоУслуга Тогда + ПодсказкаОсобенностиУчета = НСтр("ru = 'Отсутствуют для заданного типа'"); + ИначеЕсли Объект.ОсобенностьУчета = Перечисления.ОсобенностиУчетаНоменклатуры.БезОсобенностейУчета Тогда + ПодсказкаОсобенностиУчета = НСтр("ru = 'Без особенности учета'"); + Иначе + ПодсказкаОсобенностиУчета = Перечисления.ОсобенностиУчетаНоменклатуры.ПодсказкаПоОсобенностиУчетаНоменклатуры(Объект.ОсобенностьУчета); + КонецЕсли; + Элементы.ОсобенностьУчета.Подсказка = ПодсказкаОсобенностиУчета; + + Элементы.ОсобенностьУчета.Доступность = ОднаИзОсобенностейВключена; + + ИспользоватьХарактеристикиИзДругогоВида = (Объект.ИспользованиеХарактеристик + = ПредопределенноеЗначение("Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры")); + + #КонецОбласти + + #Область ОформлениеУслуг + Элементы.ВариантОформленияПродажи.Видимость = (ЭтоТовар + И ПолучитьФункциональнуюОпцию("ИспользоватьАктыНаПередачуПрав") + И (Объект.ОсобенностьУчета = Перечисления.ОсобенностиУчетаНоменклатуры.БезОсобенностейУчета + Или Не ЗначениеЗаполнено(Объект.ОсобенностьУчета))) + Или ЭтоУслуга + Или ЭтоРабота; + + Элементы.ДекорацияПродажаОформляется.Видимость = Элементы.ВариантОформленияПродажи.Видимость; + Элементы.ДекорацияПродажаОформляетсяЗаглушка.Видимость = Элементы.ВариантОформленияПродажи.Видимость; + + СписокВыбораВариантовОформления = Элементы.ВариантОформленияПродажи.СписокВыбора; + СписокВыбораВариантовОформления.Очистить(); + + СписокВыбораВариантовОформления.Добавить(Перечисления.ВариантыОформленияПродажи.РеализацияТоваровУслуг); + Если ЭтоУслуга Или ЭтоРабота Тогда + СписокВыбораВариантовОформления.Добавить(Перечисления.ВариантыОформленияПродажи.АктВыполненныхРабот); + КонецЕсли; + + Если ПолучитьФункциональнуюОпцию("ИспользоватьАктыНаПередачуПрав") + И Не ЭтоМногооборотнаяТара Тогда + СписокВыбораВариантовОформления.Добавить(Перечисления.ВариантыОформленияПродажи.АктНаПередачуПрав); + КонецЕсли; + #КонецОбласти + + #Область Набор + Элементы.ВариантРасчетаЦеныНабора.Видимость = ЭтоНабор; + Элементы.ВариантПредставленияНабораВПечатныхФормах.Видимость = ЭтоНабор; + #КонецОбласти + + #Область ТоварныеКатегории + Элементы.ДекорацияТоварныеКатегории.Видимость = ИспользоватьТоварныеКатегории; + Элементы.НастройкаТоварныхКатегорий.Видимость = ИспользоватьТоварныеКатегории; + Элементы.ВладелецТоварныхКатегорий.Видимость = ИспользоватьТоварныеКатегории; + СформироватьНадписьПоВидуВладельцу("ТоварныхКатегорий"); + #КонецОбласти + + #Область Характеристики + Элементы.ИспользоватьХарактеристики.Видимость = ИспользоватьХарактеристикиНоменклатуры; + Элементы.ИспользованиеХарактеристик.Видимость = ИспользоватьХарактеристикиНоменклатуры; + + Элементы.ИспользованиеХарактеристик.Доступность = Объект.ИспользоватьХарактеристики; + + Элементы.РеквизитыБыстрогоОтбораХарактеристик.Видимость = ИспользоватьХарактеристикиНоменклатуры + И Объект.ИспользоватьХарактеристики + И Не ИспользоватьХарактеристикиИзДругогоВида; + Элементы.ТаблицаДопРеквизитовХарактеристик.Видимость = ИспользоватьХарактеристикиНоменклатуры + И Объект.ИспользоватьХарактеристики + И Не ИспользоватьХарактеристикиИзДругогоВида; + Элементы.ТаблицаДопСведенийХарактеристик.Видимость = ИспользоватьХарактеристикиНоменклатуры + И Объект.ИспользоватьХарактеристики + И Не ИспользоватьХарактеристикиИзДругогоВида; + Элементы.ТаблицаДопСведенийХарактеристик.Видимость = ИспользоватьХарактеристикиНоменклатуры + И Объект.ИспользоватьХарактеристики + И Не ИспользоватьХарактеристикиИзДругогоВида; + Элементы.ГруппаРеквизитыДляКонтроляХарактеристик.Видимость = ИспользоватьХарактеристикиНоменклатуры + И Объект.ИспользоватьХарактеристики + И Не ИспользоватьХарактеристикиИзДругогоВида; + Элементы.ГруппаШаблоныНаименованийХарактеристик.Видимость = ИспользоватьХарактеристикиНоменклатуры + И Объект.ИспользоватьХарактеристики + И Не ИспользоватьХарактеристикиИзДругогоВида; + + Элементы.ДекорацияОтступШаблоныНаименованийХарактеристик.Видимость = Элементы.ГруппаШаблоныНаименованийХарактеристик.Видимость; + Элементы.ВладелецХарактеристик.Видимость = ИспользоватьХарактеристикиНоменклатуры; + + Элементы.ПоказатьРеквизитыДляКонтроляХарактеристик.Видимость = ИспользоватьХарактеристикиНоменклатуры + И Объект.ИспользоватьХарактеристики + И Не ИспользоватьХарактеристикиИзДругогоВида; + СформироватьНадписьПоВидуВладельцу("Характеристик"); + #КонецОбласти + + #Область Серии + + ПараметрыОтбораПолитикУчетаСерий = НоменклатураКлиентСервер.ПараметрыОтбораПолитикУчетаСерий(); + ЗаполнитьЗначенияСвойств(ПараметрыОтбораПолитикУчетаСерий, Объект); + ОтборПолитикУчетаСерий = НоменклатураСервер.ОтборПолитикУчетаСерийПоПараметрам(ПараметрыОтбораПолитикУчетаСерий); + ОбязателенУчетОстатковПоСериям = ОтборПолитикУчетаСерий.Свойство("УчитыватьОстаткиСерий") + И ОтборПолитикУчетаСерий.УчитыватьОстаткиСерий; + + ВозможныеПолитикиУчетаСерий = Неопределено; + ОтборПоПолитике = Неопределено; + Если ОтборПолитикУчетаСерий.Свойство("ТипПолитики", ВозможныеПолитикиУчетаСерий) Тогда + + Если ТипЗнч(ВозможныеПолитикиУчетаСерий) = Тип("Массив") + Или ТипЗнч(ВозможныеПолитикиУчетаСерий) = Тип("ФиксированныйМассив") Тогда + + Если ВозможныеПолитикиУчетаСерий.Количество() = 1 Тогда + Если ЗначениеЗаполнено(ВозможныеПолитикиУчетаСерий[0]) Тогда + ОтборПоПолитике = ВозможныеПолитикиУчетаСерий[0]; + КонецЕсли; + ИначеЕсли ВозможныеПолитикиУчетаСерий.Количество() = 2 Тогда + Если ЗначениеЗаполнено(ВозможныеПолитикиУчетаСерий[0]) + И ЗначениеЗаполнено(ВозможныеПолитикиУчетаСерий[1]) Тогда + ОтборПоПолитике = Неопределено; + ИначеЕсли ЗначениеЗаполнено(ВозможныеПолитикиУчетаСерий[0]) Тогда + ОтборПоПолитике = ВозможныеПолитикиУчетаСерий[0]; + ИначеЕсли ЗначениеЗаполнено(ВозможныеПолитикиУчетаСерий[1]) Тогда + ОтборПоПолитике = ВозможныеПолитикиУчетаСерий[1]; + КонецЕсли; + КонецЕсли; + + ИначеЕсли ТипЗнч(ВозможныеПолитикиУчетаСерий) = Тип("ПеречислениеСсылка.ТипыПолитикУказанияСерий") Тогда + ОтборПоПолитике = ВозможныеПолитикиУчетаСерий; + КонецЕсли; + + КонецЕсли; + + РазрешеноИспользоватьСерии = (ЭтоТовар Или ЭтоМногооборотнаяТара) + И ИспользоватьСерииНоменклатуры + И (ОбязателенУчетОстатковПоСериям + И (ИспользоватьОрдерныеСклады + И ИспользоватьНесколькоСкладов + Или ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач) + Или Не ОбязателенУчетОстатковПоСериям); + + Элементы.ИспользоватьСерии.Видимость = РазрешеноИспользоватьСерии; + + Элементы.ВариантЗаданияНастроекСерий.Видимость = РазрешеноИспользоватьСерии; + Элементы.ВариантЗаданияНастроекСерий.Доступность = Объект.ИспользоватьСерии; + + Элементы.НадписьНастройкаИспользованияСерий.Видимость = РазрешеноИспользоватьСерии + И Объект.ИспользоватьСерии + И Не Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры; + + Элементы.ВладелецСерий.Видимость = (ЭтоТовар Или ЭтоМногооборотнаяТара) И ИспользоватьСерииНоменклатуры; + + ВидимостьПолитикиУчетаСерийСкладыПодразделения = Объект.ИспользоватьСерии + И РазрешеноИспользоватьСерии + И Не Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + И (ИспользоватьНесколькоСкладов + Или ИспользоватьПроизводство); + ВидимостьПолитикиУчетаСерийОдинСклад = Объект.ИспользоватьСерии + И РазрешеноИспользоватьСерии + И Не Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + И Не (ИспользоватьНесколькоСкладов + Или ИспользоватьПроизводство); + + Элементы.НадписьПолитикаУчетаСерий2.Видимость = ВидимостьПолитикиУчетаСерийСкладыПодразделения; + Элементы.ПолитикаУчетаСерий2.Видимость = ВидимостьПолитикиУчетаСерийСкладыПодразделения; + Элементы.ПолитикаУчетаСерий2.АвтоОтметкаНезаполненного = ВидимостьПолитикиУчетаСерийСкладыПодразделения; + + Элементы.ЕстьИндивидуальныеНастройкиПолитикиУчетаСерий.Видимость = ВидимостьПолитикиУчетаСерийСкладыПодразделения; + + Элементы.ГруппаНадписьПолитикаУчетаСерий.Видимость = ВидимостьПолитикиУчетаСерийОдинСклад; + Элементы.ПолитикаУчетаСерий.АвтоОтметкаНезаполненного = ВидимостьПолитикиУчетаСерийОдинСклад; + + ИспользоватьПередачуНаХранение = ПолучитьФункциональнуюОпцию( + "ИспользоватьПередачуНаОтветственноеХранениеСПравомПродажи"); + ИспользоватьНеотфактурованныеПоставки = ПолучитьФункциональнуюОпцию("ИспользоватьНеотфактурованныеПоставки"); + ИспользоватьТоварыВПутиОтПоставщиков = ПолучитьФункциональнуюОпцию("ИспользоватьТоварыВПутиОтПоставщиков"); + + Если ЗначениеЗаполнено(ОтборПоПолитике) Тогда + // Формирования текста предупреждения по использованию справочных серий + ЕстьОтборПоТипуПолитикиОписание = Новый Массив; + Если ЗначениеЗаполнено(Объект.ОсобенностьУчета) + И Объект.ОсобенностьУчета <> Перечисления.ОсобенностиУчетаНоменклатуры.БезОсобенностейУчета Тогда + + ОтборПоОсобенностиУчетаОписание = Новый ФорматированнаяСтрока(НСтр("ru = 'Для вида номенклатуры с особенностью учета ""%ОсобенностьУчета%"" возможно использование'") + Символы.НПП, + , + ЦветаСтиля.ПоясняющийТекст); + ОтборПоОсобенностиУчетаОписание = СтрЗаменить(ОтборПоОсобенностиУчетаОписание, "%ОсобенностьУчета%", Объект.ОсобенностьУчета); + ЕстьОтборПоТипуПолитикиОписание.Добавить(ОтборПоОсобенностиУчетаОписание); + ИначеЕсли Объект.НастройкаИспользованияСерий = Перечисления.НастройкиИспользованияСерийНоменклатуры.ЭкземплярТовара Тогда + ЕстьОтборПоТипуПолитикиОписание.Добавить(Новый ФорматированнаяСтрока( + НСтр("ru = 'Для серий, идентифицирующих экземпляр товара, возможно использование'") + Символы.НПП, + , + ЦветаСтиля.ПоясняющийТекст)); + Иначе + ЕстьОтборПоТипуПолитикиОписание.Добавить(Новый ФорматированнаяСтрока( + НСтр("ru = 'Для этого вида номенклатуры возможно использование'") + Символы.НПП, + , + ЦветаСтиля.ПоясняющийТекст)); + КонецЕсли; + + ЕстьОтборПоТипуПолитикиОписание.Добавить(Новый ФорматированнаяСтрока( + НСтр("ru = 'только'") + Символы.НПП, + Новый Шрифт(, , Истина), + ЦветаСтиля.ПоясняющийОшибкуТекст)); + ОтборПоТипуПолитикиОписание = НСтр("ru = 'политики учета серий с типом ""%ТипПолитикиУчетаСерий%""'"); + ОтборПоТипуПолитикиОписание = СтрЗаменить(ОтборПоТипуПолитикиОписание, "%ТипПолитикиУчетаСерий%", Строка(ОтборПоПолитике)); + ЕстьОтборПоТипуПолитикиОписание.Добавить(Новый ФорматированнаяСтрока( + ОтборПоТипуПолитикиОписание, + , + ЦветаСтиля.ПоясняющийТекст)); + + ОписанияОпераций = Новый Массив; + + Если ИспользоватьПередачуНаХранение Тогда + ОписанияОпераций.Добавить(НСтр("ru = '""Учет серий в переданных на хранение товарах""'")); + КонецЕсли; + + + Если ИспользоватьТоварыВПутиОтПоставщиков Тогда + ОписанияОпераций.Добавить(НСтр("ru = '""Учет товаров в пути от поставщика по сериям""'")); + КонецЕсли; + + Если ИспользоватьНеотфактурованныеПоставки Тогда + ОписанияОпераций.Добавить(НСтр("ru = '""Учет серий в неотфактурованных поставках товаров""'")); + КонецЕсли; + + ТекстВключенныхОпций = ?(ОписанияОпераций.Количество() = 0, "", + ?(ОписанияОпераций.Количество() > 1, НСтр("ru = 'со снятыми флагами'"), + НСтр("ru = 'со снятым флагом'"))); + ТекстВключенныхОпций = ?(ЗначениеЗаполнено(ТекстВключенныхОпций), + ТекстВключенныхОпций + Символы.НПП + СтрСоединить(ОписанияОпераций, "," + Символы.НПП) + ".", + ""); + + ЕстьОтборПоТипуПолитикиОписание.Добавить(Новый ФорматированнаяСтрока( + ?(ЗначениеЗаполнено(ТекстВключенныхОпций), Символы.НПП + ТекстВключенныхОпций, "."), + , + ЦветаСтиля.ПоясняющийТекст)); + + Элементы.НадписьЕстьОтборПоТипуПолитики.Заголовок = Новый ФорматированнаяСтрока(ЕстьОтборПоТипуПолитикиОписание); + + Элементы.НадписьЕстьОтборПоТипуПолитики.Видимость = + ЗначениеЗаполнено(ОтборПоПолитике) + И Объект.ИспользоватьСерии + И РазрешеноИспользоватьСерии + И Не Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры; + Иначе + Элементы.НадписьЕстьОтборПоТипуПолитики.Видимость = Ложь; + КонецЕсли; + + ЕстьОтборПолитикиПоУчетуОстатковПоСериям = ИспользоватьСерииНоменклатуры + И ОбязателенУчетОстатковПоСериям + И (Объект.ИспользоватьСерии + Или Не ИспользоватьОрдерныеСклады) + И Не Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры; + + Элементы.НадписьОтборПолитикиПоУчетуОстатковПоСериямОдинСкладБезОрдерности.Видимость = ЕстьОтборПолитикиПоУчетуОстатковПоСериям + И Не ИспользоватьНесколькоСкладов + И Не ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач + И Не БазоваяВерсия; + Элементы.НадписьЕстьОтборПолитикиПоУчетуОстатковПоСериямНетОрдерныхСкладов.Видимость = ЕстьОтборПолитикиПоУчетуОстатковПоСериям + И ИспользоватьНесколькоСкладов + И Не ИспользоватьОрдерныеСклады + И Не БазоваяВерсия; + Элементы.НадписьЕстьОтборПолитикиПоУчетуОстатковПоСериямЕстьОрдерныеСклады.Видимость = ЕстьОтборПолитикиПоУчетуОстатковПоСериям + И Не Элементы.НадписьОтборПолитикиПоУчетуОстатковПоСериямОдинСкладБезОрдерности.Видимость + И Не Элементы.НадписьЕстьОтборПолитикиПоУчетуОстатковПоСериямНетОрдерныхСкладов.Видимость; + + Элементы.НадписьИспользованиеПолитикиУчетаСерийПриВыключенномСрокеГодности.Видимость = + НЕ Объект.ИспользоватьСрокГодностиСерии + И Объект.ИспользоватьСерии + И РазрешеноИспользоватьСерии + И Не Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + И Объект.НастройкаИспользованияСерий = Перечисления.НастройкиИспользованияСерийНоменклатуры.ПартияТоваров; + + Элементы.НадписьПодсказкаПолитикиУчетаОтключеныОрдерныеСклады.Видимость = РазрешеноИспользоватьСерии + И Объект.ИспользоватьСерии + И ИспользоватьНесколькоСкладов + И Не ИспользоватьОрдерныеСклады + И Не Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + И Не ОбязателенУчетОстатковПоСериям + И Не БазоваяВерсия; + + Элементы.НадписьПодсказкаПолитикиУчетаСерийОдинСклад.Видимость = РазрешеноИспользоватьСерии + И Объект.ИспользоватьСерии + И Не ИспользоватьНесколькоСкладов + И Не ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач + И Не Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + И Не ОбязателенУчетОстатковПоСериям + И Не БазоваяВерсия; + + Элементы.ГруппаПолитикиУчетаСерий.Видимость = РазрешеноИспользоватьСерии + И Объект.ИспользоватьСерии + И (ИспользоватьНесколькоСкладов + Или ИспользоватьПроизводство) + И Не Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + И ЕстьИндивидуальныеНастройкиПолитикиУчетаСерий; + + ВТЧУказываютсяСкладыИПодразделения = ИспользоватьНесколькоСкладов И ИспользоватьПроизводство; + + Элементы.ПолитикиУчетаСерийДобавитьСкладВПолитикиУчетаСерий.Видимость = ВТЧУказываютсяСкладыИПодразделения; + Элементы.ПолитикиУчетаСерийДобавитьПодразделениеВПолитикиУчетаСерий.Видимость = ВТЧУказываютсяСкладыИПодразделения; + + Элементы.ПолитикиУчетаСерийДобавить.Видимость = Не ВТЧУказываютсяСкладыИПодразделения; + + Если ВТЧУказываютсяСкладыИПодразделения Тогда + ПолитикиУчетаСерийСкладЗаголовок = НСтр("ru = 'Склад или подразделение'"); + ПолитикиУчетаСерийСкладПодсказка = НСтр("ru = 'Склад или подразделение, в котором ведется учет по сериям'"); + ОтборСтрокТЧПолитикаУчетаСерий = Новый ФиксированнаяСтруктура("СоответствуетПолитикеПоУмолчанию", Ложь); + ПолитикиУчетаСерийСкладОграничениеТипа = Новый ОписаниеТипов("СправочникСсылка.Склады,СправочникСсылка.СтруктураПредприятия"); + ПолитикаУчетаСерийПодсказка + = НСтр("ru = 'Будет использована как общая политика для всех складов и производственных подразделений: будет устанавливаться по умолчанию для новых складов и производственных подразделений.'"); + ИначеЕсли ИспользоватьНесколькоСкладов Тогда + ПолитикиУчетаСерийСкладЗаголовок = НСтр("ru = 'Склад'"); + ПолитикиУчетаСерийСкладПодсказка = НСтр("ru = 'Склад, в котором ведется учет по сериям'"); + ПолитикиУчетаСерийСкладОграничениеТипа = Новый ОписаниеТипов("СправочникСсылка.Склады"); + ОтборСтрокТЧПолитикаУчетаСерий = Новый ФиксированнаяСтруктура("СоответствуетПолитикеПоУмолчанию, ЭтоПолитикаДляСклада", Ложь, Истина); + ПолитикаУчетаСерийПодсказка + = НСтр("ru = 'Будет использована как общая политика для всех складов; будет устанавливаться по умолчанию для новых складов.'"); + Иначе + ПолитикиУчетаСерийСкладЗаголовок = НСтр("ru = 'Подразделение'"); + ПолитикиУчетаСерийСкладПодсказка = НСтр("ru = 'Подразделение, в котором ведется учет по сериям'"); + ПолитикиУчетаСерийСкладОграничениеТипа = Новый ОписаниеТипов("СправочникСсылка.СтруктураПредприятия"); + ОтборСтрокТЧПолитикаУчетаСерий = Новый ФиксированнаяСтруктура("СоответствуетПолитикеПоУмолчанию, ЭтоПолитикаДляСклада", Ложь, Ложь); + ПолитикаУчетаСерийПодсказка + = НСтр("ru = 'Будет использована как общая политика для всех производственных подразделений; будет устанавливаться по умолчанию для новых производственных подразделений.'"); + КонецЕсли; + Элементы.ПолитикиУчетаСерийСклад.Заголовок = ПолитикиУчетаСерийСкладЗаголовок; + Элементы.ПолитикиУчетаСерийСклад.Подсказка = ПолитикиУчетаСерийСкладПодсказка; + Элементы.ПолитикиУчетаСерийСклад.ОграничениеТипа = ПолитикиУчетаСерийСкладОграничениеТипа; + Элементы.ПолитикиУчетаСерий.ОтборСтрок = ОтборСтрокТЧПолитикаУчетаСерий; + Элементы.НадписьПолитикаУчетаСерий2.Подсказка = ПолитикаУчетаСерийПодсказка; + + Элементы.ГруппаРеквизитыДляКонтроляСерий.Видимость = РазрешеноИспользоватьСерии + И Объект.ИспользоватьСерии + И Не Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры; + + Элементы.ГруппаШаблоныНаименованийСерий.Видимость = РазрешеноИспользоватьСерии + И Объект.ИспользоватьСерии + И Не Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры; + + Элементы.ДекорацияОтступШаблоныНаименованийСерий.Видимость = Элементы.ГруппаШаблоныНаименованийСерий.Видимость; + + Элементы.ТаблицаДопРеквизитовСерий.Видимость = РазрешеноИспользоватьСерии + И Объект.ИспользоватьСерии + И Не Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры; + + Элементы.ТаблицаДопСведенийСерий.Видимость = РазрешеноИспользоватьСерии + И Объект.ИспользоватьСерии + И Не Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры; + + Элементы.ШаблонЭтикеткиСерии.Видимость = РазрешеноИспользоватьСерии + И Объект.ИспользоватьСерии; + + Элементы.ПоказатьРеквизитыДляКонтроляСерий.Видимость = РазрешеноИспользоватьСерии + И Объект.ИспользоватьСерии + И Не Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры; + + Элементы.ПоказатьРеквизитыДляКонтроляНоменклатуры.Видимость = (РазрешеноИспользоватьСерии + И Объект.ИспользоватьСерии + И Не Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры) + Или (ИспользоватьХарактеристикиНоменклатуры + И Объект.ИспользоватьХарактеристики + И Не ИспользоватьХарактеристикиИзДругогоВида); + + СформироватьНадписьПоВидуВладельцу("Серий"); + + #Область НадписьНастройкаИспользованияСерий + + Если Элементы.НадписьНастройкаИспользованияСерий.Видимость Тогда + + НужноНастраиватьРеквизитыСерий = Не Элементы.ИспользоватьСерии.ТолькоПросмотр; + + Элементы.СворачиваемаяГруппаНастройкиСоставаРеквизитовСерий.Видимость = НужноНастраиватьРеквизитыСерий; + + МассивТекстов = Новый Массив; + + МассивТекстов.Добавить(НСтр("ru = 'Серия идентифицирует:'")); + МассивТекстов.Добавить(Символы.НПП); + МассивТекстов.Добавить(Новый ФорматированнаяСтрока(Строка(Объект.НастройкаИспользованияСерий), + Новый Шрифт(,,Истина))); + + МассивТекстов.Добавить(" ("); + + МассивОписанияРеквизитов = Новый Массив; + + НастройкиИспользованияСерий = Справочники.ВидыНоменклатуры.НастройкиИспользованияСерий(Объект); + Для Каждого Описание Из НастройкиИспользованияСерий.ОписанияИспользованияРеквизитовСерии Цикл + Если Описание.ИмяНастройки = "ИспользоватьRFIDМеткиСерии" Тогда + + Если Описание.ИмяРеквизита = "RFIDTID" + И Описание.Использование Тогда + МассивОписанияРеквизитов.Добавить(НСтр("ru = 'RFID-метка'")); + КонецЕсли; + + ИначеЕсли Описание.Использование Тогда + + Если Не ПустаяСтрока(Описание.ПредставлениеФорматнойСтрокиВЗаголовке) Тогда + + ПредставлениеРеквизита = НСтр("ru = '%ПредставлениеРеквизита% (%ТочностьУказания%)'"); + ПредставлениеРеквизита = СтрЗаменить(ПредставлениеРеквизита, "%ПредставлениеРеквизита%", Описание.ПредставлениеРеквизита); + ПредставлениеРеквизита = СтрЗаменить(ПредставлениеРеквизита, "%ТочностьУказания%", Описание.ПредставлениеФорматнойСтрокиВЗаголовке); + + Иначе + ПредставлениеРеквизита = Описание.ПредставлениеРеквизита; + + КонецЕсли; + МассивОписанияРеквизитов.Добавить(ПредставлениеРеквизита); + + КонецЕсли; + + Если НужноНастраиватьРеквизитыСерий + И Не ПустаяСтрока(Описание.ОсобенностиУчета) Тогда + + ИменаОсобенностей = СтрРазделить(Описание.ОсобенностиУчета, ","); + + ВидимостьНастройкиРеквизитаСерии = Ложь; + + Для Каждого ИмяОсобенности Из ИменаОсобенностей Цикл + + Если Объект.ОсобенностьУчета = ПредопределенноеЗначение("Перечисление.ОсобенностиУчетаНоменклатуры." + ИмяОсобенности) Тогда + ВидимостьНастройкиРеквизитаСерии = Истина; + Прервать; + КонецЕсли; + + КонецЦикла; + Элементы[Описание.ИмяНастройки].Видимость = ВидимостьНастройкиРеквизитаСерии; + Иначе + Элементы[Описание.ИмяНастройки].Видимость = Истина; + КонецЕсли; + + КонецЦикла; + + МассивТекстов.Добавить(СтрСоединить(МассивОписанияРеквизитов, ", ")); + МассивТекстов.Добавить(") "); + + Если НастройкиИспользованияСерий.АвтоматическиГенерироватьСерии Тогда + МассивТекстов.Добавить(", "); + МассивТекстов.Добавить(НСтр("ru = 'Возможна автогенерация'")); + МассивТекстов.Добавить(" "); + КонецЕсли; + + Элементы.НадписьНастройкаИспользованияСерий.Заголовок = Новый ФорматированнаяСтрока(МассивТекстов); + + Элементы.АвтоматическиГенерироватьСерии.Видимость = + Справочники.ВидыНоменклатуры.ПредусмотренаАвтоматическаяГенерацияСерий(НастройкиИспользованияСерий); + Элементы.ИспользоватьНомерСерии.Доступность = Не Объект.АвтоматическиГенерироватьСерии; + + Элементы.ТочностьУказанияСрокаГодностиСерии.Доступность = + Объект.ИспользоватьСрокГодностиСерии Или Объект.ИспользоватьДатуПроизводстваСерии; + + Элементы.ИспользоватьRFIDМеткиСерии.Доступность = + Объект.НастройкаИспользованияСерий = Перечисления.НастройкиИспользованияСерийНоменклатуры.ЭкземплярТовара; + Иначе + + Элементы.СворачиваемаяГруппаНастройкиСоставаРеквизитовСерий.Видимость = Ложь; + + КонецЕсли; + + #КонецОбласти + + #КонецОбласти + + #Область ЕдиницаИзмерения + Если ЭтоУслуга + Или ЭтоРабота + Или ЭтоНабор Тогда + ЗаголовокЕдиницыИзмерения = НСтр("ru = 'Ед. измерения'"); + ЗаголовокГруппыЕдиницаИзмерения = НСтр("ru = 'Единицы измерения'"); + Иначе + ЗаголовокЕдиницыИзмерения = НСтр("ru = 'Ед. хранения'"); + ЗаголовокГруппыЕдиницаИзмерения = НСтр("ru = 'Единицы измерения и условия хранения'"); + КонецЕсли; + Элементы.ЕдиницаИзмерения.Заголовок = ЗаголовокЕдиницыИзмерения; + Элементы.ГруппаЕдиницыИзмеренияИУсловияХранения.Заголовок = ЗаголовокГруппыЕдиницаИзмерения; + + Элементы.ЕдиницаИзмерения.Доступность = (ИспользованиеУпаковок = "ИндивидуальныйНабор" + И Объект.ИспользоватьУпаковки) + Или Не Объект.ИспользоватьУпаковки; + + #КонецОбласти + + #Область ШаблоныНаименованийИНастройкаРеквизитовНоменклатуры + Элементы.ГруппаНастройкиСозданияПереключатели.Видимость = (Объект.ИспользоватьСерии + И Не Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры) + Или (Объект.ИспользоватьХарактеристики + И Не ИспользоватьХарактеристикиИзДругогоВида); + + Если Элементы.ГруппаНастройкиСозданияСтраницы.ТекущаяСтраница <> Элементы.ГруппаРеквизитыДляКонтроляНоменклатуры + И (Не Объект.ИспользоватьСерии + И Элементы.ГруппаНастройкиСозданияСтраницы.ТекущаяСтраница = Элементы.ГруппаРеквизитыДляКонтроляСерий + Или Не Объект.ИспользоватьХарактеристики + И Элементы.ГруппаНастройкиСозданияСтраницы.ТекущаяСтраница = Элементы.ГруппаРеквизитыДляКонтроляХарактеристик) Тогда + + Элементы.ГруппаНастройкиСозданияСтраницы.ТекущаяСтраница = Элементы.ГруппаРеквизитыДляКонтроляНоменклатуры; + УстановитьОформлениеНажатойГиперссылки(Элементы.ПоказатьРеквизитыДляКонтроляНоменклатуры, ЦветТекстаФормы); + УстановитьСтандартноеОформлениеГиперссылки(Элементы.ПоказатьРеквизитыДляКонтроляХарактеристик); + УстановитьСтандартноеОформлениеГиперссылки(Элементы.ПоказатьРеквизитыДляКонтроляСерий); + + КонецЕсли; + + Если Элементы.ГруппаНастройкиСозданияСтраницы.ТекущаяСтраница = Элементы.ГруппаРеквизитыДляКонтроляНоменклатуры Тогда + УстановитьОформлениеНажатойГиперссылки(Элементы.ПоказатьРеквизитыДляКонтроляНоменклатуры, ЦветТекстаФормы); + УстановитьСтандартноеОформлениеГиперссылки(Элементы.ПоказатьРеквизитыДляКонтроляХарактеристик); + УстановитьСтандартноеОформлениеГиперссылки(Элементы.ПоказатьРеквизитыДляКонтроляСерий); + КонецЕсли; + + НастроитьПоШаблонуНаименования("ШаблонРабочегоНаименованияНоменклатуры"); + НастроитьПоШаблонуНаименования("ШаблонНаименованияДляПечатиНоменклатуры"); + НастроитьПоШаблонуНаименования("ШаблонРабочегоНаименованияХарактеристики"); + НастроитьПоШаблонуНаименования("ШаблонНаименованияДляПечатиХарактеристики"); + НастроитьПоШаблонуНаименования("ШаблонРабочегоНаименованияСерии"); + + Элементы.РедактироватьШаблонНаименованияДляПечатиНоменклатуры.Доступность = Не ЭтотОбъект.ТолькоПросмотр; + Элементы.РедактироватьШаблонНаименованияДляПечатиХарактеристики.Доступность = Не ЭтотОбъект.ТолькоПросмотр; + Элементы.РедактироватьШаблонРабочегоНаименованияНоменклатуры.Доступность = Не ЭтотОбъект.ТолькоПросмотр; + Элементы.РедактироватьШаблонРабочегоНаименованияХарактеристики.Доступность = Не ЭтотОбъект.ТолькоПросмотр; + Элементы.РедактироватьШаблонРабочегоНаименованияСерии.Доступность = Не ЭтотОбъект.ТолькоПросмотр; + + Если ИспользоватьИндивидуальноеНаименование = "ИспользоватьИндивидуальноеНаименование" Тогда + Элементы.НаименованиеДляПечати.Доступность = Истина; + Иначе + Элементы.НаименованиеДляПечати.Доступность = Ложь; + КонецЕсли; + #КонецОбласти + + #Область ДопРеквизитыИДопСведения + Элементы.СтраницаДопРеквизиты.Видимость = ИспользоватьДополнительныеРеквизитыИСведения; + Элементы.СтраницаДопСведения.Видимость = ИспользоватьДополнительныеРеквизитыИСведения; + + ЕстьПравоДобавленияРеквизитов = ПравоДоступа("Добавление", Метаданные.ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения); + + Элементы.НоменклатураГруппаСоздатьРеквизиты.Видимость = ЕстьПравоДобавленияРеквизитов; + Элементы.ХарактеристикиГруппаСоздатьРеквизиты.Видимость = ЕстьПравоДобавленияРеквизитов; + Элементы.СерииГруппаСоздатьРеквизиты.Видимость = ЕстьПравоДобавленияРеквизитов; + Элементы.НоменклатураГруппаСоздатьСведения.Видимость = ЕстьПравоДобавленияРеквизитов; + Элементы.ХарактеристикиГруппаСоздатьСведения.Видимость = ЕстьПравоДобавленияРеквизитов; + Элементы.СерииГруппаСоздатьСведения.Видимость = ЕстьПравоДобавленияРеквизитов; + #КонецОбласти + + #Область КонтролироватьУникальность + + Элементы.РеквизитыДляКонтроляНоменклатурыДляРазмераЯчейкиУникален.Видимость = КонтролироватьУникальность; + Элементы.РеквизитыДляКонтроляХарактеристикДляРазмераЯчейкиУникален.Видимость = КонтролироватьУникальность; + + #КонецОбласти + + #Область Ценообразование + + НастроитьЗакладкуНастройкиЦенообразования(); + + #КонецОбласти + + ЗначенияРеквизитов = Справочники.ВидыНоменклатуры.ЗначенияРеквизитовСтрогоЗаполняемыеПоОсобенностиУчета(КлючВидовПродукции); + Если ЗначенияРеквизитов <> Неопределено Тогда + Для Каждого КлючЗначение Из ЗначенияРеквизитов Цикл + Если Элементы.Найти(КлючЗначение.Ключ) <> Неопределено Тогда + Элементы[КлючЗначение.Ключ].Доступность = Ложь; + КонецЕсли; + КонецЦикла + КонецЕсли; + + НастроитьПодсказкуПоляКлассификатора(Элементы.КодТНВЭД.Имя, Объект.КодТНВЭД); + НастроитьФормуЛокализация(ВидимостьЭлементов); + +КонецПроцедуры + +&НаСервере +Процедура НастроитьПоШаблонуНаименования(ИмяШаблонаНаименования) + + ИмяРеквизитаЗапретРедактированияНаименования = ИмяРеквизитаЗапретРедактированияНаименования(ИмяШаблонаНаименования); + + Если ИмяРеквизитаЗапретРедактированияНаименования <> "" Тогда + ПолеФормы = Элементы[ИмяРеквизитаЗапретРедактированияНаименования]; // ПолеФормы + ПолеФормы.Доступность = Не ПустаяСтрока(Объект[ИмяШаблонаНаименования]); + ПолеФормы.Видимость = Не МультиязычностьВключена Или Объект[ИмяРеквизитаЗапретРедактированияНаименования]; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПриЧтенииСозданииНаСервере() + + //++ Локализация + ЗаполнитьКлючВидовПродукции(); + ИнтеграцияИС.ИнициализироватьНастройкиФормыДляУстановкиКлючаВидовПродукции(ЭтотОбъект); + ИнтеграцияИС.ЗаполнитьДанныеПоКлючуВидовПродукции(ЭтотОбъект); + КлючВидовПродукцииДоИзменения = КлючВидовПродукции; + НастроитьДоступныеРеквизитыСерий(); + //-- Локализация + + ЕстьПравоРедактирования = НЕ ЗначениеЗаполнено(Объект.Ссылка) + Или Справочники.ГруппыДоступаНоменклатуры.ЕстьПравоИзменения(Объект); + + ОсобенностьУчетаДоИзменения = Объект.ОсобенностьУчета; + + ИспользоватьПроизводство = Справочники.ВидыНоменклатуры.ИспользоватьПроизводство(); + ИспользоватьНесколькоСкладов = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоСкладов"); + ИспользуетсяЦенообразование25 = Параметры.Свойство("ИспользуетсяЦенообразование25") Или ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25(); + ЕстьСкладыБезОрдернойСхемыПриОтраженииИзлишковНедостач = СкладыСервер.ЕстьСкладыБезОрдернойСхемыПриОтраженииИзлишковНедостач(); + ЕстьСкладыОрдерныеНаОтгрузку = СкладыСервер.ЕстьОрдерныйНаОтгрузкуСклад(); + ЕстьСкладыОрдерныеНаПоступление = СкладыСервер.ЕстьОрдерныйНаПоступлениеСклад(); + + // Подсистема запрета редактирования ключевых реквизитов объектов + ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект); + + // Сбросить флаг редактирования общих дополнительных реквизитов (сведений). + РедактируютсяОбщиеРеквизитыСведения = Ложь; + + ОбщееНаименованиеДляПечати = Константы.НаименованиеДляПечатиВидовНоменклатуры.Получить(); + ОбщееНаименованиеДляПечати = ?(ЗначениеЗаполнено(ОбщееНаименованиеДляПечати), ОбщееНаименованиеДляПечати, Нстр("ru = '<не указано>'")); + + ПостроитьДеревоОператоров(); + + ЗаполняемыйОбъект = Объект; + НоменклатураЛокализация.ДополнитьОбъектФормы(ЭтотОбъект, ЗаполняемыйОбъект); + + Справочники.ВидыНоменклатуры.ЗаполнитьРеквизитыДляКонтроля(ЗаполняемыйОбъект, "Номенклатура"); + Справочники.ВидыНоменклатуры.ЗаполнитьДопРеквизитыДляКонтроляИОтбора(ЗаполняемыйОбъект, "Номенклатура"); + + Справочники.ВидыНоменклатуры.ЗаполнитьРеквизитыДляКонтроля(ЗаполняемыйОбъект, "ХарактеристикиНоменклатуры"); + Справочники.ВидыНоменклатуры.ЗаполнитьДопРеквизитыДляКонтроляИОтбора(ЗаполняемыйОбъект, "ХарактеристикиНоменклатуры"); + + Справочники.ВидыНоменклатуры.ЗаполнитьДопРеквизитыДляКонтроляИОтбора(ЗаполняемыйОбъект, "СерииНоменклатуры"); + + НоменклатураЛокализация.ВосстановитьОбъектФормы(ЭтотОбъект, ЗаполняемыйОбъект); + + ЗаполнитьРеквизитыФормыПоРеквизитамОбъекта(); + + СведенияОбЯзыках = МультиязычностьСервер.СведенияОЯзыках(); + + МультиязычностьВключена = Ложь; + + Для Каждого ДопЯзык Из СведенияОбЯзыках.Используется Цикл + Если ДопЯзык.Значение Тогда + МультиязычностьВключена = Истина; + Прервать; + КонецЕсли; + КонецЦикла; + + НастроитьФорму(); + +КонецПроцедуры + +&НаСервере +Процедура ЕдиницаИзмеренияПриИзмененииСервер() + + Если Объект.КоэффициентЕдиницыДляОтчетов = 1 + Или Объект.КоэффициентЕдиницыДляОтчетов = 0 Тогда + Объект.ЕдиницаДляОтчетов = Объект.ЕдиницаИзмерения; + КонецЕсли; + + Если Объект.ЕдиницаДляОтчетов = Объект.ЕдиницаИзмерения Тогда + Объект.КоэффициентЕдиницыДляОтчетов = 1; + КонецЕсли; + + ТипЕдиницы = ""; + + ЭтоМернаяЕдиница = Справочники.УпаковкиЕдиницыИзмерения.ЭтоМернаяЕдиница(Объект.ЕдиницаИзмерения, ТипЕдиницы); + + Если ЭтоМернаяЕдиница Тогда + Объект.ПоставляетсяВМногооборотнойТаре = Ложь; + КонецЕсли; + + НастроитьФорму(); + +КонецПроцедуры + +// Обработчик команды, создаваемой механизмом запрета редактирования ключевых реквизитов. +// +&НаКлиенте +Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъекта(Команда) + + ОткрытьФорму("Справочник.ВидыНоменклатуры.Форма.РазблокированиеРеквизитов",,,,,, + Новый ОписаниеОповещения("Подключаемый_РазрешитьРедактированиеРеквизитовОбъектаЗавершение", ЭтотОбъект), + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъектаЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Если ТипЗнч(Результат) = Тип("Массив") И Результат.Количество() > 0 Тогда + + ЗапретРедактированияРеквизитовОбъектовКлиент.УстановитьДоступностьЭлементовФормы(ЭтотОбъект, Результат); + НастроитьФорму(); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ВключитьПроверкуЗаполненияДляРеквизитовНаСервере() + + Если ПустаяСтрока(Объект.ШаблонНаименованияДляПечатиНоменклатуры) + И ПустаяСтрока(Объект.ШаблонРабочегоНаименованияНоменклатуры) + И Объект.РеквизитыБыстрогоОтбораНоменклатуры.Количество() = 0 Тогда + ТекстПредупреждения = НСтр("ru = 'Настройки проверки заполнения реквизитов номенклатуры не изменены: не заданы ни шаблоны наименований номенклатуры, ни реквизиты, отображаемые в панели быстрого отбора.'"); + + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстПредупреждения); + Иначе + ВключитьПроверкуЗаполненияДляРеквизитовНоменклатурыНаСервере(); + КонецЕсли; + + Если Объект.ИспользоватьХарактеристики Тогда + Если ПустаяСтрока(Объект.ШаблонНаименованияДляПечатиХарактеристики) + И ПустаяСтрока(Объект.ШаблонРабочегоНаименованияХарактеристики) + И Объект.РеквизитыБыстрогоОтбораХарактеристик.Количество() = 0 Тогда + ТекстПредупреждения = НСтр("ru = 'Настройки проверки заполнения реквизитов характеристик не изменены: не заданы ни шаблоны наименований характеристик, ни реквизиты, отображаемые в панели быстрого отбора.'"); + + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстПредупреждения);; + Иначе + ВключитьПроверкуЗаполненияДляРеквизитовХарактеристикНаСервере(); + КонецЕсли; + КонецЕсли; + + Если Объект.ИспользоватьСерии Тогда + Если ПустаяСтрока(Объект.ШаблонРабочегоНаименованияСерии) Тогда + ТекстПредупреждения = НСтр("ru = 'Настройки проверки заполнения серий не изменены: не задан шаблон наименования серий.'"); + + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстПредупреждения);; + Иначе + ВключитьПроверкуЗаполненияДляРеквизитовСерийНаСервере(); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ВключитьПроверкуЗаполненияДляРеквизитовНоменклатурыНаСервере() + + ВключитьПроверкуЗаполненияДляРеквизитовИзШаблоновНоменклатурыНаСервере(); + ВключитьПроверкуЗаполненияДляРеквизитовБыстрогоОтбораНоменклатурыНаСервере(); + +КонецПроцедуры + +&НаСервере +Процедура ВключитьПроверкуЗаполненияДляРеквизитовИзШаблонаНоменклатурыНаСервере(ШаблонНаименования) + + Если Не ЗначениеЗаполнено(ШаблонНаименования) Тогда + Возврат; + КонецЕсли; + + ДополнительныеРеквизиты = Справочники.Номенклатура.ВсеДополнительныеРеквизиты(Объект.Ссылка, "Номенклатура"); + + ОписаниеТиповБулево = Новый ОписаниеТипов("Булево"); + + Отбор = Новый Структура("ИмяРеквизита, Свойство, ЭтоДопРеквизит"); + + ОперандыТекстовойФормулы = РаботаСФормуламиКлиентСервер.ОперандыТекстовойФормулы(ШаблонНаименования); + + Для каждого СтрокаТЧ Из Объект.РеквизитыДляКонтроляНоменклатуры Цикл + + ИмяРеквизита = СтрокаТЧ.ИмяРеквизита; + + РеквизитИспользуетсяВФормуле = (ОперандыТекстовойФормулы.Найти(ИмяРеквизита) <> Неопределено); + + Если Не РеквизитИспользуетсяВФормуле Тогда + Продолжить; + КонецЕсли; + + // Если тип реквизита - Булево, то не включать для него контроль заполнения. + Если СтрокаТЧ.ЭтоДопРеквизит Тогда + + ЗаполнитьЗначенияСвойств(Отбор, СтрокаТЧ); + + НайденныеСтроки = ДополнительныеРеквизиты.НайтиСтроки(Отбор); + + Если НайденныеСтроки.Количество() = 0 Тогда + Продолжить; + КонецЕсли; + + СтрокаДопРеквизитовСведений = НайденныеСтроки[0]; + + ТипЗначенияРеквизита = СтрокаДопРеквизитовСведений.Тип; + + Иначе + + Реквизит = Метаданные.Справочники.Номенклатура.Реквизиты.Найти(ИмяРеквизита); + + Если Реквизит = Неопределено Тогда + Продолжить; + КонецЕсли; + + ТипЗначенияРеквизита = Реквизит.Тип; + + КонецЕсли; + + Если ТипЗначенияРеквизита = ОписаниеТиповБулево Тогда + Продолжить; + КонецЕсли; + + СтрокаТЧ.ЗаполнятьОбязательно = Истина; + СтрокаТЧ.ОтображатьПриСоздании = Истина; + СтрокаТЧ.ДоступностьОтображатьПриСоздании = Ложь; + + Модифицированность = Истина; + + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура ВключитьПроверкуЗаполненияДляРеквизитовИзШаблоновНоменклатурыНаСервере() + + ВключитьПроверкуЗаполненияДляРеквизитовИзШаблонаНоменклатурыНаСервере(Объект.ШаблонРабочегоНаименованияНоменклатуры); + ВключитьПроверкуЗаполненияДляРеквизитовИзШаблонаНоменклатурыНаСервере(Объект.ШаблонНаименованияДляПечатиНоменклатуры); + +КонецПроцедуры + +&НаСервере +Процедура ВключитьПроверкуЗаполненияДляРеквизитовХарактеристикНаСервере() + + ВключитьПроверкуЗаполненияДляРеквизитовИзШаблоновХарактеристикНаСервере(); + ВключитьПроверкуЗаполненияДляРеквизитовБыстрогоОтбораХарактеристикНаСервере(); + +КонецПроцедуры + +&НаСервере +Процедура ВключитьПроверкуЗаполненияДляРеквизитовСерийНаСервере() + + ВключитьПроверкуЗаполненияДляРеквизитовИзШаблоновСерийНаСервере(); + +КонецПроцедуры + +&НаСервере +Процедура ВключитьПроверкуЗаполненияДляРеквизитовИзШаблонаХарактеристикНаСервере(ШаблонНаименованияХарактеристики) + + Если Не ЗначениеЗаполнено(ШаблонНаименованияХарактеристики) Тогда + Возврат; + КонецЕсли; + + ДополнительныеРеквизиты = Справочники.Номенклатура.ВсеДополнительныеРеквизиты(Объект.Ссылка, "ХарактеристикиНоменклатуры"); + + ОписаниеТиповБулево = Новый ОписаниеТипов("Булево"); + + Отбор = Новый Структура("ИмяРеквизита, Свойство, ЭтоДопРеквизит"); + + ОперандыТекстовойФормулы = РаботаСФормуламиКлиентСервер.ОперандыТекстовойФормулы(ШаблонНаименованияХарактеристики); + + Для каждого СтрокаТЧ Из Объект.РеквизитыДляКонтроляХарактеристик Цикл + + ИмяРеквизита = СтрокаТЧ.ИмяРеквизита; + + РеквизитИспользуетсяВФормуле = (ОперандыТекстовойФормулы.Найти(СтрокаТЧ.ИмяРеквизита) <> Неопределено); + + Если Не РеквизитИспользуетсяВФормуле Тогда + Продолжить; + КонецЕсли; + + // Если тип реквизита - Булево, то не включать для него контроль заполнения. + Если СтрокаТЧ.ЭтоДопРеквизит Тогда + + ЗаполнитьЗначенияСвойств(Отбор, СтрокаТЧ); + + НайденныеСтроки = ДополнительныеРеквизиты.НайтиСтроки(Отбор); + + Если НайденныеСтроки.Количество() = 0 Тогда + Продолжить; + КонецЕсли; + + СтрокаДопРеквизитовСведений = НайденныеСтроки[0]; + + ТипЗначенияРеквизита = СтрокаДопРеквизитовСведений.Тип; + + Иначе + + Реквизит = Метаданные.Справочники.ХарактеристикиНоменклатуры.Реквизиты.Найти(ИмяРеквизита); + + Если Реквизит = Неопределено Тогда + Продолжить; + КонецЕсли; + + ТипЗначенияРеквизита = Реквизит.Тип; + + КонецЕсли; + + Если ТипЗначенияРеквизита = ОписаниеТиповБулево Тогда + Продолжить; + КонецЕсли; + + СтрокаТЧ.ЗаполнятьОбязательно = Истина; + СтрокаТЧ.ОтображатьПриСоздании = Истина; + СтрокаТЧ.ДоступностьОтображатьПриСоздании = Ложь; + + Модифицированность = Истина; + + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура ВключитьПроверкуЗаполненияДляРеквизитовИзШаблонаСерийНаСервере(ШаблонНаименованияСерии) + + Если Не ЗначениеЗаполнено(ШаблонНаименованияСерии) Тогда + Возврат; + КонецЕсли; + + ДополнительныеРеквизиты = Справочники.Номенклатура.ВсеДополнительныеРеквизиты(Объект.Ссылка, "СерииНоменклатуры"); + + ОписаниеТиповБулево = Новый ОписаниеТипов("Булево"); + + Отбор = Новый Структура("ИмяРеквизита, Свойство, ЭтоДопРеквизит"); + + ОперандыТекстовойФормулы = РаботаСФормуламиКлиентСервер.ОперандыТекстовойФормулы(ШаблонНаименованияСерии); + + Для каждого СтрокаТЧ Из Объект.РеквизитыДляКонтроляСерий Цикл + + ИмяРеквизита = СтрокаТЧ.ИмяРеквизита; + + РеквизитИспользуетсяВФормуле = (ОперандыТекстовойФормулы.Найти(СтрокаТЧ.ИмяРеквизита) <> Неопределено); + + Если Не РеквизитИспользуетсяВФормуле Тогда + Продолжить; + КонецЕсли; + + // Если тип реквизита - Булево, то не включать для него контроль заполнения. + Если СтрокаТЧ.ЭтоДопРеквизит Тогда + + ЗаполнитьЗначенияСвойств(Отбор, СтрокаТЧ); + + НайденныеСтроки = ДополнительныеРеквизиты.НайтиСтроки(Отбор); + + Если НайденныеСтроки.Количество() = 0 Тогда + Продолжить; + КонецЕсли; + + СтрокаДопРеквизитовСведений = НайденныеСтроки[0]; + + ТипЗначенияРеквизита = СтрокаДопРеквизитовСведений.Тип; + + Иначе + + Реквизит = Метаданные.Справочники.СерииНоменклатуры.Реквизиты.Найти(ИмяРеквизита); + + Если Реквизит = Неопределено Тогда + Продолжить; + КонецЕсли; + + ТипЗначенияРеквизита = Реквизит.Тип; + + КонецЕсли; + + Если ТипЗначенияРеквизита = ОписаниеТиповБулево Тогда + Продолжить; + КонецЕсли; + + СтрокаТЧ.ЗаполнятьОбязательно = Истина; + + Модифицированность = Истина; + + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура ВключитьПроверкуЗаполненияДляРеквизитовИзШаблоновХарактеристикНаСервере() + + ВключитьПроверкуЗаполненияДляРеквизитовИзШаблонаХарактеристикНаСервере(Объект.ШаблонРабочегоНаименованияХарактеристики); + ВключитьПроверкуЗаполненияДляРеквизитовИзШаблонаХарактеристикНаСервере(Объект.ШаблонНаименованияДляПечатиХарактеристики); + +КонецПроцедуры + +&НаСервере +Процедура ВключитьПроверкуЗаполненияДляРеквизитовИзШаблоновСерийНаСервере() + + ВключитьПроверкуЗаполненияДляРеквизитовИзШаблонаСерийНаСервере(Объект.ШаблонРабочегоНаименованияСерии); + +КонецПроцедуры + +&НаСервере +Процедура ВключитьПроверкуЗаполненияДляРеквизитовБыстрогоОтбораНоменклатурыНаСервере() + + Отбор = Новый Структура("ИмяРеквизита"); + + Для каждого СтрокаТЧ Из Объект.РеквизитыДляКонтроляНоменклатуры Цикл + + Отбор.ИмяРеквизита = СтрокаТЧ.ИмяРеквизита; + + РеквизитИспользуетсяДляОтбора = (Объект.РеквизитыБыстрогоОтбораНоменклатуры.НайтиСтроки(Отбор).Количество() <> 0); + + Если РеквизитИспользуетсяДляОтбора Тогда + + СтрокаТЧ.ЗаполнятьОбязательно = Истина; + СтрокаТЧ.ОтображатьПриСоздании = Истина; + СтрокаТЧ.ДоступностьОтображатьПриСоздании = Ложь; + + Модифицированность = Истина; + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура ВключитьПроверкуЗаполненияДляРеквизитовБыстрогоОтбораХарактеристикНаСервере() + + Отбор = Новый Структура("ИмяРеквизита"); + + Для каждого СтрокаТЧ Из Объект.РеквизитыДляКонтроляХарактеристик Цикл + + Отбор.ИмяРеквизита = СтрокаТЧ.ИмяРеквизита; + + Если Объект.РеквизитыБыстрогоОтбораХарактеристик.НайтиСтроки(Отбор).Количество() <> 0 Тогда + + СтрокаТЧ.ЗаполнятьОбязательно = Истина; + СтрокаТЧ.ОтображатьПриСоздании = Истина; + СтрокаТЧ.ДоступностьОтображатьПриСоздании = Ложь; + + Модифицированность = Истина; + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Функция УсловияДоступности() + + УсловияДоступности = Новый Структура; + УсловияДоступности.Вставить("ЭтоНеиспользуемыйДляКонтроляТип"); + УсловияДоступности.Вставить("ТипРеквизитаБулево"); + УсловияДоступности.Вставить("ЗаполнятьОбязательно"); + УсловияДоступности.Вставить("ТолькоЗаполнятьОбязательно", Ложь); + + Возврат УсловияДоступности; + +КонецФункции + +&НаСервере +Процедура ИспользоватьХарактеристикиПриИзмененииНаСервере() + + ЗаполняемыйОбъект = Объект; + НоменклатураЛокализация.ДополнитьОбъектФормы(ЭтотОбъект, ЗаполняемыйОбъект); + + Справочники.ВидыНоменклатуры.ЗаполнитьРеквизитыПоУмолчанию(ЗаполняемыйОбъект); + Справочники.ВидыНоменклатуры.ОтработатьЛогикуСвязиРеквизитов(ЗаполняемыйОбъект); + + НоменклатураЛокализация.ВосстановитьОбъектФормы(ЭтотОбъект, ЗаполняемыйОбъект); + + ЗаполнитьРеквизитыФормыПоРеквизитамОбъекта(); + НастроитьФорму(); + +КонецПроцедуры + +&НаСервере +Процедура ИспользоватьСерииПриИзмененииНаСервере() + + ЗаполняемыйОбъект = Объект; + НоменклатураЛокализация.ДополнитьОбъектФормы(ЭтотОбъект, ЗаполняемыйОбъект); + + Справочники.ВидыНоменклатуры.ЗаполнитьРеквизитыПоУмолчанию(ЗаполняемыйОбъект); + Справочники.ВидыНоменклатуры.ОтработатьЛогикуСвязиРеквизитов(ЗаполняемыйОбъект); + + НоменклатураЛокализация.ВосстановитьОбъектФормы(ЭтотОбъект, ЗаполняемыйОбъект); + + ЗаполнитьРеквизитыФормыПоРеквизитамОбъекта(); + НастроитьФорму(); + +КонецПроцедуры + +&НаСервере +Процедура ИспользоватьУпаковкиПриИзмененииНаСервере() + + Если Объект.ИспользоватьУпаковки Тогда + Объект.ПоставляетсяВМногооборотнойТаре = Ложь; + Объект.НоменклатураМногооборотнаяТара = Неопределено; + Объект.ХарактеристикаМногооборотнаяТара = Неопределено; + КонецЕсли; + + НастроитьФорму(); + +КонецПроцедуры + +&НаСервере +Процедура НаборУпаковокПриИзмененииНаСервере() + + РеквизитыНаборУпаковок = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.НаборУпаковок, + "ЕдиницаИзмерения, ЕдиницаДляОтчетов, КоэффициентЕдиницыДляОтчетов"); + + Если ЗначениеЗаполнено(Объект.НаборУпаковок) + И Объект.НаборУпаковок <> ПредопределенноеЗначение("Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры") Тогда + Объект.ЕдиницаИзмерения = РеквизитыНаборУпаковок.ЕдиницаИзмерения; + КонецЕсли; + Если ЗначениеЗаполнено(РеквизитыНаборУпаковок.ЕдиницаДляОтчетов) Тогда + Объект.ЕдиницаДляОтчетов = РеквизитыНаборУпаковок.ЕдиницаДляОтчетов; + Объект.КоэффициентЕдиницыДляОтчетов = РеквизитыНаборУпаковок.КоэффициентЕдиницыДляОтчетов; + КонецЕсли; + + НастроитьФорму(); + +КонецПроцедуры + +&НаКлиенте +Процедура ИспользоватьИндивидуальноеНаименованиеПриИзменении(Элемент) + + Если ИспользоватьИндивидуальноеНаименование = "ИспользоватьНаименованиеИзКонстанты" Тогда + Объект.НаименованиеДляПечати = ""; + КонецЕсли; + + НастроитьФорму(); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаписатьПередИзменениемПанелиБыстрогоОтбораНоменклатуры() + + ТекстВопроса = НСтр("ru = 'Редактирование состава панели быстрого отбора + |возможно только после записи элемента, записать элемент?'"); + + ПоказатьВопрос(Новый ОписаниеОповещения("ЗаписатьПередИзменениемПанелиБыстрогоОтбораНоменклатурыЗавершение", ЭтотОбъект), + ТекстВопроса, РежимДиалогаВопрос.ОКОтмена,,,НСтр("ru = 'Редактирование панели быстрого отбора'")); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаписатьПередИзменениемПанелиБыстрогоОтбораНоменклатурыЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт + + Если РезультатВопроса = КодВозвратаДиалога.ОК Тогда + Если Записать() Тогда + + ИзменитьПанельБыстрогоОтбораНоменклатуры(); + + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьПанельБыстрогоОтбораНоменклатуры() + + Прочитать(); + + ТекущийТипЭлемента = "ДопРеквизит"; + ТекущийТипВладельцаНабораЭлементов = "Номенклатура"; + + АдресВХранилище = ПоместитьВХранилищеРеквизитыБыстрогоОтбора(); + + СтруктураПараметров = Новый Структура("АдресВХранилище", АдресВХранилище); + + ОткрытьФорму("Справочник.ВидыНоменклатуры.Форма.ФормаРедактированияСоставаРеквизитов", СтруктураПараметров,,,,, Неопределено, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры + +&НаСервере +Функция ПоместитьВХранилищеРеквизитыБыстрогоОтбора() + + КоллекцияРеквизитовОтбора = Справочники.ВидыНоменклатуры.КоллекцияРеквизитовОтбора( + Объект, + ТекущийТипВладельцаНабораЭлементов); + КоллекцияРеквизитовДляКонтроля = Справочники.ВидыНоменклатуры.КоллекцияРеквизитовДляКонтроля( + Объект, + ТекущийТипВладельцаНабораЭлементов); + РеквизитыФормы = ?(ТекущийТипВладельцаНабораЭлементов = "Номенклатура", + Справочники.Номенклатура.РеквизитыФормыТаблицыНастроек(), + Неопределено); + + ТаблицаРеквизитовОтбора = Новый ТаблицаЗначений; + ТаблицаРеквизитовОтбора.Колонки.Добавить("ИмяРеквизита", Новый ОписаниеТипов("Строка")); + ТаблицаРеквизитовОтбора.Колонки.Добавить("ПредставлениеРеквизита", Новый ОписаниеТипов("Строка")); + ТаблицаРеквизитовОтбора.Колонки.Добавить("ЭтоДопРеквизит", Новый ОписаниеТипов("Булево")); + ТаблицаРеквизитовОтбора.Колонки.Добавить("Свойство", Новый ОписаниеТипов("ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения")); + ТаблицаРеквизитовОтбора.Колонки.Добавить("Используется", Новый ОписаниеТипов("Булево")); + + Для Каждого Реквизит Из КоллекцияРеквизитовДляКонтроля Цикл + Если РеквизитыФормы <> Неопределено + И РеквизитыФормы.Получить(Реквизит.ИмяРеквизита) <> Неопределено Тогда + + Продолжить; + + КонецЕсли; + + Если Реквизит.ДоступностьУникален Тогда + НоваяСтрока = ТаблицаРеквизитовОтбора.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрока, Реквизит); + НоваяСтрока.Используется = КоллекцияРеквизитовОтбора.НайтиСтроки(Новый Структура("ИмяРеквизита",Реквизит.ИмяРеквизита)).Количество() > 0; + КонецЕсли; + КонецЦикла; + + ТаблицаРеквизитовОтбора.Сортировать("ПредставлениеРеквизита"); + + Возврат ПоместитьВоВременноеХранилище(ТаблицаРеквизитовОтбора, ЭтотОбъект.УникальныйИдентификатор); + +КонецФункции + +&НаКлиенте +Процедура ЗаписатьПередИзменениемПанелиБыстрогоОтбораХарактеристики() + + ТекстВопроса = НСтр("ru = 'Редактирование состава панели быстрого отбора + |возможно только после записи элемента, записать элемент?'"); + + ПоказатьВопрос(Новый ОписаниеОповещения("ЗаписатьПередИзменениемПанелиБыстрогоОтбораХарактеристикиЗавершение", ЭтотОбъект), + ТекстВопроса, РежимДиалогаВопрос.ОКОтмена,,,НСтр("ru = 'Редактирование панели быстрого отбора'")); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаписатьПередИзменениемПанелиБыстрогоОтбораХарактеристикиЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт + + Если РезультатВопроса = КодВозвратаДиалога.ОК Тогда + Если Записать() Тогда + + ИзменитьПанельБыстрогоОтбораХарактеристики(); + + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьПанельБыстрогоОтбораХарактеристики() + Прочитать(); + + КоличествоДоступных = ТаблицаДопРеквизитовХарактеристик.Количество(); + + Если КоличествоДоступных = 0 Тогда + + ТекстСообщения = НСтр("ru = 'Невозможно отредактировать состав панели быстрого отбора характеристик. + |Не указаны дополнительные реквизиты характеристик. + |Перед редактированием состава панели быстрого отбора нужно настроить состав + |дополнительных реквизитов характеристик.'"); + + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения); + + Возврат; + + КонецЕсли; + + ТекущийТипЭлемента = "ДопРеквизит"; + ТекущийТипВладельцаНабораЭлементов = "ХарактеристикиНоменклатуры"; + + АдресВХранилище = ПоместитьВХранилищеРеквизитыБыстрогоОтбора(); + + СтруктураПараметров = Новый Структура("АдресВХранилище", АдресВХранилище); + + ОткрытьФорму("Справочник.ВидыНоменклатуры.Форма.ФормаРедактированияСоставаРеквизитов", СтруктураПараметров,,,,, Неопределено, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры + +&НаКлиенте +Процедура ДобавитьСкладВПолитикиУчетаСерийЗавершение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт + + Если ТипЗнч(РезультатЗакрытия) <> Тип("СправочникСсылка.Склады") Тогда + Возврат; + КонецЕсли; + + СтрокаПолитика = Объект.ПолитикиУчетаСерий.Добавить(); + СтрокаПолитика.Склад = РезультатЗакрытия; + СтрокаПолитика.ЭтоПолитикаДляСклада = Истина; + + ПослеДобавленияНовогоСкладаПодразделенияВПолитикиУчетаСерий(СтрокаПолитика.Склад, СтрокаПолитика.ПолитикаУчетаСерий); + + СтруктураОтбора = Новый Структура(); + СтруктураОтбора.Вставить("Склад", РезультатЗакрытия); + + НайденныеСтроки = Объект.ПолитикиУчетаСерий.НайтиСтроки(СтруктураОтбора); + Для Каждого СтрокаТаблицы Из НайденныеСтроки Цикл + Элементы.ПолитикиУчетаСерий.ТекущаяСтрока = СтрокаТаблицы.ПолучитьИдентификатор(); + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ДобавитьПодразделениеВПолитикиУчетаСерийЗавершение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт + + Если ТипЗнч(РезультатЗакрытия) <> Тип("СправочникСсылка.СтруктураПредприятия") Тогда + Возврат; + КонецЕсли; + + СтрокаПолитика = Объект.ПолитикиУчетаСерий.Добавить(); + СтрокаПолитика.Склад = РезультатЗакрытия; + СтрокаПолитика.ЭтоПолитикаДляСклада = Ложь; + + ПослеДобавленияНовогоСкладаПодразделенияВПолитикиУчетаСерий(СтрокаПолитика.Склад, СтрокаПолитика.ПолитикаУчетаСерий); + + СтруктураОтбора = Новый Структура(); + СтруктураОтбора.Вставить("Склад", РезультатЗакрытия); + + НайденныеСтроки = Объект.ПолитикиУчетаСерий.НайтиСтроки(СтруктураОтбора); + Для Каждого СтрокаТаблицы Из НайденныеСтроки Цикл + Элементы.ПолитикиУчетаСерий.ТекущаяСтрока = СтрокаТаблицы.ПолучитьИдентификатор(); + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьПредупреждениеПоСкладуКлиент() + + ТекущиеДанные = Элементы.ПолитикиУчетаСерий.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено + Или Не ЗначениеЗаполнено(ТекущиеДанные.Склад) + Или ТипЗнч(ТекущиеДанные.Склад) = Тип("СправочникСсылка.СтруктураПредприятия") Тогда + Элементы.НадписьПодсказкаПолитикиУчетаСерий.Видимость = Ложь; + Возврат; + КонецЕсли; + + Элементы.НадписьПодсказкаПолитикиУчетаСерий.Видимость = Не ЕстьОрдернаяСхема(ТекущиеДанные.Склад); + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ЕстьОрдернаяСхема(Склад) + + Если Не ПолучитьФункциональнуюОпцию("ИспользоватьОрдерныеСклады") Тогда + Возврат Истина; + КонецЕсли; + + Возврат ПолучитьФункциональнуюОпцию("ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач", Новый Структура("Склад", Склад)); + +КонецФункции + +&НаКлиенте +Процедура ИзменитьПанельХарактеристикиДляКлюча() + +// Прочитать(); + + ТекущийТипЭлемента = "ДопРеквизит"; + ТекущийТипВладельцаНабораЭлементов = "ХарактеристикиНоменклатуры"; + + АдресВХранилище = ПоместитьВХранилищеРеквизитыДляКлючаЦен(); + + СтруктураПараметров = Новый Структура("АдресВХранилище, ФункцияОповещения", АдресВХранилище, "ПодборРеквизитовВТаблицуКлючаЦен"); + + ОткрытьФорму("Справочник.ВидыНоменклатуры.Форма.ФормаРедактированияСоставаРеквизитов", СтруктураПараметров,,,,, Неопределено, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьПанельСерииДляКлюча() + +// Прочитать(); + + ТекущийТипЭлемента = "ДопРеквизит"; + ТекущийТипВладельцаНабораЭлементов = "СерииНоменклатуры"; + + АдресВХранилище = ПоместитьВХранилищеРеквизитыДляКлючаЦен(); + + СтруктураПараметров = Новый Структура("АдресВХранилище, ФункцияОповещения", АдресВХранилище, "ПодборРеквизитовВТаблицуКлючаЦен"); + + ОткрытьФорму("Справочник.ВидыНоменклатуры.Форма.ФормаРедактированияСоставаРеквизитов", СтруктураПараметров,,,,, Неопределено, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры + +&НаСервере +Функция ПоместитьВХранилищеРеквизитыДляКлючаЦен() + + КоллекцияРеквизитовКлючаЦен = Справочники.ВидыНоменклатуры.КоллекцияРеквизитовДляКлючаЦен(Объект, ТекущийТипВладельцаНабораЭлементов); + КоллекцияРеквизитовДляКонтроля = Справочники.ВидыНоменклатуры.КоллекцияРеквизитовДляКонтроля(Объект, ТекущийТипВладельцаНабораЭлементов); + + ТаблицаРеквизитовКлючаЦен = Новый ТаблицаЗначений; + ТаблицаРеквизитовКлючаЦен.Колонки.Добавить("ИмяРеквизита", Новый ОписаниеТипов("Строка")); + ТаблицаРеквизитовКлючаЦен.Колонки.Добавить("ПредставлениеРеквизита", Новый ОписаниеТипов("Строка")); + ТаблицаРеквизитовКлючаЦен.Колонки.Добавить("ЭтоДопРеквизит", Новый ОписаниеТипов("Булево")); + ТаблицаРеквизитовКлючаЦен.Колонки.Добавить("Свойство", Новый ОписаниеТипов("ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения")); + ТаблицаРеквизитовКлючаЦен.Колонки.Добавить("Используется", Новый ОписаниеТипов("Булево")); + + Если ТекущийТипВладельцаНабораЭлементов = "СерииНоменклатуры" Тогда + + ДобавляемыйРеквизит = Новый Структура("ИмяРеквизита, ПредставлениеРеквизита"); + + Если Объект.ИспользоватьНомерСерии Тогда + + ДобавляемыйРеквизит.ИмяРеквизита = "Номер"; + ДобавляемыйРеквизит.ПредставлениеРеквизита = НСтр("ru = 'Номер'"); + ДобавитьРеквизитВТаблицуРеквизитовКлючаЦен(ТаблицаРеквизитовКлючаЦен, КоллекцияРеквизитовКлючаЦен, ДобавляемыйРеквизит); + + КонецЕсли; + + Если Объект.ТочностьУказанияСрокаГодностиСерии = Перечисления.ТочностиУказанияСрокаГодности.СТочностьюДоМесяцев Тогда + ПредставлениеТочностиУказания = НСтр("ru = 'месяц, год'"); + ИначеЕсли Объект.ТочностьУказанияСрокаГодностиСерии = Перечисления.ТочностиУказанияСрокаГодности.СТочностьюДоДней Тогда + ПредставлениеТочностиУказания = НСтр("ru = 'дата'"); + ИначеЕсли Объект.ТочностьУказанияСрокаГодностиСерии = Перечисления.ТочностиУказанияСрокаГодности.СТочностьюДоЧасов Тогда + ПредставлениеТочностиУказания = НСтр("ru = 'дата, час'"); + Иначе + ПредставлениеТочностиУказания = ""; + КонецЕсли; + + Если Объект.ИспользоватьСрокГодностиСерии Тогда + ПредставлениеРеквизита = НСтр("ru = 'Годен до (%ТочностьУказания%)'"); + ПредставлениеРеквизита = СтрЗаменить(ПредставлениеРеквизита, "%ТочностьУказания%", ПредставлениеТочностиУказания); + + ДобавляемыйРеквизит.ИмяРеквизита= "ГоденДо"; + ДобавляемыйРеквизит.ПредставлениеРеквизита = ПредставлениеРеквизита; + ДобавитьРеквизитВТаблицуРеквизитовКлючаЦен(ТаблицаРеквизитовКлючаЦен, КоллекцияРеквизитовКлючаЦен, ДобавляемыйРеквизит); + КонецЕсли; + + Если Объект.ИспользоватьДатуПроизводстваСерии Тогда + ПредставлениеРеквизита = НСтр("ru = 'Дата производства (%ТочностьУказания%)'"); + ПредставлениеРеквизита = СтрЗаменить(ПредставлениеРеквизита, "%ТочностьУказания%", ПредставлениеТочностиУказания); + + ДобавляемыйРеквизит.ИмяРеквизита = "ДатаПроизводства"; + ДобавляемыйРеквизит.ПредставлениеРеквизита = ПредставлениеРеквизита; + ДобавитьРеквизитВТаблицуРеквизитовКлючаЦен(ТаблицаРеквизитовКлючаЦен, КоллекцияРеквизитовКлючаЦен, ДобавляемыйРеквизит); + КонецЕсли; + + Если Объект.ИспользоватьНомерКИЗГИСМСерии Тогда + ДобавляемыйРеквизит.ИмяРеквизита = "НомерКиЗГИСМ"; + ДобавляемыйРеквизит.ПредставлениеРеквизита = НСтр("ru = '%1'"); + ДобавляемыйРеквизит.ПредставлениеРеквизита = СтрШаблон(ДобавляемыйРеквизит.ПредставлениеРеквизита, "КиЗ"); + ДобавитьРеквизитВТаблицуРеквизитовКлючаЦен(ТаблицаРеквизитовКлючаЦен, КоллекцияРеквизитовКлючаЦен, ДобавляемыйРеквизит); + КонецЕсли; + + Если Объект.ИспользоватьПроизводителяЕГАИССерии Тогда + ДобавляемыйРеквизит.ИмяРеквизита = "ПроизводительЕГАИС"; + ДобавляемыйРеквизит.ПредставлениеРеквизита = НСтр("ru = 'Производитель (ЕГАИС)'"); + ДобавитьРеквизитВТаблицуРеквизитовКлючаЦен(ТаблицаРеквизитовКлючаЦен, КоллекцияРеквизитовКлючаЦен, ДобавляемыйРеквизит); + КонецЕсли; + + Если Объект.ИспользоватьСправку2ЕГАИССерии Тогда + ДобавляемыйРеквизит.ИмяРеквизита = "Справка2ЕГАИС"; + ДобавляемыйРеквизит.ПредставлениеРеквизита = НСтр("ru = 'Справка 2 (ЕГАИС)'"); + ДобавитьРеквизитВТаблицуРеквизитовКлючаЦен(ТаблицаРеквизитовКлючаЦен, КоллекцияРеквизитовКлючаЦен, ДобавляемыйРеквизит); + КонецЕсли; + + Если Объект.ИспользоватьПроизводителяВЕТИССерии Тогда + ДобавляемыйРеквизит.ИмяРеквизита = "ПроизводительВЕТИС"; + ДобавляемыйРеквизит.ПредставлениеРеквизита = НСтр("ru = 'Производитель (%1)'"); + ДобавляемыйРеквизит.ПредставлениеРеквизита = СтрШаблон(ДобавляемыйРеквизит.ПредставлениеРеквизита, "ВетИС"); + ДобавитьРеквизитВТаблицуРеквизитовКлючаЦен(ТаблицаРеквизитовКлючаЦен, КоллекцияРеквизитовКлючаЦен, ДобавляемыйРеквизит); + КонецЕсли; + + Если Объект.ИспользоватьЗаписьСкладскогоЖурналаВЕТИССерии Тогда + ДобавляемыйРеквизит.ИмяРеквизита = "ЗаписьСкладскогоЖурналаВЕТИС"; + ДобавляемыйРеквизит.ПредставлениеРеквизита = НСтр("ru = 'Запись складского журнала (%1)'"); + ДобавляемыйРеквизит.ПредставлениеРеквизита = СтрШаблон(ДобавляемыйРеквизит.ПредставлениеРеквизита, "ВетИС"); + ДобавитьРеквизитВТаблицуРеквизитовКлючаЦен(ТаблицаРеквизитовКлючаЦен, КоллекцияРеквизитовКлючаЦен, ДобавляемыйРеквизит); + КонецЕсли; + + Если Объект.ИспользоватьИдентификаторПартииВЕТИССерии Тогда + ДобавляемыйРеквизит.ИмяРеквизита = "ИдентификаторПартииВЕТИС"; + ДобавляемыйРеквизит.ПредставлениеРеквизита = НСтр("ru = 'Идентификатор партии (%1)'"); + ДобавляемыйРеквизит.ПредставлениеРеквизита = СтрШаблон(ДобавляемыйРеквизит.ПредставлениеРеквизита, "ВетИС"); + ДобавитьРеквизитВТаблицуРеквизитовКлючаЦен(ТаблицаРеквизитовКлючаЦен, КоллекцияРеквизитовКлючаЦен, ДобавляемыйРеквизит); + КонецЕсли; + КонецЕсли; + + Для Каждого Реквизит Из КоллекцияРеквизитовДляКонтроля Цикл + + Если Реквизит.ЗаполнятьОбязательно Тогда + НоваяСтрока = ТаблицаРеквизитовКлючаЦен.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрока, Реквизит); + НоваяСтрока.Используется = КоллекцияРеквизитовКлючаЦен.НайтиСтроки(Новый Структура("ИмяРеквизита",Реквизит.ИмяРеквизита)).Количество() > 0; + КонецЕсли; + + КонецЦикла; + + ТаблицаРеквизитовКлючаЦен.Сортировать("ПредставлениеРеквизита"); + + Возврат ПоместитьВоВременноеХранилище(ТаблицаРеквизитовКлючаЦен, ЭтотОбъект.УникальныйИдентификатор); + +КонецФункции + +&НаСервере +Процедура ДобавитьРеквизитВТаблицуРеквизитовКлючаЦен(ТаблицаРеквизитовКлючаЦен, КоллекцияРеквизитовКлючаЦен, Знач ДобавляемыйРеквизит) + + НоваяСтрока = ТаблицаРеквизитовКлючаЦен.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрока, ДобавляемыйРеквизит); +// НоваяСтрока.ИмяРеквизита = ДобавляемыйРеквизит.ИмяРеквизита; +// НоваяСтрока.ПредставлениеРеквизита = ДобавляемыйРеквизит.ПредставлениеРеквизита; + НоваяСтрока.ЭтоДопРеквизит = Ложь; + НоваяСтрока.Используется = КоллекцияРеквизитовКлючаЦен.НайтиСтроки(Новый Структура("ИмяРеквизита",ДобавляемыйРеквизит.ИмяРеквизита)).Количество() > 0; +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура ТипНоменклатурыПриИзмененииСервер() + + Перечисления.ОсобенностиУчетаНоменклатуры.ОбработатьИзменениеТипаНоменклатуры(Объект.ТипНоменклатуры, + Объект.ОсобенностьУчета); + + ЗаполняемыйОбъект = Объект; + НоменклатураЛокализация.ДополнитьОбъектФормы(ЭтотОбъект, ЗаполняемыйОбъект); + + Справочники.ВидыНоменклатуры.ЗаполнитьРеквизитыПоУмолчанию(ЗаполняемыйОбъект); + Справочники.ВидыНоменклатуры.ОтработатьЛогикуСвязиРеквизитов(ЗаполняемыйОбъект); + + Справочники.ВидыНоменклатуры.ЗаполнитьРеквизитыДляКонтроля(ЗаполняемыйОбъект, "Номенклатура"); + + НоменклатураЛокализация.ВосстановитьОбъектФормы(ЭтотОбъект, ЗаполняемыйОбъект); + + ЗаполнитьРеквизитыФормыПоРеквизитамОбъекта(); + + НастроитьФорму(); + ОсобенностьУчетаДоИзменения = Объект.ОсобенностьУчета; + +КонецПроцедуры + +&НаСервере +Процедура УстановитьУсловноеОформление() + + УсловноеОформление.Элементы.Очистить(); + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ПолитикиУчетаСерийПолитикаУчетаСерий.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ПолитикиУчетаСерий.Склад"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено; + + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы); + Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь); + Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<выберите склад>'")); + Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина); + + // + + УстановитьУсловноеОформлениеРеквизитыДляКонтроля( + "РеквизитыДляКонтроляНоменклатуры", + "ТаблицаДопРеквизитовНоменклатуры", + "ТаблицаДопРеквизитовСерий"); + УстановитьУсловноеОформлениеРеквизитыДляКонтроля( + "РеквизитыДляКонтроляХарактеристик", + "ТаблицаДопРеквизитовХарактеристик", + "ТаблицаДопРеквизитовХарактеристик"); + УстановитьУсловноеОформлениеРеквизитыДляКонтроля( + "РеквизитыДляКонтроляСерий", + "ТаблицаДопРеквизитовСерий", + "ТаблицаДопРеквизитовСерий"); + + Если ПолучитьФункциональнуюОпцию("ИспользоватьУпаковкиНоменклатуры") Тогда + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ИспользованиеУпаковокОбщийНабор.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Элементы.ИспользоватьУпаковки.ТолькоПросмотр; + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ИспользованиеУпаковокИндивидуальныйНабор.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Элементы.ИспользоватьУпаковки.ТолькоПросмотр; + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина); + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура УстановитьУсловноеОформлениеРеквизитыДляКонтроля(ИмяТаблицыРеквизитыДляКонтроля, ИмяТаблицыДопРеквизитов, ИмяТаблицыДопСведений) + + ЭтоТаблицаРеквизитыКонтроляСерий = (ИмяТаблицыРеквизитыДляКонтроля = "РеквизитыДляКонтроляСерий"); + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ЭлементФормы = Элементы[ИмяТаблицыДопРеквизитов]; // ТаблицаФормы + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементФормы.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяТаблицыДопРеквизитов + ".ОбщееСвойство"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ЭлементФормы = Элементы[ИмяТаблицыДопСведений]; // ТаблицаФормы + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементФормы.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяТаблицыДопСведений + ".ОбщееСвойство"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ЭлементФормы = Элементы[ИмяТаблицыРеквизитыДляКонтроля + "ЗаполнятьОбязательно"]; // ПолеФормы + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементФормы.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект." + ИмяТаблицыРеквизитыДляКонтроля + ".ДоступностьЗаполнятьОбязательно"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + + Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина); + + // + Если Не ЭтоТаблицаРеквизитыКонтроляСерий Тогда + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ЭлементФормы = Элементы[ИмяТаблицыРеквизитыДляКонтроля + "ОтображатьПриСоздании"]; // ПолеФормы + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементФормы.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект." + ИмяТаблицыРеквизитыДляКонтроля + ".ДоступностьОтображатьПриСоздании"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + + Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ЭлементФормы = Элементы[ИмяТаблицыРеквизитыДляКонтроля + "Уникален"]; // ПолеФормы + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементФормы.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект." + ИмяТаблицыРеквизитыДляКонтроля + ".ДоступностьУникален"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + + Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина); + КонецЕсли; + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ЭлементФормы = Элементы[ИмяТаблицыРеквизитыДляКонтроля + "ПредставлениеРеквизитаГиперссылка"]; // ПолеФормы + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементФормы.Имя); + + Если Не ЭтоТаблицаРеквизитыКонтроляСерий Тогда + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ЭлементФормы = Элементы[ИмяТаблицыРеквизитыДляКонтроля + "ВиденСУсловием"]; // ПолеФормы + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементФормы.Имя); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ЭлементФормы = Элементы[ИмяТаблицыРеквизитыДляКонтроля + "ДоступенСУсловием"]; // ПолеФормы + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементФормы.Имя); + КонецЕсли; + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект." + ИмяТаблицыРеквизитыДляКонтроля + ".ЭтоДопРеквизит"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + + Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ЭлементФормы = Элементы[ИмяТаблицыРеквизитыДляКонтроля + "ПредставлениеРеквизита"]; // ПолеФормы + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементФормы.Имя); + + Если Не ЭтоТаблицаРеквизитыКонтроляСерий Тогда + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ЭлементФормы = Элементы[ИмяТаблицыРеквизитыДляКонтроля + "ДляРазмераЯчейкиВиденСУсловием"]; // ПолеФормы + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементФормы.Имя); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ЭлементФормы = Элементы[ИмяТаблицыРеквизитыДляКонтроля + "ДляРазмераЯчейкиДоступенСУсловием"]; // ПолеФормы + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементФормы.Имя); + КонецЕсли; + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект." + ИмяТаблицыРеквизитыДляКонтроля + ".ЭтоДопРеквизит"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ЭлементФормы = Элементы[ИмяТаблицыРеквизитыДляКонтроля + "ДляРазмераЯчейкиЗаполнятьОбязательно"]; // ПолеФормы + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементФормы.Имя); + + ГруппаОтбора = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); + ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли; + + ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект." + ИмяТаблицыРеквизитыДляКонтроля + ".ЭтоДопРеквизит"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + + ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект." + ИмяТаблицыРеквизитыДляКонтроля + ".ЗаполнятьОбязательно"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + + Элемент.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ЭлементФормы = Элементы[ИмяТаблицыРеквизитыДляКонтроля + "ДляРазмераЯчейкиЗаполнятьОбязательно"]; // ПолеФормы + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементФормы.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект." + ИмяТаблицыРеквизитыДляКонтроля + ".ЭтоДопРеквизит"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + //Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ГиперссылкаЦвет); + Элемент.Оформление.УстановитьЗначениеПараметра("Формат", НСтр("ru = 'БЛ=''всегда''; БИ=''с условием'''")); + + // + + Если Не ЭтоТаблицаРеквизитыКонтроляСерий Тогда + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ЭлементФормы = Элементы[ИмяТаблицыРеквизитыДляКонтроля + "ДляРазмераЯчейкиДоступенСУсловием"]; // ПолеФормы + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементФормы.Имя); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ЭлементФормы = Элементы[ИмяТаблицыРеквизитыДляКонтроля + "ДляРазмераЯчейкиВиденСУсловием"]; // ПолеФормы + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементФормы.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект." + ИмяТаблицыРеквизитыДляКонтроля + ".ЭтоДопРеквизит"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + + Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<для доп. реквизитов>'")); + Элемент.Оформление.УстановитьЗначениеПараметра("Доступность", Ложь); + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ЭлементФормы = Элементы[ИмяТаблицыРеквизитыДляКонтроля + "ДоступенСУсловием"]; // ПолеФормы + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементФормы.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект." + ИмяТаблицыРеквизитыДляКонтроля + ".ЭтоДопРеквизит"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + //Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ГиперссылкаЦвет); + Элемент.Оформление.УстановитьЗначениеПараметра("Формат", НСтр("ru = 'БЛ=''доступен всегда''; БИ=''доступен с условием'''")); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ЭлементФормы = Элементы[ИмяТаблицыРеквизитыДляКонтроля + "ВиденСУсловием"]; // ПолеФормы + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементФормы.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект." + ИмяТаблицыРеквизитыДляКонтроля + ".ЭтоДопРеквизит"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + //Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ГиперссылкаЦвет); + Элемент.Оформление.УстановитьЗначениеПараметра("Формат", НСтр("ru = 'БЛ=''виден всегда''; БИ=''виден с условием'''")); + + // + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПоказатьРеквизитыДляКонтроляНоменклатуры(Команда) + Элементы.ГруппаНастройкиСозданияСтраницы.ТекущаяСтраница = Элементы.ГруппаРеквизитыДляКонтроляНоменклатуры; + УстановитьОформлениеНажатойГиперссылки(Элементы.ПоказатьРеквизитыДляКонтроляНоменклатуры, ЦветТекстаФормы); + УстановитьСтандартноеОформлениеГиперссылки(Элементы.ПоказатьРеквизитыДляКонтроляХарактеристик); + УстановитьСтандартноеОформлениеГиперссылки(Элементы.ПоказатьРеквизитыДляКонтроляСерий); +КонецПроцедуры + +&НаКлиенте +Процедура ПоказатьРеквизитыДляКонтроляХарактеристик(Команда) + Элементы.ГруппаНастройкиСозданияСтраницы.ТекущаяСтраница = Элементы.ГруппаРеквизитыДляКонтроляХарактеристик; + УстановитьСтандартноеОформлениеГиперссылки(Элементы.ПоказатьРеквизитыДляКонтроляНоменклатуры); + УстановитьОформлениеНажатойГиперссылки(Элементы.ПоказатьРеквизитыДляКонтроляХарактеристик, ЦветТекстаФормы); + УстановитьСтандартноеОформлениеГиперссылки(Элементы.ПоказатьРеквизитыДляКонтроляСерий); +КонецПроцедуры + +&НаКлиенте +Процедура ПоказатьРеквизитыДляКонтроляСерий(Команда) + Элементы.ГруппаНастройкиСозданияСтраницы.ТекущаяСтраница = Элементы.ГруппаРеквизитыДляКонтроляСерий; + УстановитьСтандартноеОформлениеГиперссылки(Элементы.ПоказатьРеквизитыДляКонтроляНоменклатуры); + УстановитьСтандартноеОформлениеГиперссылки(Элементы.ПоказатьРеквизитыДляКонтроляХарактеристик); + УстановитьОформлениеНажатойГиперссылки(Элементы.ПоказатьРеквизитыДляКонтроляСерий, ЦветТекстаФормы); +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Процедура УстановитьСтандартноеОформлениеГиперссылки(Кнопка) + + Кнопка.Шрифт = Новый Шрифт; + Кнопка.ЦветТекста = Новый Цвет; + +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Процедура УстановитьОформлениеНажатойГиперссылки(Кнопка, ЦветТекста) + + Кнопка.Шрифт = Новый Шрифт(,,Истина); + Кнопка.ЦветТекста = ЦветТекста; + +КонецПроцедуры + +&НаСервере +Процедура УстановитьРеквизитыЦенообразования() + + Справочники.ВидыНоменклатуры.УстановитьРеквизитыЦенообразованияПоУмолчанию(Объект); + НастроитьФорму(); + +КонецПроцедуры + +&НаКлиенте +Процедура ВыбратьВидВладелец(ЗначащаяЧастьИмениНадписи) + + ПараметрыФормыВыбора = Новый Структура; + ПараметрыФормыВыбора.Вставить("ТекущийВид", Объект.Ссылка); + ПараметрыФормыВыбора.Вставить("ВыборГруппИЭлементов", ИспользованиеГруппИЭлементов.Элементы); + + ОтборФормыВыбора = ЭтотОбъект[ИмяРеквизитаОтборВладельца(ЗначащаяЧастьИмениНадписи)]; + + ПараметрыФормыВыбора.Вставить("Отбор", ОтборФормыВыбора); + + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("ЗначащаяЧастьИмениНадписи", ЗначащаяЧастьИмениНадписи); + + ОписаниеОповещения = Новый ОписаниеОповещения("ВыбратьВидВладелецЗавершение", ЭтотОбъект, ДополнительныеПараметры); + + ОткрытьФорму("Справочник.ВидыНоменклатуры.Форма.ФормаВыбора", + ПараметрыФормыВыбора, + ЭтотОбъект, + , + , + , + ОписаниеОповещения, + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры + +&НаКлиенте +Процедура ВыбратьВидВладелецЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Если Не ЗначениеЗаполнено(Результат) Тогда + НастроитьФорму(); + Иначе + Объект[ИмяРеквизитаВладельца(ДополнительныеПараметры.ЗначащаяЧастьИмениНадписи)] = Результат; + ВыбратьВидВладелецСервер(ДополнительныеПараметры.ЗначащаяЧастьИмениНадписи); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ВыбратьВидВладелецСервер(ЗначащаяЧастьИмениНадписи) + + Справочники.ВидыНоменклатуры.УстановитьРеквизитыЦенообразованияПоУмолчанию(Объект); + ЗаполнитьСписокВидовНоменклатурыСТемЖеВладельцем(ЗначащаяЧастьИмениНадписи); + НастроитьФорму(); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьСписокВидовНоменклатурыСТемЖеВладельцем(ЗначащаяЧастьИмениНадписи) + + Особенности = ОсобенностиВыводаНадписиПоВладельцу(ЗначащаяЧастьИмениНадписи); + + СписокВидов = ЭтотОбъект[ИмяСпискаВидыНоменклатурыСТемЖеВладельцем(ЗначащаяЧастьИмениНадписи)]; + ВидВладелец = Объект[ИмяРеквизитаВладельца(ЗначащаяЧастьИмениНадписи)]; + + Если (Не Особенности.ЭтотВидСамЯвляетсяВладельцем + И Не ЗначениеЗаполнено(ВидВладелец)) + Или Не Особенности.НуженТекстВНадписи Тогда + СписокВидов.Очистить(); + Возврат; + КонецЕсли; + + ТекстЗапроса = + "ВЫБРАТЬ + | ВидыНоменклатуры.Ссылка КАК Ссылка + |ИЗ + | Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры + |ГДЕ + | &РеквизитВладелец = &ВидВладелец + | И &ВидВладелец <> ЗНАЧЕНИЕ(Справочник.ВидыНоменклатуры.ПустаяСсылка) + | И ВидыНоменклатуры.Ссылка <> &Ссылка + | И НЕ ВидыНоменклатуры.ПометкаУдаления"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&РеквизитВладелец", "ВидыНоменклатуры." + ИмяРеквизитаВладельца(ЗначащаяЧастьИмениНадписи)); + + Запрос = Новый Запрос; + Запрос.Текст = ТекстЗапроса; + Если Особенности.ЭтотВидСамЯвляетсяВладельцем Тогда + Запрос.УстановитьПараметр("ВидВладелец", Объект.Ссылка); + Иначе + Запрос.УстановитьПараметр("ВидВладелец", ВидВладелец); + КонецЕсли; + Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка); + + СписокВидов.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка")); + +КонецПроцедуры + +&НаСервере +Функция ОсобенностиВыводаНадписиПоВладельцу(ЗначащаяЧастьИмениНадписи) + Особенности = Новый Структура("ЭтотВидСамЯвляетсяВладельцем,НуженТекстВНадписи,МожноРедактироватьВладельца"); + + Особенности.ЭтотВидСамЯвляетсяВладельцем = Ложь; + Особенности.НуженТекстВНадписи = Ложь; + Особенности.МожноРедактироватьВладельца = Ложь; + + Если ЗначащаяЧастьИмениНадписи = "ТоварныхКатегорий" Тогда + Если Не Объект.ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры Тогда + Особенности.ЭтотВидСамЯвляетсяВладельцем = Истина; + КонецЕсли; + + Особенности.НуженТекстВНадписи = ПолучитьФункциональнуюОпцию("ИспользоватьТоварныеКатегории"); + Особенности.МожноРедактироватьВладельца = Не Элементы.НастройкаТоварныхКатегорий.ТолькоПросмотр; + + ИначеЕсли ЗначащаяЧастьИмениНадписи = "Серий" Тогда + Если Не Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры Тогда + Особенности.ЭтотВидСамЯвляетсяВладельцем = Истина; + КонецЕсли; + + Особенности.НуженТекстВНадписи = Объект.ИспользоватьСерии; + Особенности.МожноРедактироватьВладельца = Не Элементы.ИспользоватьСерии.ТолькоПросмотр; + + ИначеЕсли ЗначащаяЧастьИмениНадписи = "Характеристик" Тогда + Если Объект.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры Тогда + Особенности.ЭтотВидСамЯвляетсяВладельцем = Истина; + КонецЕсли; + + Особенности.НуженТекстВНадписи = Объект.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры + Или Объект.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры; + Особенности.МожноРедактироватьВладельца = Не Элементы.ИспользованиеХарактеристик.ТолькоПросмотр; + + КонецЕсли; + + Возврат Особенности; +КонецФункции + +&НаСервере +Функция ОсобенностиВыводаНадписиИзмененияНабораРеквизитовЦенообразования(ЗначащаяЧастьИмениНадписи) + Особенности = Новый Структура("НуженТекстВНадписи,МожноРедактировать"); + + Особенности.НуженТекстВНадписи = Ложь; + Особенности.МожноРедактировать = Ложь; + + Если ЗначащаяЧастьИмениНадписи = "Серии" Тогда + + Особенности.НуженТекстВНадписи = Объект.НастройкиКлючаЦенПоСерии = Перечисления.ВариантОтбораДляКлючаЦен.ИспользоватьПоРеквизитам; + Особенности.МожноРедактировать = Не Элементы.НастройкиКлючаЦенПоСерии.ТолькоПросмотр; + + ИначеЕсли ЗначащаяЧастьИмениНадписи = "Характеристики" Тогда + + Особенности.НуженТекстВНадписи = Объект.НастройкиКлючаЦенПоХарактеристике = Перечисления.ВариантОтбораДляКлючаЦен.ИспользоватьПоРеквизитам; + Особенности.МожноРедактировать = Не Элементы.НастройкиКлючаЦенПоХарактеристике.ТолькоПросмотр; + + КонецЕсли; + + Возврат Особенности; +КонецФункции + +&НаСервере +Процедура СформироватьНадписьПоВидуВладельцу(ЗначащаяЧастьИмениНадписи); + Особенности = ОсобенностиВыводаНадписиПоВладельцу(ЗначащаяЧастьИмениНадписи); + + МассивСтрок = Новый Массив; + Если Особенности.НуженТекстВНадписи Тогда + + СписокВидов = ЭтотОбъект[ИмяСпискаВидыНоменклатурыСТемЖеВладельцем(ЗначащаяЧастьИмениНадписи)]; + ПредставлениеКоличестваВидов = ""; + + Если Особенности.ЭтотВидСамЯвляетсяВладельцем Тогда + + Если ЗначащаяЧастьИмениНадписи <> "Серий" Тогда + МассивСтрок.Добавить(Новый ФорматированнаяСтрока(НСтр("ru = 'Список'"),,,,"ОткрытьСписок")); + Если СписокВидов.Количество() > 0 Тогда + МассивСтрок.Добавить(" "); + МассивСтрок.Добавить(НСтр("ru = 'используется еще в'")); + МассивСтрок.Добавить(" "); + ПредставлениеКоличестваВидов = СтроковыеФункцииКлиентСервер.ЧислоЦифрамиПредметИсчисленияПрописью(СписокВидов.Количество(), + НСтр("ru = 'виде,видах,видах'")); + КонецЕсли; + Иначе + Если СписокВидов.Количество() > 0 Тогда + МассивСтрок.Добавить(" "); + МассивСтрок.Добавить(НСтр("ru = 'и еще'")); + МассивСтрок.Добавить(" "); + ПредставлениеКоличестваВидов = СтроковыеФункцииКлиентСервер.ЧислоЦифрамиПредметИсчисленияПрописью(СписокВидов.Количество(), + НСтр("ru = 'вида,видов,видов'")); + КонецЕсли; + КонецЕсли; + + Иначе + ВидВладелец = Объект[ИмяРеквизитаВладельца(ЗначащаяЧастьИмениНадписи)]; + + Если Не ЗначениеЗаполнено(ВидВладелец) Тогда + МассивСтрок.Добавить(Новый ФорматированнаяСтрока(НСтр("ru = '<вид не выбран>'"),Новый Шрифт(,,Истина),ЦветаСтиля.ЦветОсобогоТекста)); + МассивСтрок.Добавить(" "); + МассивСтрок.Добавить(Новый ФорматированнаяСтрока(НСтр("ru = 'Выбрать'"),,,,"ИзменитьВладельца")); + Иначе + + ПредставлениеВида = ОбщегоНазначенияУТКлиентСервер.ПредставлениеСтрокиСДлинойНеБолее(Строка(ВидВладелец), 40); + МассивСтрок.Добавить(Новый ФорматированнаяСтрока(ПредставлениеВида,,,,"ОткрытьВладельца")); + + Если Особенности.МожноРедактироватьВладельца Тогда + МассивСтрок.Добавить(" ("); + МассивСтрок.Добавить(Новый ФорматированнаяСтрока(НСтр("ru = 'изменить'"),,,,"ИзменитьВладельца")); + МассивСтрок.Добавить(")"); + КонецЕсли; + + Если СписокВидов.Количество() > 0 Тогда + МассивСтрок.Добавить(" "); + МассивСтрок.Добавить(НСтр("ru = 'и еще с'")); + МассивСтрок.Добавить(" "); + ПредставлениеКоличестваВидов = СтроковыеФункцииКлиентСервер.ЧислоЦифрамиПредметИсчисленияПрописью(СписокВидов.Количество(), + НСтр("ru = 'видом,видами,видами'")); + КонецЕсли; + КонецЕсли; + КонецЕсли; + + Если Не ПустаяСтрока(ПредставлениеКоличестваВидов) Тогда + МассивСтрок.Добавить(Новый ФорматированнаяСтрока(ПредставлениеКоличестваВидов, + , + , + , + "ОткрытьСписокВидовСТемЖеВладельцем")); + КонецЕсли; + КонецЕсли; + ЭлементФормы = Элементы[ИмяРеквизитаВладельца(ЗначащаяЧастьИмениНадписи)]; // ДекорацияФормы + ЭлементФормы.Заголовок = Новый ФорматированнаяСтрока(МассивСтрок); + +КонецПроцедуры + +&НаСервере +Процедура СформироватьНадписьРазрезаЦенообразования(ЗначащаяЧастьИмениНадписи); + Особенности = ОсобенностиВыводаНадписиИзмененияНабораРеквизитовЦенообразования(ЗначащаяЧастьИмениНадписи); + + Если Особенности.НуженТекстВНадписи Тогда + + МассивСтрок = Новый Массив; + + Если ЗначащаяЧастьИмениНадписи = "Характеристики" Тогда + + МассивОписанияРеквизитов = ПолучитьДанныеПоРеквизитамДляКлючаЦен(ЗначащаяЧастьИмениНадписи); + + Если МассивОписанияРеквизитов.Количество() Тогда + + МассивСтрок.Добавить("<"); + МассивСтрок.Добавить(СтрСоединить(МассивОписанияРеквизитов, ", ")); + МассивСтрок.Добавить(">"); + + Иначе + + МассивСтрок.Добавить(НСтр("ru = '<Реквизиты не выбраны>'")); + + КонецЕсли; + + ЭлементФормы = Элементы.ИзменитьНаборРеквизитовДляКлючаЦен_Характеристики; + + ИначеЕсли ЗначащаяЧастьИмениНадписи = "Серии" Тогда + + МассивОписанияРеквизитов = ПолучитьДанныеПоРеквизитамДляКлючаЦен(ЗначащаяЧастьИмениНадписи); + + Если МассивОписанияРеквизитов.Количество() Тогда + + МассивСтрок.Добавить("<"); + МассивСтрок.Добавить(СтрСоединить(МассивОписанияРеквизитов, ", ")); + МассивСтрок.Добавить(">"); + + Иначе + + МассивСтрок.Добавить(НСтр("ru = '<Реквизиты не выбраны>'")); + + КонецЕсли; + + ЭлементФормы = Элементы.ИзменитьНаборРеквизитовДляКлючаЦен_Серии; + + КонецЕсли; + + Если Особенности.МожноРедактировать Тогда + МассивСтрок.Добавить(" ("); + МассивСтрок.Добавить(Новый ФорматированнаяСтрока(НСтр("ru = 'изменить'"),,,,"ИзменитьНастройкуИспользованияРеквизитов")); + МассивСтрок.Добавить(")"); + КонецЕсли; + + ЭлементФормы.Заголовок = Новый ФорматированнаяСтрока(МассивСтрок); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаНавигационнойСсылкиНадписиПоВидуВладельцу(НавигационнаяСсылка, ЗначащаяЧастьИмениНадписи, СтандартнаяОбработка); + + СтандартнаяОбработка = Ложь; + + Если НавигационнаяСсылка = "ОткрытьВладельца" Тогда + ПоказатьЗначение(,Объект[ИмяРеквизитаВладельца(ЗначащаяЧастьИмениНадписи)]); + ИначеЕсли НавигационнаяСсылка = "ИзменитьВладельца" Тогда + ВыбратьВидВладелец(ЗначащаяЧастьИмениНадписи); + ИначеЕсли НавигационнаяСсылка = "ОткрытьСписокВидовСТемЖеВладельцем" Тогда + ПоказатьЗначение(,ЭтотОбъект[ИмяСпискаВидыНоменклатурыСТемЖеВладельцем(ЗначащаяЧастьИмениНадписи)]); + ИначеЕсли НавигационнаяСсылка = "ОткрытьСписок" Тогда + Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда + + ТекстВопроса = Нстр("ru = 'Данные еще не записаны. + |Переход к списку возможен только после записи данных.'"); + + КнопкиВопроса = Новый СписокЗначений; + КнопкиВопроса.Добавить(КодВозвратаДиалога.ОК, НСтр("ru = 'Записать'")); + КнопкиВопроса.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Отмена'")); + + ДополнительныеПараметрыВопроса = Новый Структура; + ДополнительныеПараметрыВопроса.Вставить("ЗначащаяЧастьИмениНадписи", ЗначащаяЧастьИмениНадписи); + + ПоказатьВопрос(Новый ОписаниеОповещения("ОткрытьСписокЗавершение", ЭтотОбъект, ДополнительныеПараметрыВопроса), + ТекстВопроса, + КнопкиВопроса); + Возврат; + + КонецЕсли; + + ОткрытьСписокФрагмент(ЗначащаяЧастьИмениНадписи); + Иначе + ТекстИсключения = НСтр("ru = 'Неизвестная навигационная ссылка.'"); + + ВызватьИсключение ТекстИсключения; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьСписокЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт + + Если РезультатВопроса = КодВозвратаДиалога.Отмена Тогда + Возврат; + КонецЕсли; + + Попытка + ЭлементЗаписан = Записать(); + Исключение + Возврат; + КонецПопытки; + + Если Не ЭлементЗаписан Тогда + Возврат; + КонецЕсли; + + ОткрытьСписокФрагмент(ДополнительныеПараметры.ЗначащаяЧастьИмениНадписи); + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьСписокФрагмент(ЗначащаяЧастьИмениНадписи) + + Если ЗначащаяЧастьИмениНадписи = "ТоварныхКатегорий" Тогда + ПараметрыОткрытия = Новый Структура; + ПараметрыОткрытия.Вставить("Отбор", Новый Структура("Владелец", Объект.Ссылка)); + ПараметрыОткрытия.Вставить("ЗакрыватьПриЗакрытииВладельца", Истина); + + ОткрытьФорму("Справочник.ТоварныеКатегории.ФормаСписка", + ПараметрыОткрытия, + ЭтотОбъект, + , + , + , + , + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + + ИначеЕсли ЗначащаяЧастьИмениНадписи = "Характеристик" Тогда + + ПараметрыОткрытия = Новый Структура; + ПараметрыОткрытия.Вставить("Отбор", Новый Структура("Владелец", Объект.Ссылка)); + ПараметрыОткрытия.Вставить("ЗакрыватьПриЗакрытииВладельца", Истина); + + ОткрытьФорму("Справочник.ХарактеристикиНоменклатуры.Форма.ФормаСписка", + ПараметрыОткрытия, + ЭтотОбъект, + , + , + , + , + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ЗаписатьОбщееСвойствоНаСервере(ВыбранноеЗначение, НаборДопРеквизитовСведений, ЭтоНаборыДополнительныхСведений) + + Блокировка = Новый БлокировкаДанных; + + ЭлементБлокировки = Блокировка.Добавить("Справочник.НаборыДополнительныхРеквизитовИСведений"); + ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; + ЭлементБлокировки.УстановитьЗначение("Ссылка", НаборДопРеквизитовСведений); + + Попытка + ЗаблокироватьДанныеДляРедактирования(НаборДопРеквизитовСведений); + НачатьТранзакцию(); + Попытка + Блокировка.Заблокировать(); + ЗаблокироватьДанныеДляРедактирования(НаборДопРеквизитовСведений); + + ТекущийНаборОбъект = НаборДопРеквизитовСведений.ПолучитьОбъект(); + Если ТекущийНаборОбъект.ВерсияДанных <> ВерсияДанныхТекущегоНабора Тогда + Если ЭтоНаборыДополнительныхСведений Тогда + ВызватьИсключение + НСтр("ru = 'Действие не выполнено, так как состав дополнительных сведений + |был изменен другим пользователем. + |Новый состав дополнительных сведений прочитан. + | + |Повторите действие, если требуется.'"); + Иначе + ВызватьИсключение + НСтр("ru = 'Действие не выполнено, так как состав дополнительных реквизитов + |был изменен другим пользователем. + |Новый состав дополнительных реквизитов прочитан. + | + |Повторите действие, если требуется.'"); + КонецЕсли; + КонецЕсли; + + ТабличнаяЧасть = ТекущийНаборОбъект[?(ЭтоНаборыДополнительныхСведений, + "ДополнительныеСведения", "ДополнительныеРеквизиты")]; + + НайденнаяСтрока = ТабличнаяЧасть.Найти(ВыбранноеЗначение.ОбщееСвойство, "Свойство"); + + Если НайденнаяСтрока = Неопределено Тогда + НоваяСтрока = ТабличнаяЧасть.Добавить(); + НоваяСтрока.Свойство = ВыбранноеЗначение.ОбщееСвойство; + ТекущийНаборОбъект.Записать(); + + ИначеЕсли НайденнаяСтрока.ПометкаУдаления Тогда + НайденнаяСтрока.ПометкаУдаления = Ложь; + ТекущийНаборОбъект.Записать(); + КонецЕсли; + + Модифицированность = Истина; + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + Исключение + РазблокироватьДанныеДляРедактирования(НаборДопРеквизитовСведений); + ВызватьИсключение; + КонецПопытки; + + ПриЗаписиНабораДополнительныхРеквизитовИСведенийНаСервере(); + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ПолучитьВерсиюДанныхНабора(Набор) + Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Набор, "ВерсияДанных"); +КонецФункции + +&НаКлиенте +Процедура ЕстьИндивидуальныеНастройкиПолитикиУчетаСерийПриИзмененииЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт + + Если РезультатВопроса = КодВозвратаДиалога.Нет Тогда + ЕстьИндивидуальныеНастройкиПолитикиУчетаСерий = Истина; + Возврат; + КонецЕсли; + + УстановитьПолитикуУчетаСерийПоУмолчанию(); + ЕстьИндивидуальныеНастройкиПолитикиУчетаСерийПриИзмененииСервер(); + ОбновитьПредупреждениеПоСкладуКлиент(); + +КонецПроцедуры + +&НаСервере +Процедура ЕстьИндивидуальныеНастройкиПолитикиУчетаСерийПриИзмененииСервер() + + ДействиеПриИзмененииПолитикУчетаСерий(); + УдалитьДублиСкладовПолитикУчетаСерийНоменклатуры(); + +КонецПроцедуры + +&НаСервере +Процедура ДействиеПриИзмененииПолитикУчетаСерий() + + ЗаполнитьРеквизитыФормыПоРеквизитамОбъекта(); + НастроитьФорму(); + +КонецПроцедуры + +&НаСервере +Процедура УдалитьДублиСкладовПолитикУчетаСерийНоменклатуры() + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ПолитикиУчетаСерий.Склад КАК Склад, + | 1 КАК КоличествоСкладов + |ПОМЕСТИТЬ ПолитикиУчетаСерий + |ИЗ + | &ТаблицаПолитик КАК ПолитикиУчетаСерий + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ПолитикиУчетаСерий.Склад КАК Склад, + | СУММА(ПолитикиУчетаСерий.КоличествоСкладов) КАК КоличествоСкладов + |ИЗ + | ПолитикиУчетаСерий КАК ПолитикиУчетаСерий + | + |СГРУППИРОВАТЬ ПО + | ПолитикиУчетаСерий.Склад + | + |ИМЕЮЩИЕ + | СУММА(ПолитикиУчетаСерий.КоличествоСкладов) > 1"; + + Запрос.УстановитьПараметр("ТаблицаПолитик", Объект.ПолитикиУчетаСерий.Выгрузить()); + + ДублиСкладов = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Склад"); + УдаляемыеПолитики = Новый Массив; + + Для Каждого ПовторяемыйСклад Из ДублиСкладов Цикл + ОтборСтрок = Новый Структура("Склад", ПовторяемыйСклад); + СтрокиПолитик = Объект.ПолитикиУчетаСерий.НайтиСтроки(ОтборСтрок); + + Для Сч = 0 По СтрокиПолитик.ВГраница() Цикл + Если Сч = 0 Тогда + Продолжить; + КонецЕсли; + + УдаляемыеПолитики.Добавить(СтрокиПолитик[Сч]); + КонецЦикла; + КонецЦикла; + + Для Каждого УдаляемаяПолитика Из УдаляемыеПолитики Цикл + Объект.ПолитикиУчетаСерий.Удалить(УдаляемаяПолитика); + КонецЦикла; + +КонецПроцедуры + +// Удаляет дубли строк, а так же скрытые строки если введена переопределяющая строка. +// +// Параметры: +// Склад - СправочникСсылка.Склады, СправочникСсылка.СтруктураПредприятия - склад или подразделение новой строки +// ПолитикаУчетаСерий - СправочникСсылка.ПолитикиУчетаСерий - политика учета серий новой строки. +// +&НаСервере +Процедура ПослеДобавленияНовогоСкладаПодразделенияВПолитикиУчетаСерий(Склад, ПолитикаУчетаСерий) + + СтрокиКУдалению = Новый Массив(); + СтрокиССовпадающимиПолитиками = Новый Массив(); + + // Поиск всех имеющихся строк по текущему складу + СтруктураОтбора = Новый Структура(); + СтруктураОтбора.Вставить("Склад", Склад); + + НайденныеСтроки = Объект.ПолитикиУчетаСерий.НайтиСтроки(СтруктураОтбора); + + ИндексовНайденныхСтрок = НайденныеСтроки.Количество() - 1; + Для Индекс = 0 По ИндексовНайденныхСтрок Цикл + Строка = НайденныеСтроки[Индекс]; + + Если Строка.ПолитикаУчетаСерий = Объект.ПолитикаУчетаСерий Тогда + // Удаление скрытых строк. + СтрокиКУдалению.Добавить(Строка); + ИначеЕсли Строка.ПолитикаУчетаСерий = ПолитикаУчетаСерий Тогда + // Заполнение дублей строк для последующего удаления лишних + СтрокиССовпадающимиПолитиками.Добавить(Строка); + Иначе + // Строки где политика отличается от умолчания остаются - пользователь + // должен явным образом выбрать какую строку нужно оставить. + КонецЕсли; + + КонецЦикла; + + Для Каждого Строка Из СтрокиКУдалению Цикл + Объект.ПолитикиУчетаСерий.Удалить(Строка); + + СтрокаВМассивеСовпадающихПолитик = СтрокиССовпадающимиПолитиками.Найти(Строка); + Если СтрокаВМассивеСовпадающихПолитик <> Неопределено Тогда + СтрокиССовпадающимиПолитиками.Удалить(СтрокаВМассивеСовпадающихПолитик); + КонецЕсли; + КонецЦикла; + + Если СтрокиССовпадающимиПолитиками.Количество() > 1 Тогда + Для Индекс = 1 По СтрокиССовпадающимиПолитиками.Количество() - 1 Цикл + Строка = СтрокиССовпадающимиПолитиками[Индекс]; + Объект.ПолитикиУчетаСерий.Удалить(Строка); + КонецЦикла; + КонецЕсли; + + ДействиеПриИзмененииПолитикУчетаСерий(); + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьПолитикуУчетаСерийПоУмолчанию() + + Для Каждого Строка Из Объект.ПолитикиУчетаСерий Цикл + Строка.ПолитикаУчетаСерий = Объект.ПолитикаУчетаСерий; + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура УдалитьПустыеСтрокиПолитикУчетаСерий() + + ПараметрыОтбора = Новый Структура(); + ПараметрыОтбора.Вставить("Склад", Неопределено); + ПараметрыОтбора.Вставить("ПолитикаУчетаСерий", Справочники.ПолитикиУчетаСерий.ПустаяСсылка()); + СтрокиКУдалению = Объект.ПолитикиУчетаСерий.НайтиСтроки(ПараметрыОтбора); + + Для Каждого ЭлементКУдалению Из СтрокиКУдалению Цикл + Объект.ПолитикиУчетаСерий.Удалить(ЭлементКУдалению); + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьРеквизитыФормыПоРеквизитамОбъекта() + + Если Объект.ИспользоватьИндивидуальноеНаименованиеПриПечати Тогда + ИспользоватьИндивидуальноеНаименование = "ИспользоватьИндивидуальноеНаименование"; + Иначе + ИспользоватьИндивидуальноеНаименование = "ИспользоватьНаименованиеИзКонстанты"; + КонецЕсли; + + Если Объект.ИспользоватьСерии Тогда + Если Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры Тогда + ВариантЗаданияНастроекСерий = "ИспользуютсяТакжеКакВДругомВидеНоменклатуры"; + Иначе + ВариантЗаданияНастроекСерий = "НастроеныДляВидаНоменклатуры"; + КонецЕсли; + Иначе + ВариантЗаданияНастроекСерий = ""; + КонецЕсли; + + Если Объект.ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры Тогда + НастройкаТоварныхКатегорий = "ОбщиеСДругимВидомНоменклатуры"; + Иначе + НастройкаТоварныхКатегорий = "НастроеныДляЭтогоВидаНоменклатуры"; + КонецЕсли; + + Если Объект.ИспользоватьУпаковки Тогда + Если Объект.НаборУпаковок = Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры Тогда + ИспользованиеУпаковок = "ИндивидуальныйНабор"; + Иначе + ИспользованиеУпаковок = "ОбщийНабор"; + КонецЕсли; + КонецЕсли; + + ОтборВладельцаТоварныхКатегорий = НоменклатураСервер.ОтборВладельцаПодчиненныхСправочников(Объект, "ВладелецТоварныхКатегорий"); + ОтборВладельцаХарактеристик = НоменклатураСервер.ОтборВладельцаПодчиненныхСправочников(Объект, "ВладелецХарактеристик"); + ОтборВладельцаСерий = НоменклатураСервер.ОтборВладельцаПодчиненныхСправочников(Объект, "ВладелецСерий"); + + ЗаполнитьСписокВидовНоменклатурыСТемЖеВладельцем("ТоварныхКатегорий"); + ЗаполнитьСписокВидовНоменклатурыСТемЖеВладельцем("Характеристик"); + ЗаполнитьСписокВидовНоменклатурыСТемЖеВладельцем("Серий"); + + ЕстьИндивидуальныеНастройкиПолитикиУчетаСерий = Ложь; + + Для Каждого СтрТабл Из Объект.ПолитикиУчетаСерий Цикл + + СтрТабл.ЭтоПолитикаДляСклада = Не ЗначениеЗаполнено(СтрТабл.Склад) + Или (ТипЗнч(СтрТабл.Склад) = Тип("СправочникСсылка.Склады")); + СтрТабл.СоответствуетПолитикеПоУмолчанию = СтрТабл.ПолитикаУчетаСерий = Объект.ПолитикаУчетаСерий; + + Если Не СтрТабл.СоответствуетПолитикеПоУмолчанию Тогда + ЕстьИндивидуальныеНастройкиПолитикиУчетаСерий = Истина; + КонецЕсли; + + КонецЦикла; + + ПараметрыВлияющиеНаОтборПолитикУказанияСерийДоИзмененияСтруктура = НоменклатураКлиентСервер.ПараметрыОтбораПолитикУчетаСерий(); + ЗаполнитьЗначенияСвойств(ПараметрыВлияющиеНаОтборПолитикУказанияСерийДоИзмененияСтруктура, Объект); + ПараметрыВлияющиеНаОтборПолитикУказанияСерийДоИзменения = Новый ФиксированнаяСтруктура(ПараметрыВлияющиеНаОтборПолитикУказанияСерийДоИзмененияСтруктура); + + ЗаполнитьСпискиДопРеквизитовСведений(); + +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Процедура СвернутьРазвернутьВсеГруппы(Форма) + + ИменаСворачиваемыхГрупп = ИменаСворачиваемыхГрупп(); + + Для Каждого ИмяГруппы Из ИменаСворачиваемыхГрупп Цикл + + Если Форма.НастройкаВидимостиФормы = "ПоказатьВсе" Тогда + Форма.Элементы[ИмяГруппы].Показать(); + Иначе + Форма.Элементы[ИмяГруппы].Скрыть(); + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Функция ИменаСворачиваемыхГрупп() + + ИменаСворачиваемыхГрупп = Новый Массив; + + ИменаСворачиваемыхГрупп.Добавить("СтраницаОсновное"); + ИменаСворачиваемыхГрупп.Добавить("СтраницаДопРеквизиты"); + ИменаСворачиваемыхГрупп.Добавить("СтраницаНастройкиЦенообразования"); + ИменаСворачиваемыхГрупп.Добавить("СтраницаШаблоныНаименований"); + ИменаСворачиваемыхГрупп.Добавить("СтраницаНастройкиПанелиБыстрогоОтбора"); + ИменаСворачиваемыхГрупп.Добавить("СтраницаНастройкиСоздания"); + ИменаСворачиваемыхГрупп.Добавить("СтраницаЗначенияПоУмолчанию"); + ИменаСворачиваемыхГрупп.Добавить("СтраницаДопСведения"); + + Возврат ИменаСворачиваемыхГрупп; +КонецФункции + +&НаКлиенте +Процедура РеквизитыДляКонтроляВыбор(ЗначащаяЧастьИмени, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ТекущиеДанные = Элементы[ИмяТаблицыРеквизитыДляКонтроля(ЗначащаяЧастьИмени)].ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + ИначеЕсли Не (ТекущиеДанные.ЭтоДопРеквизит + И ТекущиеДанные.ЗаполнятьОбязательно) Тогда + + Возврат; + + КонецЕсли; + + ПараметрыОбработки = Новый Структура; + ПараметрыОбработки.Вставить("ТекущееСвойство", ТекущиеДанные.Свойство); + ПараметрыОбработки.Вставить("ЗначащаяЧастьИмени", ЗначащаяЧастьИмени); + ПараметрыОбработки.Вставить("Поле", Поле); + + Если Модифицированность Тогда + ОписаниеОповещения = Новый ОписаниеОповещения("РеквизитыДляКонтроляВыборЗавершение", ЭтотОбъект, ПараметрыОбработки); + ТекстВопроса = НСтр("ru = 'Перед открытием формы настройки необходимо записать элемент. Продолжить?'"); + + ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ОКОтмена); + + Возврат; + КонецЕсли; + + РеквизитыДляКонтроляВыборЗавершение(Неопределено, ПараметрыОбработки); + +КонецПроцедуры + +&НаКлиенте +Процедура РеквизитыДляКонтроляВыборЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Если Результат <> Неопределено + И Результат <> КодВозвратаДиалога.ОК Тогда + + Возврат; + + КонецЕсли; + + Если Результат = КодВозвратаДиалога.ОК Тогда + Если Не Записать() Тогда + Возврат; + КонецЕсли; + КонецЕсли; + + ТекущееСвойство = ДополнительныеПараметры.ТекущееСвойство; + ЗначащаяЧастьИмени = ДополнительныеПараметры.ЗначащаяЧастьИмени; + Поле = ДополнительныеПараметры.Поле; + + ОтборРеквизитов = Новый Структура("Свойство", ТекущееСвойство); + СтрокиРеквизитов = Объект[ИмяТаблицыРеквизитыДляКонтроля(ЗначащаяЧастьИмени)].НайтиСтроки(ОтборРеквизитов); + ТекущаяСтрока = Неопределено; + РедактируемоеСвойство = Неопределено; + + Если СтрокиРеквизитов.Количество() > 0 Тогда + ТекущаяСтрока = СтрокиРеквизитов[0]; + РедактируемоеСвойство = СтрокиРеквизитов[0].Свойство; + Иначе + Возврат; + КонецЕсли; + + Если ТекущаяСтрока.ЭтоОбщийРеквизит Тогда + + Если ЗначащаяЧастьИмени = "Номенклатуры" Тогда + ТекущийНаборСвойств = НаборСвойствПоИмени("Справочник_Номенклатура_Общие"); + ИначеЕсли ЗначащаяЧастьИмени = "Характеристик" Тогда + ТекущийНаборСвойств = НаборСвойствПоИмени("Справочник_ХарактеристикиНоменклатуры_Общие"); + ИначеЕсли ЗначащаяЧастьИмени = "Серий" Тогда + ТекущийНаборСвойств = НаборСвойствПоИмени("Справочник_СерииНоменклатуры_Общие"); + КонецЕсли; + + Иначе + + Если ЗначащаяЧастьИмени = "Номенклатуры" Тогда + ТекущийНаборСвойств = Объект.НаборСвойств; + ИначеЕсли ЗначащаяЧастьИмени = "Характеристик" Тогда + ТекущийНаборСвойств = Объект.НаборСвойствХарактеристик; + ИначеЕсли ЗначащаяЧастьИмени = "Серий" Тогда + ТекущийНаборСвойств = Объект.НаборСвойствСерий; + КонецЕсли; + + КонецЕсли; + + ВидНастройки = ВидНастройкиРеквизитаДляКонтроляПоИмениПоля(Элементы, Поле.Имя); + РедактируемоеСвойствоВидНастройки = ""; + + Если ВидНастройки = "ПредставлениеРеквизита" Тогда + + ПараметрыФормыСвойства = Новый Структура; + ПараметрыФормыСвойства.Вставить("ТекущийНаборСвойств", ТекущийНаборСвойств); + ПараметрыФормыСвойства.Вставить("Ключ", РедактируемоеСвойство); + + ОткрытьФорму("ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ФормаОбъекта", + ПараметрыФормыСвойства, + ЭтотОбъект, + , + , + , + , + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + + ИначеЕсли ВидНастройки = "Виден" + Или ВидНастройки = "Доступен" + Или ВидНастройки = "ЗаполнятьОбязательно" Тогда + + ЗаполнитьЗависимостиРедактируемогоСвойства(); + + РедактируемоеСвойствоВидНастройки = ВидНастройки; + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ДополнительныйРеквизит", РедактируемоеСвойство); + ПараметрыФормы.Вставить("ЗависимостиРеквизитов", РедактируемоеСвойствоЗависимости); + ПараметрыФормы.Вставить("Набор", ТекущийНаборСвойств); + ПараметрыФормы.Вставить("НастраиваемоеСвойство", РедактируемоеСвойствоВидНастройки); + + ОткрытьФорму("ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Форма.ЗависимостьРеквизитов", + ПараметрыФормы, + ЭтотОбъект, + , + , + , + , + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Функция ВидНастройкиРеквизитаДляКонтроляПоИмениПоля(Элементы, ИмяЭлемента) + + ВидНастройки = ""; + + Если ИмяЭлемента = Элементы.РеквизитыДляКонтроляНоменклатурыПредставлениеРеквизита.Имя + Или ИмяЭлемента = Элементы.РеквизитыДляКонтроляНоменклатурыПредставлениеРеквизитаГиперссылка.Имя + Или ИмяЭлемента = Элементы.РеквизитыДляКонтроляХарактеристикПредставлениеРеквизита.Имя + Или ИмяЭлемента = Элементы.РеквизитыДляКонтроляХарактеристикПредставлениеРеквизитаГиперссылка.Имя + Или ИмяЭлемента = Элементы.РеквизитыДляКонтроляСерийПредставлениеРеквизита.Имя + Или ИмяЭлемента = Элементы.РеквизитыДляКонтроляСерийПредставлениеРеквизитаГиперссылка.Имя Тогда + + ВидНастройки = "ПредставлениеРеквизита"; + + ИначеЕсли ИмяЭлемента = Элементы.РеквизитыДляКонтроляНоменклатурыВиденСУсловием.Имя + Или ИмяЭлемента = Элементы.РеквизитыДляКонтроляНоменклатурыДляРазмераЯчейкиВиденСУсловием.Имя + Или ИмяЭлемента = Элементы.РеквизитыДляКонтроляХарактеристикВиденСУсловием.Имя + Или ИмяЭлемента = Элементы.РеквизитыДляКонтроляХарактеристикДляРазмераЯчейкиВиденСУсловием.Имя Тогда + + ВидНастройки = "Виден"; + + ИначеЕсли ИмяЭлемента = Элементы.РеквизитыДляКонтроляНоменклатурыДоступенСУсловием.Имя + Или ИмяЭлемента = Элементы.РеквизитыДляКонтроляНоменклатурыДляРазмераЯчейкиДоступенСУсловием.Имя + Или ИмяЭлемента = Элементы.РеквизитыДляКонтроляХарактеристикДоступенСУсловием.Имя + Или ИмяЭлемента = Элементы.РеквизитыДляКонтроляХарактеристикДляРазмераЯчейкиДоступенСУсловием.Имя Тогда + + ВидНастройки = "Доступен"; + + ИначеЕсли ИмяЭлемента = Элементы.РеквизитыДляКонтроляНоменклатурыЗаполнятьОбязательно.Имя + Или ИмяЭлемента = Элементы.РеквизитыДляКонтроляНоменклатурыДляРазмераЯчейкиЗаполнятьОбязательно.Имя + Или ИмяЭлемента = Элементы.РеквизитыДляКонтроляХарактеристикЗаполнятьОбязательно.Имя + Или ИмяЭлемента = Элементы.РеквизитыДляКонтроляХарактеристикДляРазмераЯчейкиЗаполнятьОбязательно.Имя + Или ИмяЭлемента = Элементы.РеквизитыДляКонтроляСерийЗаполнятьОбязательно.Имя + Или ИмяЭлемента = Элементы.РеквизитыДляКонтроляСерийДляРазмераЯчейкиЗаполнятьОбязательно.Имя Тогда + + ВидНастройки = "ЗаполнятьОбязательно"; + + КонецЕсли; + + Возврат ВидНастройки; + +КонецФункции + +&НаСервере +Процедура ЗаполнитьЗависимостиРедактируемогоСвойства() + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.ЗависимоеСвойство КАК ЗависимоеСвойство, + | ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.НаборСвойств КАК НаборСвойств, + | ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.Реквизит КАК Реквизит, + | ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.Условие КАК Условие, + | ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.Значение КАК Значение + |ИЗ + | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ЗависимостиДополнительныхРеквизитов КАК ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов + |ГДЕ + | ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.Ссылка = &Ссылка"; + + Запрос.УстановитьПараметр("Ссылка", РедактируемоеСвойство); + + РедактируемоеСвойствоЗависимости.Загрузить(Запрос.Выполнить().Выгрузить()); + +КонецПроцедуры + +&НаСервере +Процедура ЗаписатьНастройкиСвойства(НастройкиОтбораВХранилище) + + ЗначащаяЧастьИмени = "Номенклатуры"; + + Если Элементы.ГруппаНастройкиСозданияСтраницы.ТекущаяСтраница = Элементы.ГруппаРеквизитыДляКонтроляХарактеристик Тогда + ЗначащаяЧастьИмени = "Характеристик"; + ИначеЕсли Элементы.ГруппаНастройкиСозданияСтраницы.ТекущаяСтраница = Элементы.ГруппаРеквизитыДляКонтроляСерий Тогда + ЗначащаяЧастьИмени = "Серий"; + КонецЕсли; + + ИмяТаблицыРеквизитыДляКонтроля = ИмяТаблицыРеквизитыДляКонтроля(ЗначащаяЧастьИмени); + + ОтборСвойств = Новый Структура("Свойство", РедактируемоеСвойство); + СтрокиСвойств = Объект[ИмяТаблицыРеквизитыДляКонтроля].НайтиСтроки(ОтборСвойств); + + Если ЗначащаяЧастьИмени = "Номенклатуры" Тогда + НаборСвойств = Объект.НаборСвойств; + ИначеЕсли ЗначащаяЧастьИмени = "Характеристик" Тогда + НаборСвойств = Объект.НаборСвойствХарактеристик; + ИначеЕсли ЗначащаяЧастьИмени = "Серий" Тогда + НаборСвойств = Объект.НаборСвойствСерий; + Иначе + ВызватьИсключение СтрШаблон(НСтр("ru = 'Не определен набор свойств для ""%1""'"), ЗначащаяЧастьИмени); + КонецЕсли; + + Если СтрокиСвойств.Количество() > 0 Тогда + Если СтрокиСвойств[0].ЭтоОбщийРеквизит Тогда + НаборСвойств = ?(ЗначащаяЧастьИмени = "Номенклатуры", + УправлениеСвойствами.НаборСвойствПоИмени("Справочник_Номенклатура_Общие"), + ?(ЗначащаяЧастьИмени = "Характеристик", + УправлениеСвойствами.НаборСвойствПоИмени("Справочник_ХарактеристикиНоменклатуры_Общие"), + УправлениеСвойствами.НаборСвойствПоИмени("Справочник_СерииНоменклатуры_Общие"))); + КонецЕсли; + КонецЕсли; + + СвойствоОбъект = РедактируемоеСвойство.ПолучитьОбъект(); + + Для Каждого КлючЗначение Из НастройкиОтбораВХранилище Цикл + + ОтборСтрок = Новый Структура; + ОтборСтрок.Вставить("НаборСвойств", НаборСвойств); + ОтборСтрок.Вставить("ЗависимоеСвойство", КлючЗначение.Ключ); + + НайденныеСтроки = СвойствоОбъект.ЗависимостиДополнительныхРеквизитов.НайтиСтроки(ОтборСтрок); + + Для Каждого СтрМас Из НайденныеСтроки Цикл + СвойствоОбъект.ЗависимостиДополнительныхРеквизитов.Удалить(СтрМас); + КонецЦикла; + + Если КлючЗначение.Значение <> Неопределено Тогда + ДанныеХранилища = КлючЗначение.Значение; // ХранилищеЗначения - + ТаблицаНастроек = ДанныеХранилища.Получить(); + + Для Каждого СтрТабл Из ТаблицаНастроек Цикл + НоваяСтрока = СвойствоОбъект.ЗависимостиДополнительныхРеквизитов.Добавить(); + + ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрТабл); + КонецЦикла; + КонецЕсли; + + КонецЦикла; + + СвойствоОбъект.Записать(); + + ПриЗаписиНабораДополнительныхРеквизитовИСведенийНаСервере(); + +КонецПроцедуры + +&НаСервере +Процедура ОбновитьРазрезыЦенообразования() + + МассивТекстов = Новый Массив; + + МассивТекстов.Добавить(НСтр("ru = 'Номенклатура'")); + + Если Объект.НастройкиКлючаЦенПоХарактеристике = Перечисления.ВариантОтбораДляКлючаЦен.Использовать + Или Объект.НастройкиКлючаЦенПоХарактеристике = Перечисления.ВариантОтбораДляКлючаЦен.ИспользоватьПоРеквизитам Тогда + + МассивТекстов.Добавить(НСтр("ru = ', Характеристика'")); + + Если Объект.НастройкиКлючаЦенПоХарактеристике = Перечисления.ВариантОтбораДляКлючаЦен.ИспользоватьПоРеквизитам Тогда + + МассивОписанияРеквизитов = ПолучитьДанныеПоРеквизитамДляКлючаЦен("Характеристики"); + + Если МассивОписанияРеквизитов.Количество() Тогда + + МассивТекстов.Добавить(" ("); + МассивТекстов.Добавить(СтрСоединить(МассивОписанияРеквизитов, ", ")); + МассивТекстов.Добавить(")"); + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + Если Объект.НастройкиКлючаЦенПоСерии = Перечисления.ВариантОтбораДляКлючаЦен.Использовать + Или Объект.НастройкиКлючаЦенПоСерии = Перечисления.ВариантОтбораДляКлючаЦен.ИспользоватьПоРеквизитам Тогда + + МассивТекстов.Добавить(НСтр("ru = ', Серия'")); + + Если Объект.НастройкиКлючаЦенПоСерии = Перечисления.ВариантОтбораДляКлючаЦен.ИспользоватьПоРеквизитам Тогда + + МассивОписанияРеквизитов = ПолучитьДанныеПоРеквизитамДляКлючаЦен("Серии"); + + Если МассивОписанияРеквизитов.Количество() Тогда + + МассивТекстов.Добавить(" ("); + МассивТекстов.Добавить(СтрСоединить(МассивОписанияРеквизитов, ", ")); + МассивТекстов.Добавить(")"); + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + Если Объект.НастройкиКлючаЦенПоУпаковке = Перечисления.ВариантОтбораДляКлючаЦен.Использовать Тогда + + МассивТекстов.Добавить(НСтр("ru = ', Упаковка'")); + + КонецЕсли; + + Если Объект.РазрезыЦенообразования <> СтрСоединить(МассивТекстов) Тогда + Объект.РазрезыЦенообразования = СтрСоединить(МассивТекстов); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Функция ПолучитьДанныеПоРеквизитамДляКлючаЦен(Знач ЗначащаяЧастьИмениНадписи) + + МассивОписанияРеквизитов = Новый Массив; + + Если ЗначащаяЧастьИмениНадписи = "Характеристики" Тогда + + Если Объект.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры Тогда + + Для Каждого Реквизит Из Объект.РеквизитыХарактеристикДляКлючаЦен Цикл + МассивОписанияРеквизитов.Добавить(Строка(Реквизит.ПредставлениеРеквизита)); + КонецЦикла; + + ИначеЕсли Объект.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры Тогда + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ВидыНоменклатурыРеквизитыХарактеристикДляКлючаЦен.Ссылка, + | ВидыНоменклатурыРеквизитыХарактеристикДляКлючаЦен.ПредставлениеРеквизита + |ИЗ + | Справочник.ВидыНоменклатуры.РеквизитыХарактеристикДляКлючаЦен КАК ВидыНоменклатурыРеквизитыХарактеристикДляКлючаЦен + |ГДЕ + | ВидыНоменклатурыРеквизитыХарактеристикДляКлючаЦен.Ссылка = &ВидНоменклатуры"; + + Запрос.УстановитьПараметр("ВидНоменклатуры", Объект.ВладелецХарактеристик); + + ТаблицаРезультатаЗапроса = Запрос.Выполнить().Выгрузить(); + + МассивОписанияРеквизитов = ТаблицаРезультатаЗапроса.ВыгрузитьКолонку("ПредставлениеРеквизита"); + + КонецЕсли; + ИначеЕсли ЗначащаяЧастьИмениНадписи = "Серии" Тогда + + Если Не Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры Тогда + + Для Каждого Реквизит Из Объект.РеквизитыСерийДляКлючаЦен Цикл + МассивОписанияРеквизитов.Добавить(Строка(Реквизит.ПредставлениеРеквизита)); + КонецЦикла; + + Иначе + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ВидыНоменклатурыРеквизитыСерийДляКлючаЦен.Ссылка, + | ВидыНоменклатурыРеквизитыСерийДляКлючаЦен.ПредставлениеРеквизита + |ИЗ + | Справочник.ВидыНоменклатуры.РеквизитыСерийДляКлючаЦен КАК ВидыНоменклатурыРеквизитыСерийДляКлючаЦен + |ГДЕ + | ВидыНоменклатурыРеквизитыСерийДляКлючаЦен.Ссылка = &ВидНоменклатуры"; + + Запрос.УстановитьПараметр("ВидНоменклатуры", Объект.ВладелецСерий); + + ТаблицаРезультатаЗапроса = Запрос.Выполнить().Выгрузить(); + + МассивОписанияРеквизитов = ТаблицаРезультатаЗапроса.ВыгрузитьКолонку("ПредставлениеРеквизита"); + + КонецЕсли; + + КонецЕсли; + + Возврат МассивОписанияРеквизитов; + +КонецФункции + +&НаСервере +Процедура КодТНВЭДПриИзмененииСервер() + + Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.КодТНВЭД, "ПрослеживаемыйТовар") Тогда + Объект.ВестиУчетПоГТД = Истина; + КонецЕсли; + + НастроитьПодсказкуПоляКлассификатора(Элементы.КодТНВЭД.Имя, Объект.КодТНВЭД); + +КонецПроцедуры + +&НаСервере +Функция НаборСвойствПоИмени(ИмяНабора) + + Возврат УправлениеСвойствами.НаборСвойствПоИмени(ИмяНабора); + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Функция ИмяТаблицыРеквизитыДляКонтроля(ЗначащаяЧастьИмени) + + Если ЗначащаяЧастьИмени = "Номенклатуры" Тогда + Возврат "РеквизитыДляКонтроляНоменклатуры"; + ИначеЕсли ЗначащаяЧастьИмени = "Характеристик" Тогда + Возврат "РеквизитыДляКонтроляХарактеристик"; + ИначеЕсли ЗначащаяЧастьИмени = "Серий" Тогда + Возврат "РеквизитыДляКонтроляСерий"; + Иначе + ВызватьИсключение СтрШаблон(НСтр("ru = 'Не определено имя таблицы реквизитов контроля для %1'"), ЗначащаяЧастьИмени); + КонецЕсли; + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Функция ИмяРеквизитаЗапретРедактированияНаименования(ИмяРеквизитаШаблонНаименования) + + Если ИмяРеквизитаШаблонНаименования = "ШаблонНаименованияДляПечатиНоменклатуры" Тогда + Возврат "ЗапретРедактированияНаименованияДляПечатиНоменклатуры"; + ИначеЕсли ИмяРеквизитаШаблонНаименования = "ШаблонНаименованияДляПечатиХарактеристики" Тогда + Возврат "ЗапретРедактированияНаименованияДляПечатиХарактеристики"; + ИначеЕсли ИмяРеквизитаШаблонНаименования = "ШаблонРабочегоНаименованияНоменклатуры" Тогда + Возврат "ЗапретРедактированияРабочегоНаименованияНоменклатуры"; + ИначеЕсли ИмяРеквизитаШаблонНаименования = "ШаблонРабочегоНаименованияХарактеристики" Тогда + Возврат "ЗапретРедактированияРабочегоНаименованияХарактеристики"; + КонецЕсли; + + Возврат ""; + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Функция ИмяРеквизитаВладельца(ЗначащаяЧастьИмени) + + Если ЗначащаяЧастьИмени = "Характеристик" Тогда + Возврат "ВладелецХарактеристик"; + ИначеЕсли ЗначащаяЧастьИмени = "Серий" Тогда + Возврат "ВладелецСерий"; + ИначеЕсли ЗначащаяЧастьИмени = "ТоварныхКатегорий" Тогда + Возврат "ВладелецТоварныхКатегорий"; + Иначе + ВызватьИсключение СтрШаблон(НСтр("ru = 'Не определено имя реквизита-владельца для %1'"), ЗначащаяЧастьИмени); + КонецЕсли; + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Функция ИмяСпискаВидыНоменклатурыСТемЖеВладельцем(ЗначащаяЧастьИмени) + + Если ЗначащаяЧастьИмени = "Характеристик" Тогда + Возврат "ВидыНоменклатурыСТемЖеВладельцемХарактеристик"; + ИначеЕсли ЗначащаяЧастьИмени = "Серий" Тогда + Возврат "ВидыНоменклатурыСТемЖеВладельцемСерий"; + ИначеЕсли ЗначащаяЧастьИмени = "ТоварныхКатегорий" Тогда + Возврат "ВидыНоменклатурыСТемЖеВладельцемТоварныхКатегорий"; + Иначе + ВызватьИсключение СтрШаблон(НСтр("ru = 'Не определено имя списка видов номенклатуры с тем же владельцем для %1'"), ЗначащаяЧастьИмени); + КонецЕсли; + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Функция ИмяРеквизитаОтборВладельца(ЗначащаяЧастьИмени) + + Если ЗначащаяЧастьИмени = "Характеристик" Тогда + Возврат "ОтборВладельцаХарактеристик"; + ИначеЕсли ЗначащаяЧастьИмени = "Серий" Тогда + Возврат "ОтборВладельцаСерий"; + ИначеЕсли ЗначащаяЧастьИмени = "ТоварныхКатегорий" Тогда + Возврат "ОтборВладельцаТоварныхКатегорий"; + Иначе + ВызватьИсключение СтрШаблон(НСтр("ru = 'Не определено имя реквизита отбора владельца %1'"), ЗначащаяЧастьИмени); + КонецЕсли; + +КонецФункции + +&НаСервере +Процедура АктуализироватьНастройкиДопРеквизитовДляКонтроляПриЗаписи(ТекущийОбъект, НазначениеДопРеквзитов) + + КолонкиОтбора = "ЭтоДопРеквизит, Свойство"; + ЗаполняемыеКолонки = "ЗаполнятьОбязательно, ОтображатьПриСоздании, ДоступностьУникален, + |ДоступностьЗаполнятьОбязательно, ДоступностьОтображатьПриСоздании"; + + Если НазначениеДопРеквзитов = "Номенклатура" Тогда + РеквизитыДляКонтроля = ТекущийОбъект.РеквизитыДляКонтроляНоменклатуры; + АктуальныеРеквизиты = Объект.РеквизитыДляКонтроляНоменклатуры; + ИначеЕсли НазначениеДопРеквзитов = "ХарактеристикиНоменклатуры" Тогда + РеквизитыДляКонтроля = ТекущийОбъект.РеквизитыДляКонтроляХарактеристик; + АктуальныеРеквизиты = Объект.РеквизитыДляКонтроляХарактеристик; + ИначеЕсли НазначениеДопРеквзитов = "СерииНоменклатуры" Тогда + РеквизитыДляКонтроля = ТекущийОбъект.РеквизитыДляКонтроляСерий; + АктуальныеРеквизиты = Объект.РеквизитыДляКонтроляСерий; + ЗаполняемыеКолонки = "ЗаполнятьОбязательно, ДоступностьЗаполнятьОбязательно"; + КонецЕсли; + + ТаблицаРеквизитов = РеквизитыДляКонтроля.Выгрузить(); + ТаблицаРеквизитов.Индексы.Добавить(КолонкиОтбора); + + ОтборРеквизитов = Новый Структура("ЭтоДопРеквизит", Истина); + ДополнительныеРеквизиты = АктуальныеРеквизиты.НайтиСтроки(ОтборРеквизитов); + + ОтборСтрок = Новый Структура(КолонкиОтбора); + + Для Каждого ДопРеквизит Из ДополнительныеРеквизиты Цикл + ЗаполнитьЗначенияСвойств(ОтборСтрок, ДопРеквизит); + + НайденныеСтроки = ТаблицаРеквизитов.НайтиСтроки(ОтборСтрок); + + Если НайденныеСтроки.Количество() > 0 Тогда + ЗаполнитьЗначенияСвойств(НайденныеСтроки[0], ДопРеквизит, ЗаполняемыеКолонки); + КонецЕсли; + КонецЦикла; + + РеквизитыДляКонтроля.Загрузить(ТаблицаРеквизитов); + +КонецПроцедуры + +&НаСервере +Процедура ЗаписатьСвойстваДопРеквизитов(НазначениеДопРеквзитов, Отказ) + + МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; + + Справочники.Номенклатура.ВсеДополнительныеРеквизиты(Объект.Ссылка, НазначениеДопРеквзитов, МенеджерВременныхТаблиц); + + Запрос = Новый Запрос; + Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; + Запрос.Текст = + "ВЫБРАТЬ + | РеквизитыДляКонтроля.Свойство КАК Свойство, + | РеквизитыДляКонтроля.ЗаполнятьОбязательно КАК ЗаполнятьОбязательно, + | РеквизитыДляКонтроля.ЭтоОбщийРеквизит КАК ЭтоОбщийРеквизит + |ПОМЕСТИТЬ РеквизитыДляКонтроля + |ИЗ + | &РеквизитыДляКонтроля КАК РеквизитыДляКонтроля + |; + | + |//////////////////////////////////////////////////////////////////////////////// 1 + |ВЫБРАТЬ + | ВложенныйЗапрос.Свойство КАК Свойство, + | ВложенныйЗапрос.ЗаполнятьОбязательно КАК ЗаполнятьОбязательно, + | ВложенныйЗапрос.ЭтоОбщийРеквизит КАК ЭтоОбщийРеквизит + |ПОМЕСТИТЬ ИзменяемыеСвойства + |ИЗ + | (ВЫБРАТЬ + | РеквизитыДляКонтроля.Свойство КАК Свойство, + | РеквизитыДляКонтроля.ЗаполнятьОбязательно КАК ЗаполнятьОбязательно, + | РеквизитыДляКонтроля.ЭтоОбщийРеквизит КАК ЭтоОбщийРеквизит, + | 1 КАК Контроль + | ИЗ + | РеквизитыДляКонтроля КАК РеквизитыДляКонтроля + | + | ОБЪЕДИНИТЬ ВСЕ + | + | ВЫБРАТЬ + | ВТРеквизитыДляКонтроля.Свойство КАК Свойство, + | ВТРеквизитыДляКонтроля.ЗаполнятьОбязательно КАК ЗаполнятьОбязательно, + | ВТРеквизитыДляКонтроля.ЭтоОбщийРеквизит КАК ЭтоОбщийРеквизит, + | -1 КАК Контроль + | ИЗ + | ВТВсеДополнительныеРеквизиты КАК ВТРеквизитыДляКонтроля) КАК ВложенныйЗапрос + | + |СГРУППИРОВАТЬ ПО + | ВложенныйЗапрос.Свойство, + | ВложенныйЗапрос.ЗаполнятьОбязательно, + | ВложенныйЗапрос.ЭтоОбщийРеквизит + | + |ИМЕЮЩИЕ + | СУММА(ВложенныйЗапрос.Контроль) > 0 + |; + | + |//////////////////////////////////////////////////////////////////////////////// 2 + |ВЫБРАТЬ + | НаборыДопРеквизитов.Ссылка КАК НаборСвойств, + | ИзменяемыеСвойства.Свойство КАК Свойство, + | ВидыНоменклатуры.Ссылка КАК ВидНоменклатуры + |ИЗ + | Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК НаборыДопРеквизитов + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИзменяемыеСвойства КАК ИзменяемыеСвойства + | ПО НаборыДопРеквизитов.Свойство = ИзменяемыеСвойства.Свойство + | + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры + | ПО (НаборыДопРеквизитов.Ссылка = ВидыНоменклатуры.НаборСвойств + | ИЛИ НаборыДопРеквизитов.Ссылка = ВидыНоменклатуры.НаборСвойствХарактеристик + | ИЛИ НаборыДопРеквизитов.Ссылка = ВидыНоменклатуры.НаборСвойствСерий) + |ГДЕ + | НаборыДопРеквизитов.Ссылка <> &ТекущийНабор + |; + | + |//////////////////////////////////////////////////////////////////////////////// 2 + |ВЫБРАТЬ + | РеквизитыДляКонтроля.Свойство КАК Свойство, + | РеквизитыДляКонтроля.ЗаполнятьОбязательно КАК ЗаполнятьОбязательно, + | РеквизитыДляКонтроля.ЭтоОбщийРеквизит КАК ЭтоОбщийРеквизит + |ИЗ + | РеквизитыДляКонтроля КАК РеквизитыДляКонтроля + | ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ЗависимостиДополнительныхРеквизитов КАК ЗависимостиДополнительныхРеквизитов + | ПО РеквизитыДляКонтроля.Свойство = ЗависимостиДополнительныхРеквизитов.Ссылка + | И ЗависимостиДополнительныхРеквизитов.Условие = ""НеРавно"" + | И ЗависимостиДополнительныхРеквизитов.НаборСвойств = &ТекущийНабор + | И ЗависимостиДополнительныхРеквизитов.Значение = &ВидНоменклатуры + | И ЗависимостиДополнительныхРеквизитов.Реквизит = ""ВидНоменклатуры"" + | И ЗависимостиДополнительныхРеквизитов.ЗависимоеСвойство ПОДОБНО ""ЗаполнятьОбязательно"" + | + | ЛЕВОЕ СОЕДИНЕНИЕ ИзменяемыеСвойства КАК ИзменяемыеСвойства + | ПО РеквизитыДляКонтроля.Свойство = ИзменяемыеСвойства.Свойство + | + |ГДЕ + | НЕ РеквизитыДляКонтроля.ЭтоОбщийРеквизит + | И НЕ РеквизитыДляКонтроля.ЗаполнятьОбязательно + | И ИзменяемыеСвойства.Свойство ЕСТЬ NULL + | И ЗависимостиДополнительныхРеквизитов.Ссылка ЕСТЬ NULL"; + + Если НазначениеДопРеквзитов = "Номенклатура" Тогда + РеквизитыДляКонтроля = Объект.РеквизитыДляКонтроляНоменклатуры; + НаборСвойств = Объект.НаборСвойств; + ОбщийНабор = УправлениеСвойствами.НаборСвойствПоИмени("Справочник_Номенклатура_Общие"); + ИначеЕсли НазначениеДопРеквзитов = "ХарактеристикиНоменклатуры" Тогда + РеквизитыДляКонтроля = Объект.РеквизитыДляКонтроляХарактеристик; + НаборСвойств = Объект.НаборСвойствХарактеристик; + ОбщийНабор = УправлениеСвойствами.НаборСвойствПоИмени("Справочник_ХарактеристикиНоменклатуры_Общие"); + ИначеЕсли НазначениеДопРеквзитов = "СерииНоменклатуры" Тогда + РеквизитыДляКонтроля = Объект.РеквизитыДляКонтроляСерий; + НаборСвойств = Объект.НаборСвойствСерий; + ОбщийНабор = УправлениеСвойствами.НаборСвойствПоИмени("Справочник_СерииНоменклатуры_Общие"); + КонецЕсли; + + ОтборСтрок = Новый Структура("ЭтоДопРеквизит", Истина); + + Запрос.УстановитьПараметр("РеквизитыДляКонтроля", РеквизитыДляКонтроля.Выгрузить(ОтборСтрок)); + Запрос.УстановитьПараметр("ТекущийНабор", НаборСвойств); + Запрос.УстановитьПараметр("ВидНоменклатуры", Объект.Ссылка); + + Результаты = Запрос.ВыполнитьПакетСПромежуточнымиДанными(); + + ВыборкаПоСвойствам = Результаты[1].Выбрать(); + + НаборыСвойств = Результаты[2].Выгрузить(); // ТаблицаЗначений + НаборыСвойств.Индексы.Добавить("Свойство"); + + Пока ВыборкаПоСвойствам.Следующий() Цикл + + СвойствоОбъект = ВыборкаПоСвойствам.Свойство.ПолучитьОбъект(); // ПланВидовХарактеристикОбъект.ДополнительныеРеквизитыИСведения + + Если ВыборкаПоСвойствам.ЭтоОбщийРеквизит Тогда + + ОтборСтрок = Новый Структура; + ОтборСтрок.Вставить("ЗависимоеСвойство", "ЗаполнятьОбязательно"); + ОтборСтрок.Вставить("НаборСвойств", ОбщийНабор); + ОтборСтрок.Вставить("Реквизит", "ВидНоменклатуры"); + ОтборСтрок.Вставить("Значение", Объект.Ссылка); + + НайденныеСтроки = СвойствоОбъект.ЗависимостиДополнительныхРеквизитов.НайтиСтроки(ОтборСтрок); + + Если ВыборкаПоСвойствам.ЗаполнятьОбязательно Тогда + + СвойствоОбъект.ЗаполнятьОбязательно = Истина; + + Если НайденныеСтроки.Количество() = 0 Тогда + СтрокаТЧ = СвойствоОбъект.ЗависимостиДополнительныхРеквизитов.Добавить(); + СтрокаТЧ.ЗависимоеСвойство = "ЗаполнятьОбязательно"; + СтрокаТЧ.НаборСвойств = ОбщийНабор; + СтрокаТЧ.Реквизит = "ВидНоменклатуры"; + СтрокаТЧ.Значение = Объект.Ссылка; + Иначе + СтрокаТЧ = НайденныеСтроки[0]; + КонецЕсли; + + СтрокаТЧ.Условие = "ВСписке"; + + Иначе + + Для Каждого СтрМас Из НайденныеСтроки Цикл + СвойствоОбъект.ЗависимостиДополнительныхРеквизитов.Удалить(СтрМас); + КонецЦикла; + + ОтборСтрок = Новый Структура; + ОтборСтрок.Вставить("ЗависимоеСвойство", "ЗаполнятьОбязательно"); + ОтборСтрок.Вставить("НаборСвойств", ОбщийНабор); + ОтборСтрок.Вставить("Реквизит", "ВидНоменклатуры"); + + НайденныеСтроки = СвойствоОбъект.ЗависимостиДополнительныхРеквизитов.НайтиСтроки(ОтборСтрок); + + Если НайденныеСтроки.Количество() = 0 Тогда + СвойствоОбъект.ЗаполнятьОбязательно = Ложь; + КонецЕсли; + + КонецЕсли; + + Иначе + + Если ВыборкаПоСвойствам.ЗаполнятьОбязательно Тогда + + Если Не СвойствоОбъект.ЗаполнятьОбязательно Тогда + + ОтборСтрок = Новый Структура; + ОтборСтрок.Вставить("ЗависимоеСвойство", "ЗаполнятьОбязательно"); + ОтборСтрок.Вставить("Реквизит", "ВидНоменклатуры"); + + НайденныеСтроки = СвойствоОбъект.ЗависимостиДополнительныхРеквизитов.НайтиСтроки(ОтборСтрок); + + Для Каждого СтрМас Из НайденныеСтроки Цикл + СвойствоОбъект.ЗависимостиДополнительныхРеквизитов.Удалить(СтрМас); + КонецЦикла; + + ОтборСтрок = Новый Структура("Свойство", ВыборкаПоСвойствам.Свойство); + НайденныеСтроки = НаборыСвойств.НайтиСтроки(ОтборСтрок); + + Для Каждого СтрТабл Из НайденныеСтроки Цикл + Если СтрТабл.ВидНоменклатуры = Объект.Ссылка Тогда + Продолжить; + КонецЕсли; + + СтрокаТЧ = СвойствоОбъект.ЗависимостиДополнительныхРеквизитов.Добавить(); + СтрокаТЧ.ЗависимоеСвойство = "ЗаполнятьОбязательно"; + СтрокаТЧ.НаборСвойств = СтрТабл.НаборСвойств; + СтрокаТЧ.Реквизит = "ВидНоменклатуры"; + СтрокаТЧ.Значение = СтрТабл.ВидНоменклатуры; + СтрокаТЧ.Условие = "НеРавно"; + КонецЦикла; + + СвойствоОбъект.ЗаполнятьОбязательно = Истина; + + КонецЕсли; + + ОтборСтрок = Новый Структура; + ОтборСтрок.Вставить("ЗависимоеСвойство", "ЗаполнятьОбязательно"); + ОтборСтрок.Вставить("НаборСвойств", НаборСвойств); + ОтборСтрок.Вставить("Реквизит", "ВидНоменклатуры"); + + НайденныеСтроки = СвойствоОбъект.ЗависимостиДополнительныхРеквизитов.НайтиСтроки(ОтборСтрок); + + Если НайденныеСтроки.Количество() > 0 Тогда + СтрокаТЧ = НайденныеСтроки[0]; + Иначе + СтрокаТЧ = СвойствоОбъект.ЗависимостиДополнительныхРеквизитов.Добавить(); + КонецЕсли; + + СтрокаТЧ.ЗависимоеСвойство = "ЗаполнятьОбязательно"; + СтрокаТЧ.НаборСвойств = НаборСвойств; + СтрокаТЧ.Реквизит = "ВидНоменклатуры"; + СтрокаТЧ.Значение = Объект.Ссылка; + СтрокаТЧ.Условие = "Равно"; + + Иначе + + ЕстьРеквизитГдеНаборИспользуется = Ложь; + СтрокаПоТекущемуНаборуУжеЕсть = Ложь; + + Для Каждого СтрТабл Из СвойствоОбъект.ЗависимостиДополнительныхРеквизитов Цикл + + Если СтрТабл.ЗависимоеСвойство = "ЗаполнятьОбязательно" + И СтрТабл.НаборСвойств <> НаборСвойств + И СтрТабл.Реквизит = "ВидНоменклатуры" + И СтрТабл.Условие = "Равно" Тогда + + ЕстьРеквизитГдеНаборИспользуется = Истина; + + ИначеЕсли СтрТабл.ЗависимоеСвойство = "ЗаполнятьОбязательно" + И СтрТабл.НаборСвойств = НаборСвойств + И СтрТабл.Реквизит = "ВидНоменклатуры" Тогда + + СтрокаПоТекущемуНаборуУжеЕсть = Истина; + + СтрТабл.Условие = "НеРавно"; + СтрТабл.Значение = Объект.Ссылка; + + КонецЕсли; + + КонецЦикла; + + Если Не ЕстьРеквизитГдеНаборИспользуется Тогда + + СвойствоОбъект.ЗаполнятьОбязательно = Ложь; + + ОтборСтрок = Новый Структура; + ОтборСтрок.Вставить("ЗависимоеСвойство", "ЗаполнятьОбязательно"); + ОтборСтрок.Вставить("Реквизит", "ВидНоменклатуры"); + + НайденныеСтроки = СвойствоОбъект.ЗависимостиДополнительныхРеквизитов.НайтиСтроки(ОтборСтрок); + + Для Каждого СтрМас Из НайденныеСтроки Цикл + СвойствоОбъект.ЗависимостиДополнительныхРеквизитов.Удалить(СтрМас); + КонецЦикла; + + ИначеЕсли Не СтрокаПоТекущемуНаборуУжеЕсть Тогда + + СтрокаТЧ = СвойствоОбъект.ЗависимостиДополнительныхРеквизитов.Добавить(); + СтрокаТЧ.ЗависимоеСвойство = "ЗаполнятьОбязательно"; + СтрокаТЧ.НаборСвойств = НаборСвойств; + СтрокаТЧ.Реквизит = "ВидНоменклатуры"; + СтрокаТЧ.Значение = Объект.Ссылка; + СтрокаТЧ.Условие = "НеРавно"; + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + СвойствоОбъект.Записать(); + + КонецЦикла; + + ВыборкаПоСвойствам = Результаты[3].Выбрать(); + + Пока ВыборкаПоСвойствам.Следующий() Цикл + + СвойствоОбъект = ВыборкаПоСвойствам.Свойство.ПолучитьОбъект(); // ПланВидовХарактеристикОбъект.ДополнительныеРеквизитыИСведения + + ЕстьРеквизитГдеНаборИспользуется = Ложь; + + Для Каждого СтрТабл Из СвойствоОбъект.ЗависимостиДополнительныхРеквизитов Цикл + + Если СтрТабл.ЗависимоеСвойство = "ЗаполнятьОбязательно" + И СтрТабл.НаборСвойств <> НаборСвойств + И СтрТабл.Реквизит = "ВидНоменклатуры" + И СтрТабл.Условие = "Равно" Тогда + + ЕстьРеквизитГдеНаборИспользуется = Истина; + + КонецЕсли; + + КонецЦикла; + + Если Не ЕстьРеквизитГдеНаборИспользуется Тогда + + СвойствоОбъект.ЗаполнятьОбязательно = Ложь; + + ОтборСтрок = Новый Структура; + ОтборСтрок.Вставить("ЗависимоеСвойство", "ЗаполнятьОбязательно"); + ОтборСтрок.Вставить("Реквизит", "ВидНоменклатуры"); + + НайденныеСтроки = СвойствоОбъект.ЗависимостиДополнительныхРеквизитов.НайтиСтроки(ОтборСтрок); + + Для Каждого СтрМас Из НайденныеСтроки Цикл + СвойствоОбъект.ЗависимостиДополнительныхРеквизитов.Удалить(СтрМас); + КонецЦикла; + + Иначе + + СтрокаТЧ = СвойствоОбъект.ЗависимостиДополнительныхРеквизитов.Добавить(); + СтрокаТЧ.ЗависимоеСвойство = "ЗаполнятьОбязательно"; + СтрокаТЧ.НаборСвойств = НаборСвойств; + СтрокаТЧ.Реквизит = "ВидНоменклатуры"; + СтрокаТЧ.Значение = Объект.Ссылка; + СтрокаТЧ.Условие = "НеРавно"; + + КонецЕсли; + + СвойствоОбъект.Записать(); + + КонецЦикла; + +КонецПроцедуры + +// Устанавливает настройки свойств расширенной подсказки поля классификатора. +// +// Параметры: +// ИмяЭлемента - Строка - имя поля элемента классификатора. +// ДанныеКлассификатора - ЛюбаяСсылка, Строка - данные классификатора. Для кода классификатора ссылочного типа, +// в качестве параметра передается его значение, в противном случае +// строковое наименование значения. +// +&НаСервере +Процедура НастроитьПодсказкуПоляКлассификатора(ИмяЭлемента, ДанныеКлассификатора) + + Если Не Элементы[ИмяЭлемента].Видимость Тогда + Возврат; + КонецЕсли; + + ТипДанныхСтрока = ТипЗнч(ДанныеКлассификатора) = Тип("Строка"); + КодУказан = ?(ТипДанныхСтрока, ПустаяСтрока(ДанныеКлассификатора), ДанныеКлассификатора.Пустая()); + + Если КодУказан Тогда + Элементы[ИмяЭлемента].ОтображениеПодсказки = ОтображениеПодсказки.Авто; + Элементы[ИмяЭлемента].РасширеннаяПодсказка.Заголовок = ""; + Иначе + НаименованиеПоКлассификатору = ?(ТипДанныхСтрока, + ДанныеКлассификатора, + ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДанныеКлассификатора, "Наименование")); + + Элементы[ИмяЭлемента].ОтображениеПодсказки = ОтображениеПодсказки.Кнопка; + Элементы[ИмяЭлемента].РасширеннаяПодсказка.Заголовок = НаименованиеПоКлассификатору; + КонецЕсли; + +КонецПроцедуры + +//++ Локализация +#Область НастройкаИнтеграцииСФГИС + +&НаКлиенте +Процедура НастройкаИнтеграцииСФГИСЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Если Результат <> Неопределено Тогда + КлючВидовПродукции = Результат.КлючВидовПродукции; + ПриИзмененииКлючаВидовПродукции(); + Модифицированность = Истина; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПриИзмененииКлючаВидовПродукции() + + ИнтеграцияИС.ЗаполнитьДанныеПоКлючуВидовПродукции(ЭтотОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ЗаписатьКлючВидовПродукции(Ссылка) + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ОписаниеНоменклатурыИС"); + ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; + ЭлементБлокировки.УстановитьЗначение("Номенклатура", Ссылка); + + НачатьТранзакцию(); + + Попытка + + Блокировка.Заблокировать(); + + Запись = РегистрыСведений.ОписаниеНоменклатурыИС.СоздатьМенеджерЗаписи(); + Запись.Номенклатура = Ссылка; + Запись.Прочитать(); + Если Не Запись.Выбран() Тогда + Запись.Номенклатура = Ссылка; + Запись.ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ПотребительскаяУпаковка; + Запись.КоличествоВПотребительскойУпаковке = 1; + КонецЕсли; + Запись.КлючВидовПродукции = КлючВидовПродукции; + Если ЗначениеЗаполнено(Запись.КлючВидовПродукции) Тогда + Запись.Записать(); + Иначе + Запись.Удалить(); + КонецЕсли; + + ЗафиксироватьТранзакцию(); + + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + + КонецПопытки; + +КонецПроцедуры + +&НаСервере +Процедура НастроитьДоступныеРеквизитыСерий() + + Элементы.ГруппаРеквизитыЛокализацииСерий.Видимость = Истина; + // Устаревшие (только включенные) + Элементы.ИспользоватьНомерКИЗГИСМСерии.Видимость = Объект.ИспользоватьНомерКИЗГИСМСерии; + Элементы.ИспользоватьСправку2ЕГАИССерии.Видимость = Объект.ИспользоватьСправку2ЕГАИССерии; + Элементы.ИспользоватьЗаписьСкладскогоЖурналаВЕТИССерии.Видимость = Объект.ИспользоватьЗаписьСкладскогоЖурналаВЕТИССерии; + // По подсистемам + Элементы.ИспользоватьПроизводителяЕГАИССерии.Видимость = ИспользуетсяПодсистемаЕГАИС; + Элементы.ИспользоватьПроизводителяВЕТИССерии.Видимость = ИспользуетсяПодсистемаВЕТИС; + Элементы.ИспользоватьИдентификаторПартииВЕТИССерии.Видимость = ИспользуетсяПодсистемаВЕТИС; + Элементы.ИспользоватьМРЦМОТПСерии.Видимость = ИспользуетсяПодсистемаГИСМТ; + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьКлючВидовПродукции() + + Данные = ОбщегоНазначенияИС.ОписаниеНоменклатуры(Объект.Ссылка)[Объект.Ссылка]; + Если Данные = Неопределено Тогда + КлючВидовПродукции = Неопределено; + Иначе + КлючВидовПродукции = Данные.КлючВидовПродукции; + КонецЕсли; + + ТребуетсяОбновлениеКлассификатораВидовПродукции = Не ЗначениеЗаполнено(КлючВидовПродукции) + И Данные.ИдентификаторыВидовПродукции <> Неопределено; + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПослеЗагрузкиКлассификаторов(Результат, ДополнительныеПараметры) Экспорт + + Прочитать(); + +КонецПроцедуры + +#КонецОбласти +//-- Локализация + +#КонецОбласти + +#Область Локализация + +&НаСервере +Процедура ПриСозданииНаСервереЛокализация() + + //++ Локализация + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("РежимПредставленияОбъектаСервиса", "Гиперссылка"); + РаботаСНоменклатурой.ПриСозданииНаСервереФормаВидаНоменклатуры(ЭтотОбъект, Объект.Ссылка, Элементы.ГруппаРаботаСНоменклатурой, ДополнительныеПараметры); + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + + НаименованиеОКВЭД2 = НаименованиеОКВЭД2(Объект.КодОКВЭД2); + ИнтерактивнаяЗагрузкаКлассификаторовДоступна = РаботаСКлассификаторами.ИнтерактивнаяЗагрузкаКлассификаторовДоступна(); + + //-- Локализация + + Возврат; + +КонецПроцедуры + +&НаСервере +Процедура ПриЗаписиНаСервереЛокализация(Отказ, ТекущийОбъект) + + //++ Локализация + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + РаботаСНоменклатурой.ПриЗаписиНаСервереФормаВидаНоменклатуры(ЭтотОбъект, ТекущийОбъект, Отказ); + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + + ЗаписатьКлючВидовПродукции(ТекущийОбъект.Ссылка); + + //-- Локализация + + Возврат; + +КонецПроцедуры + +&НаСервере +Процедура ОбработкаПроверкиЗаполненияНаСервереЛокализация(Отказ, ПроверяемыеРеквизиты) + + //++ Локализация + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + РаботаСНоменклатурой.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты); + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + + //-- Локализация + + Возврат; + +КонецПроцедуры + +&НаСервере +Процедура НастроитьФормуЛокализация(ВидимостьЭлементов) + + //++ Локализация + БазоваяВерсия = ПолучитьФункциональнуюОпцию("БазоваяВерсия"); + + Элементы.ГруппаНаименованиеДляПечатиТТН.ТолькоПросмотр = Не ЕстьПравоРедактирования; + + Элементы.НадписьЕстьОтборПолитикиПоУчетуОстатковПоСериямЕстьОрдерныеСклады.Видимость = + Элементы.НадписьЕстьОтборПолитикиПоУчетуОстатковПоСериямЕстьОрдерныеСклады.Видимость; + + Элементы.ВестиУчетПоГТД.Заголовок = НоменклатураЛокализация.ЗаголовокВестиУчетПоГТД(); + + #Область ТТН + ВидимостьНаименованийДляТТН = ПолучитьФункциональнуюОпцию("ИспользоватьТТН") + И (Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар + Или Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.МногооборотнаяТара); + + Элементы.ИспользоватьОбщееНаименованиеДляПечати.Видимость = ВидимостьНаименованийДляТТН; + Элементы.ОбщееНаименованиеДляПечати.Видимость = ВидимостьНаименованийДляТТН; + Элементы.ИспользоватьИндивидуальноеНаименование.Видимость = ВидимостьНаименованийДляТТН; + Элементы.НаименованиеДляПечати.Видимость = ВидимостьНаименованийДляТТН; + Элементы.ГруппаНаименованиеДляПечатиТТНЗаголовок.Видимость = ВидимостьНаименованийДляТТН; + #КонецОбласти + + НоменклатураЛокализация.НастроитьПодсказкиПолейКлассификаторов(ЭтотОбъект, ВидимостьЭлементов); + //-- Локализация + +КонецПроцедуры + +//++ Локализация +#Область РаботаСНоменклатуройПодключаемыеКоманды + +// ЭлектронноеВзаимодействие.РаботаСНоменклатурой +&НаКлиенте +Процедура Подключаемый_НачалоВыбораРаботаСНоменклатурой(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаСНоменклатуройКлиент.ВыбратьОбъектСервиса(ЭтотОбъект, Элемент, СтандартнаяОбработка, Ложь, + Новый ОписаниеОповещения("ЗакрытиеФормыВыбораОбъектаСервиса", ЭтотОбъект, Новый Структура)); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ОчисткаРаботаСНоменклатурой(Элемент, СтандартнаяОбработка) + + РаботаСНоменклатуройКлиент.НажатиеОчиститьКатегорию(ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_НажатиеРежимОбновленияРаботаСНоменклатурой(Элемент) + + РаботаСНоменклатуройКлиент.НажатиеРежимОбновления(ЭтотОбъект, ПодготовитьДанныеФормы(), + Новый ОписаниеОповещения("ЗакрытиеФормыЗаполненияОбъекта", ЭтотОбъект)); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ОткрытьРаботаСНоменклатурой(Элемент, СтандартнаяОбработка) + + РаботаСНоменклатуройКлиент.ОткрытьКарточкуОбъектаСервиса(ЭтотОбъект, Элемент, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_НажатиеРаботаСНоменклатурой(Элемент, СтандартнаяОбработка) + + РаботаСНоменклатуройКлиент.НажатиеГиперссылки(ЭтотОбъект, Элемент, СтандартнаяОбработка, + Новый ОписаниеОповещения("ЗакрытиеФормыВыбораОбъектаСервиса", ЭтотОбъект, Новый Структура)); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ОбработкаНавигационнойСсылкиРаботаСНоменклатурой(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + + РаботаСНоменклатуройКлиент.НажатиеГиперссылки(ЭтотОбъект, Элемент, СтандартнаяОбработка, + Новый ОписаниеОповещения("ЗакрытиеФормыВыбораОбъектаСервиса", ЭтотОбъект, Новый Структура)); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗакрытиеФормыВыбораОбъектаСервиса(ДанныеОбъекта, ДополнительныеПараметры) Экспорт + + РаботаСНоменклатуройКлиент.ОбработкаОповещенияЗакрытиеФормыВыбора( + ДанныеОбъекта, ДополнительныеПараметры, ПодготовитьДанныеФормы(), + Новый ОписаниеОповещения("ЗакрытиеФормыЗаполненияОбъекта", ЭтотОбъект)); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗакрытиеФормыЗаполненияОбъекта(ПараметрыЗакрытияФормы, ДополнительныеПараметры) Экспорт + + ЗаполнитьРеквизитыФормы(ПараметрыЗакрытияФормы); + +КонецПроцедуры + +&НаСервере +Функция ПодготовитьДанныеФормы() + + Возврат РаботаСНоменклатурой.ПодготовитьДанныеДляИнтерактивногоЗаполнения(ЭтотОбъект); + +КонецФункции + +&НаСервере +Процедура ЗаполнитьРеквизитыФормы(ПараметрыЗакрытияФормы) + + РаботаСНоменклатурой.ЗаполнитьРеквизитыФормы(ЭтотОбъект, ПараметрыЗакрытияФормы); + + НастроитьФорму(); + +КонецПроцедуры + +&НаСервере +Процедура ПерезаполнитьИдентификаторыКатегорий() + + РаботаСНоменклатурой.ПерезаполнитьВстроенныеРеквизиты(ЭтотОбъект); + +КонецПроцедуры + +// Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + +#КонецОбласти +//-- Локализация + +//++ Локализация + +&НаСервере +Процедура КодОКВЭД2ПриИзмененииСервер() + + НаименованиеОКВЭД2 = НаименованиеОКВЭД2(Объект.КодОКВЭД2); + + НастроитьПодсказкуПоляКлассификатора(Элементы.КодОКВЭД2.Имя, НаименованиеОКВЭД2); + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ПодборОКВЭДСервер(Знач СтрокаПоиска) + + ПараметрыПодбора = КлассификаторОКВЭД.НовыйОтбор(); + ПараметрыПодбора.СтрокаПоиска = СтрокаПоиска; + ПараметрыПодбора.Режим = "КодИНаименование"; + ПараметрыПодбора.Разрешенные = Истина; + + Возврат КлассификаторОКВЭД.Подбор(ПараметрыПодбора); + +КонецФункции + +&НаКлиенте +Процедура ПодборИзОКВЭДЗавершение(РезультатВыбора, ДополнительныеПараметры) Экспорт + + Если ТипЗнч(РезультатВыбора) <> Тип("Структура") + Или РезультатВыбора.ВыбранныеЗначения.Количество() = 0 Тогда + + Возврат; + + КонецЕсли; + + Если Не Объект.КодОКВЭД2 = РезультатВыбора.ВыбранныеЗначения[0].Код Тогда + Модифицированность = Истина; + + Объект.КодОКВЭД2 = РезультатВыбора.ВыбранныеЗначения[0].Код; + НаименованиеОКВЭД2 = РезультатВыбора.ВыбранныеЗначения[0].Наименование; + + НастроитьПодсказкуПоляКлассификатора(Элементы.КодОКВЭД2.Имя, НаименованиеОКВЭД2); + КонецЕсли; + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция НаименованиеОКВЭД2(КодОКВЭД2) + + НаименованиеОКВЭД2 = ""; + + Если ЗначениеЗаполнено(КодОКВЭД2) Тогда + ЗначениеОКВЭД2ПоКоду = КлассификаторОКВЭД.ЗначениеПоКоду(КодОКВЭД2, Ложь); + + Если ЗначениеОКВЭД2ПоКоду.Количество() > 0 Тогда + НаименованиеОКВЭД2 = ЗначениеОКВЭД2ПоКоду[0].Наименование; + КонецЕсли; + КонецЕсли; + + Возврат НаименованиеОКВЭД2; + +КонецФункции + +//-- Локализация + +#КонецОбласти + +&НаСервере +Процедура НастроитьЗакладкуНастройкиЦенообразования() + + Если Не ИспользуетсяЦенообразование25 Тогда + + Элементы.СтраницаНастройкиЦенообразования.Видимость = Ложь; + Возврат; + + КонецЕсли; + + ИспользоватьХарактеристикиНоменклатуры = ИспользуетсяЦенообразование25 И ПолучитьФункциональнуюОпцию("ИспользоватьХарактеристикиНоменклатуры"); + ИспользоватьСерииНоменклатуры = ИспользуетсяЦенообразование25 И ПолучитьФункциональнуюОпцию("ИспользоватьСерииНоменклатуры"); + ИспользоватьУпаковкиНоменклатуры = ИспользуетсяЦенообразование25 И ПолучитьФункциональнуюОпцию("ИспользоватьУпаковкиНоменклатуры"); + + НастройкаСерийДляЦенообразования = ПолучитьНастройкиИспользованияСерииДляЦенообразования(); + + Элементы.ГруппаНастройкиЦенообразованияПоХарактеристикам.Видимость = ИспользоватьХарактеристикиНоменклатуры; + Элементы.ГруппаНастройкиЦенообразованияПоСериям.Видимость = ИспользоватьСерииНоменклатуры; + Элементы.ГруппаНастройкиЦенообразованияПоУпаковкам.Видимость = ИспользоватьУпаковкиНоменклатуры; + + Элементы.НастройкиКлючаЦенПоХарактеристике.Доступность = Объект.ИспользоватьХарактеристики + И Не Объект.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры; + Элементы.НастройкиКлючаЦенПоСерии.Доступность = НастройкаСерийДляЦенообразования.Использовать + И Не Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры; + + Если ИспользоватьХарактеристикиНоменклатуры Тогда + + Если НЕ Объект.ИспользоватьХарактеристики Тогда + Элементы.ГруппаНастройкиЦенообразованияПоХарактеристикамИнформация.Видимость = Истина; + Элементы.КомментарийИспользованияХарактеристики.Заголовок = НСтр("ru = 'Невозможно включение ведения ценообразования по характеристикам по следующим причинам: + | - по виду номенклатуры не ведется учет в разрезе характеристик'"); + ИначеЕсли Объект.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры Тогда + Элементы.ГруппаНастройкиЦенообразованияПоХарактеристикамИнформация.Видимость = Истина; + Элементы.КомментарийИспользованияХарактеристики.Заголовок = НСтр("ru = 'Невозможно включение ведения ценообразования по реквизитам характеристик по следующим причинам: + | - по виду номенклатуры учет в разрезе характеристик не общий. Для ведения ценообразования по реквизитам номенклатуры, необходимо изменить режим на общий'"); + ИначеЕсли Объект.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры Тогда + Элементы.ГруппаНастройкиЦенообразованияПоХарактеристикамИнформация.Видимость = Истина; + Элементы.КомментарийИспользованияХарактеристики.Заголовок = НСтр("ru = 'Изменение настроек по характеристикам не возможно по следующим причинам: + | - по виду номенклатуры учет в разрезе характеристик общий с другими видами номенклатуры. + |Изменение настроек характеристик номенклатуры возможно только в форме владельца вида номенклатуры'"); + Иначе + + Элементы.ГруппаНастройкиЦенообразованияПоХарактеристикамИнформация.Видимость = Ложь; + + КонецЕсли; + + Элементы.ИзменитьНаборРеквизитовДляКлючаЦен_Характеристики.Доступность = (Объект.НастройкиКлючаЦенПоХарактеристике = Перечисления.ВариантОтбораДляКлючаЦен.ИспользоватьПоРеквизитам + И Объект.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры + И Не Элементы.НастройкиКлючаЦенПоХарактеристике.ТолькоПросмотр); + + СписокВыбора = Элементы.НастройкиКлючаЦенПоХарактеристике.СписокВыбора; + СписокВыбора.Очистить(); + + СписокВыбора.Добавить(Перечисления.ВариантОтбораДляКлючаЦен.НеИспользовать, Нстр("ru = 'без характеристик'")); + СписокВыбора.Добавить(Перечисления.ВариантОтбораДляКлючаЦен.Использовать, Нстр("ru = 'по характеристикам'")); + Если Объект.ИспользованиеХарактеристик <> Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры Тогда + СписокВыбора.Добавить(Перечисления.ВариантОтбораДляКлючаЦен.ИспользоватьПоРеквизитам, Нстр("ru = 'по реквизитам характеристик'")); + Элементы.ИзменитьНаборРеквизитовДляКлючаЦен_Характеристики.Видимость = Истина; + Иначе + Элементы.ИзменитьНаборРеквизитовДляКлючаЦен_Характеристики.Видимость = Ложь; + КонецЕсли; + + СформироватьНадписьРазрезаЦенообразования("Характеристики"); + + КонецЕсли; + + Если ИспользоватьСерииНоменклатуры Тогда + + Элементы.ГруппаНастройкиЦенообразованияПоСериямИнформация.Видимость = НЕ НастройкаСерийДляЦенообразования.Использовать; + Элементы.КомментарийИспользованияСерии.Заголовок = НастройкаСерийДляЦенообразования.Комментарий; + + Элементы.ИзменитьНаборРеквизитовДляКлючаЦен_Серии.Доступность = (Объект.НастройкиКлючаЦенПоСерии = Перечисления.ВариантОтбораДляКлючаЦен.ИспользоватьПоРеквизитам + И Не Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + И Не Элементы.НастройкиКлючаЦенПоСерии.ТолькоПросмотр); + + СформироватьНадписьРазрезаЦенообразования("Серии"); + + КонецЕсли; + + ОбновитьРазрезыЦенообразования(); + +КонецПроцедуры + +&НаСервере +Функция ПолучитьНастройкиИспользованияСерииДляЦенообразования() + + НастройкаСерийДляЦенообразования = Новый Структура("Использовать, Комментарий", Истина, ""); + + Если НЕ Объект.ИспользоватьСерии Тогда + НастройкаСерийДляЦенообразования.Использовать = Ложь; + НастройкаСерийДляЦенообразования.Комментарий = НСтр("ru = 'Невозможно включение ведения ценообразования по сериям по следующим причинам: + | - по виду номенклатуры не ведется учет в разрезе серий'"); + ИначеЕсли Объект.НастройкиСерийБерутсяИзДругогоВидаНоменклатуры Тогда + НастройкаСерийДляЦенообразования.Использовать = Ложь; + НастройкаСерийДляЦенообразования.Комментарий = НСтр("ru = 'Невозможно включение ведения ценообразования по сериям по следующим причинам: + | - по виду номенклатуры учет в разрезе серий общий с другими видами номенклатуры. + |Изменение настроек серий номенклатуры возможно только в форме владельца вида номенклатуры'"); + КонецЕсли; + + Возврат НастройкаСерийДляЦенообразования; + +КонецФункции + +&НаКлиенте +Процедура НастройкиКлючаЦенПоХарактеристикеПриИзменении(Элемент) + НастройкиКлючаЦенПоХарактеристикеПриИзмененииНаСервере(); +КонецПроцедуры + +&НаСервере +Процедура НастройкиКлючаЦенПоХарактеристикеПриИзмененииНаСервере() + НастроитьЗакладкуНастройкиЦенообразования(); +КонецПроцедуры + +&НаКлиенте +Процедура НастройкиКлючаЦенПоСерииПриИзменении(Элемент) + НастройкиКлючаЦенПоСерииПриИзмененииНаСервере(); +КонецПроцедуры + +&НаСервере +Процедура НастройкиКлючаЦенПоСерииПриИзмененииНаСервере() + НастроитьЗакладкуНастройкиЦенообразования(); +КонецПроцедуры + +&НаСервере +Процедура НастройкиКлючаЦенПоУпаковкеПриИзмененииНаСервере() + НастроитьЗакладкуНастройкиЦенообразования(); +КонецПроцедуры + +&НаКлиенте +Процедура НастройкиКлючаЦенПоУпаковкеПриИзменении(Элемент) + НастройкиКлючаЦенПоУпаковкеПриИзмененииНаСервере(); +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьНаборРеквизитовХарактеристикДляКлючаЦенОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + Если НавигационнаяСсылкаФорматированнойСтроки = "ИзменитьНастройкуИспользованияРеквизитов" Тогда + ИзменитьПанельХарактеристикиДляКлюча(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьНаборРеквизитовСерийДляКлючаЦенОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + Если НавигационнаяСсылкаФорматированнойСтроки = "ИзменитьНастройкуИспользованияРеквизитов" Тогда + ИзменитьПанельСерииДляКлюча(); + КонецЕсли; +КонецПроцедуры diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаЭлемента/Ext/Help.xml b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаЭлемента/Ext/Help.xml new file mode 100644 index 0000000..d983f4c --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаЭлемента/Ext/Help.xml @@ -0,0 +1,4 @@ + + + ru + \ No newline at end of file diff --git a/src/Catalogs/ВидыНоменклатуры/Forms/ФормаЭлемента/Ext/Help/ru.html b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаЭлемента/Ext/Help/ru.html new file mode 100644 index 0000000..268ce2f --- /dev/null +++ b/src/Catalogs/ВидыНоменклатуры/Forms/ФормаЭлемента/Ext/Help/ru.html @@ -0,0 +1,44 @@ + +

Вид номенклатуры

+

Справочник является классификатором, предназначенным для объединения номенклатуры по общим признакам учета. Фактически виды номенклатуры - это ассортиментные группы продаваемых товаров. При продаже товаров в розницу (со склада типа Розничный) в соответствии с видами номенклатуры могут быть созданы товарные категории и определены квоты ассортимента по каждой товарной категории в соответствии с форматом магазина.

+

Тип номенклатуры

+

Характеристики номенклатуры

+

Серии номенклатуры

+

Дополнительные реквизиты

+

Шаблоны наименований

+

Значения по умолчанию

+

Дополнительные материалы на ИТС:

+

Основная информации для вида номенклатуры

+

Вариант использования характеристик для вида номенклатуры

+

Определение общего списка характеристик

+

Дополнительные реквизиты и сведения для нового вида номенклатуры

+

Настройка быстрого отбор в списках и при подборе номенклатуры

+

Шаблоны наименований.

+

Настройка ценообразования

+

Основная информации для вида номенклатуры

+

В форме вида номенклатуры вводится основная информация о виде номенклатуры.

+
  • Группа видов номенклатуры. Группа, в которую входит данный вид номенклатуры. Данная возможность используется в том случае, если на предприятии используется много различных видов номенклатуры, которые необходимо объединять дополнительно в группы.
  • Наименование. Название вида номенклатуры.
  • Тип номенклатуры. Указывается тип, к которому относится номенклатура данного вида. Можно выбрать одно из значений: Товар, Услуга, Работа, Тара.

Информация о таре доступна только в том случае, если включена функциональная опция Многооборотная тара (НСИ и администрирование - Номенклатура - Разрезы учета).

+

Дополнительно указывается информация об использовании характеристик для вида номенклатуры и выбирается политика учета серий, если для данного вида номенклатуры ведется серийный учет (учет по серийным номерам и срокам годности).

+

Вариант использования характеристик для вида номенклатуры

+

Вариант использования характеристик для вида номенклатуры указывается в поле Использовать характеристики.

+

Данную возможность можно использовать только в том случае, если в разделе НСИ и администрирование - Номенклатура - Разрезы учета включена функциональная опция Характеристики номенклатуры.

+

После записи информации о новом виде номенклатуры изменить вариант использования характеристики нельзя.

+

Для вида номенклатуры можно указать следующие варианты использования характеристик:

+
  • Не использовать. Для данного вида номенклатуры не ведется учет в разрезе характеристик.
  • Использовать общие для вида номенклатуры. Назначается общий список характеристик, который используется всеми позициями номенклатуры, которые принадлежат данному виду.
  • Использовать индивидуальные для номенклатуры. Для каждой позиции номенклатуры назначается индивидуальный список характеристик.

Определение общего списка характеристик

+


Для тех видов номенклатуры, для которых поле Использовать характеристики установлено в значение Общие для вида номенклатуры, можно указать список характеристик, который будет использоваться для всех тех номенклатурных позиций, которые относятся к данному виду.

+

Пример. Товары вида Обувь характеризуется размером и цветом модели обуви. В список характеристик добавляется все возможные сочетания цвета и размера обуви: Размер 45, Цвет белый; Размер 37, Цвет белый; Размер 37, Цвет черный и т.д.

Порядок ввода списка характеристик для вида номенклатуры.

+
  • Для редактирования набора свойств характеристик для данного вида номенклатуры необходимо перейти на закладку Дополнительные реквизиты.
  • Откроется окно для редактирования набора свойств номенклатуры и характеристик данного вида номенклатуры.
  • Добавьте в список Дополнительные реквизиты характеристик дополнительные реквизиты, которые необходимы для создания характеристики товара данного вида (например, цвет, размер и т.д.).
  • Здесь же при нажатии на кнопку Общие можно отредактировать список реквизитов и сведений, общих для всего справочника Характеристики номенклатуры.
  • Сохраните изменения при помощи команды Сохранить.
  • Перейдите на закладку Основное, нажмите на гиперссылку Общие характеристики номенклатуры.
  • В появившемся списке характеристик нажмите на кнопку Создать.
  • В новой форме характеристики уже будут добавлены дополнительные реквизиты, которые описывают характеристику данного вида.
  • Укажите значения этих реквизитов.
  • Заполните Рабочее наименование и Наименование для печати.
  • Нажмите на кнопку Записать и закрыть.
  • Информация о характеристике запишется в список характеристик для вида номенклатуры.
  • Аналогичным образом добавьте информацию о других характеристиках, используемых для номенклатуры данного вида.

При вводе информации о товаре, который принадлежит данному виду, его характеристику можно будет выбрать из списка тех общих характеристик, которые определены для данного вида.

+

Дополнительные реквизиты и сведения для нового вида номенклатуры

+

Дополнительные реквизиты и сведения создаются на соответствующих страницах. Отдельно создаются доп.реквизиты и сведения для номенклатуры, характеристик и серий.

+
  • Если дополнительный реквизит (дополнительное сведение) должен показываться для всех позиций номенклатуры, то он добавляется через список по команде Добавить - Общий для всей номенклатуры.
  • Если дополнительный реквизит (дополнительное сведение) должен показываться только для номенклатурных позиций данного вида, то он добавляется с помощью команды Добавить - Новый для вида.
  • Добавить дополнительный реквизит (дополнительное сведение) из другого набора можно с помощью команды Добавить - Из другого набора.

После добавления дополнительных реквизитов нажмите на странице Настройки создания появится список дополнительных реквизитов. Определите для каждого реквизита параметры контроля заполнения и уникальности.

+
  • Информация о дополнительных реквизитах автоматически появится в форме номенклатурной позиции на странице Описание.
  • Список дополнительных сведений заполняется в отдельном диалоговом окне (Все действия-Дополнительные сведения).

Настройка быстрого отбор в списках и при подборе номенклатуры

+
  • В карточке вида номенклатуры перейдите на закладку Панель быстрого отбора.
  • Отобразятся списки реквизитов номенклатуры и реквизитов характеристик, применяемых для быстрого отбора.
  • При помощи кнопки Добавить заполните списки реквизитами, по которым будет осуществляться быстрый отбор.

В качестве параметров быстрого отбора нельзя использовать дополнительные реквизиты составного типа. Такие реквизиты не будут показаны в списке для выбора параметров быстрого отбора.

+

Шаблоны наименований.

+

Шаблоны наименований позволяют создать правило, по которому наименование номенклатуры будет формироваться автоматически, с учетом её реквизитов. Также по шаблону может быть перезаполнено наименование ранее созданной номенклатуры. Задать шаблоны можно на странице Шаблоны наименований с помощью формы Редактирование формулы, которая открывается при выполнении команды Редактировать.

+

Для удобного редактирования шаблона рекомендуется использовать редактор формул, запускаемый по кнопке Редактировать. В редакторе можно выбрать любые реквизиты (в том числе и дополнительные реквизиты) номенклатуры, которые должны включаться в её наименование. Также в наименовании может быть произвольный текст, который следует писать в кавычках «». Для соединения составных частей наименования используется знак плюс «+». Шаблоны наименований задаются отдельно для наименования номенклатуры, характеристики и для вариантов наименования, используемых при печати документов.

+

Пример. Для учета кабелей следует формировать их названия по производителю и техническим параметрам, указанным в доп.реквизитах. Следует задать следующий шаблон наименования:
"Кабель NYM (" + [Производитель] + ") " + [Число жил] + "х" + [Сечение (кв. мм)]
По этому шаблону будет формироваться названия кабелей наподобие следующего: Кабель NYM (Севкабель) 3х1,5

Для каждого шаблона можно настроить обязательность его использования с помощью флажков Запретить редактирование рабочего наименования в карточке номенклатуры и Запретить редактирование наименования для печати в карточке номенклатуры.

+
  • Если флажок установлен, то наименование в карточке номенклатуры или характеристики становится недоступным для редактирования и переформировывается при каждой записи номенклатуры или характеристики.
  • Если флажок не установлен, то заполнить наименование по шаблону можно с помощью команды Заполнить. При этом если наименование не заполнено, то оно формируется при записи номенклатуры автоматически.

Также можно настроить шаблон для рабочего наименования серии. Рабочее наименование серии будет формироваться автоматически, по указанному шаблону, при записи серии.

+

Настройка ценообразования

+

Ценообразование можно вести по следующим разрезам:

+
  • Номенклатуры (обязательный реквизит).
  • Характеристики или ее реквизитов.
  • Серии или ее реквизиты.
  • Упаковок.

При использовании характеристик и /или серий возможно использовать не сами элементы, а их реквизиты.
Например, если характеристика состоит из размера и цвета, то для учета цен можно использовать только размеры (вся обувь определенной модели определенного размера будет иметь цену вне зависимости от цвета.
Например, если серии идентифицируются сроком годности, то для учета цен можно использовать этот реквизит (ценами можно будет управлять в зависимости от срока годности).


Основной реквизит ключа – «Номенклатура». Все остальное можно не использовать. Чем больше разрезов ведения цен выбрано, тем точнее можно вести ценообразование.

+

 

\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Commands/НовыйЭлемент/Ext/CommandModule.bsl b/src/Catalogs/Номенклатура/Commands/НовыйЭлемент/Ext/CommandModule.bsl new file mode 100644 index 0000000..34b071b --- /dev/null +++ b/src/Catalogs/Номенклатура/Commands/НовыйЭлемент/Ext/CommandModule.bsl @@ -0,0 +1,11 @@ + +#Область ОбработчикиСобытий + +&НаКлиенте +Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) + + ОткрытьФорму("Справочник.Номенклатура.ФормаОбъекта",,); + +КонецПроцедуры + +#КонецОбласти diff --git a/src/Catalogs/Номенклатура/Commands/Номенклатура/Ext/CommandModule.bsl b/src/Catalogs/Номенклатура/Commands/Номенклатура/Ext/CommandModule.bsl new file mode 100644 index 0000000..98aba36 --- /dev/null +++ b/src/Catalogs/Номенклатура/Commands/Номенклатура/Ext/CommandModule.bsl @@ -0,0 +1,16 @@ + +#Область ОбработчикиСобытий + +&НаКлиенте +Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) + + ОткрытьФорму( + "Справочник.Номенклатура.ФормаСписка", + , + ПараметрыВыполненияКоманды.Источник, + ПараметрыВыполненияКоманды.Уникальность, + ПараметрыВыполненияКоманды.Окно); + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Ext/Help.xml b/src/Catalogs/Номенклатура/Ext/Help.xml new file mode 100644 index 0000000..d983f4c --- /dev/null +++ b/src/Catalogs/Номенклатура/Ext/Help.xml @@ -0,0 +1,4 @@ + + + ru + \ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Ext/Help/ru.html b/src/Catalogs/Номенклатура/Ext/Help/ru.html new file mode 100644 index 0000000..b2b336f --- /dev/null +++ b/src/Catalogs/Номенклатура/Ext/Help/ru.html @@ -0,0 +1,9 @@ + +

Номенклатура

+

Справочник предназначен для хранения информации о номенклатурных позициях следующих типов: товар, услуга, работа, тара и набор.

+

Подробное описание сценариев ведения справочника приведено в документации https://its.1c.ru/db/utdoc#bookmark:Goods:Goods

+

Позиции номенклатуры могут быть классифицированы по видам номенклатуры.

+

Вид номенклатуры – это дополнительная классификация товаров более обобщенная чем тип, и позволяющая отличать номенклатурные позиции по различным параметрам, например, характеристикам. Причем для более детальной классификации, рекомендуется использование нескольких видов номенклатуры с общим типом.
Вид номенклатуры можно поменять после создания номенклатуры. При этом новый и старый вид номенклатуры должны отвечать следующим требованиям:
- установлен один тип номенклатуры;
- одинаково установлен признак алкогольная продукция;
- одинаково установлен признак содержит драгоценные металлы или камни;
- характеристики не используются, или они индивидуальные для номенклатуры, или общие для нескольких видов (при этом оба вида - новый и старый - должны использовать один набор характеристик);
- серии не используются или настроены одинаково.

+

Пример. Если необходимо разделять услуги, которые оказывает наше предприятие, и услуги, оказываемые сторонними организациями, то можно создать два вида номенклатуры: внутренние услуги и сторонние услуги с одним и тем же типом – услуга.

Дополнительные материалы на ИТС

+

Дополнительные материалы на ИТС

+

 

\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Ext/ManagerModule.bsl b/src/Catalogs/Номенклатура/Ext/ManagerModule.bsl new file mode 100644 index 0000000..4938151 --- /dev/null +++ b/src/Catalogs/Номенклатура/Ext/ManagerModule.bsl @@ -0,0 +1,6471 @@ +#Если НЕ МобильныйАвтономныйСервер Тогда +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область ПрограммныйИнтерфейс + +// СтандартныеПодсистемы.ВерсионированиеОбъектов + +// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов. +// +// Параметры: +// Настройки - Структура - настройки подсистемы. +Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт + +КонецПроцедуры + +// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов + +// Возвращает имена блокируемых реквизитов для механизма блокирования реквизитов БСП. +// +// Возвращаемое значение: +// Массив - имена блокируемых реквизитов. +// +Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт + + БлокируемыеРеквизиты = Новый Массив; + БлокируемыеРеквизиты.Добавить("КодТНВЭД"); + БлокируемыеРеквизиты.Добавить("ЦеноваяГруппа"); + БлокируемыеРеквизиты.Добавить("ИспользоватьУпаковки"); + БлокируемыеРеквизиты.Добавить("НаборУпаковок"); + БлокируемыеРеквизиты.Добавить("Качество"); + БлокируемыеРеквизиты.Добавить("СтавкаНДС"); + БлокируемыеРеквизиты.Добавить("ЕдиницаИзмерения"); + БлокируемыеРеквизиты.Добавить("Принципал"); + БлокируемыеРеквизиты.Добавить("Контрагент"); + БлокируемыеРеквизиты.Добавить("ГруппаФинансовогоУчета"); + + НоменклатураЛокализация.ПолучитьБлокируемыеРеквизитыОбъекта(БлокируемыеРеквизиты); + + Возврат БлокируемыеРеквизиты; + +КонецФункции + +// Проверяет могут ли переданные характеристика и упаковка являться характеристикой и упаковкой переданной +// номенклатуры. При проверке учитывается, что характеристики могут быть общими для вида номенклатуры, +// а упаковки общими для набора упаковок. +// +// Параметры: +// Номенклатура - СправочникСсылка.Номенклатура - номенклатура-владелец характеристик и упаковок +// Характеристика - СправочникСсылка.ХарактеристикиНоменклатуры - проверяемая характеристика +// Упаковка - СправочникСсылка.УпаковкиЕдиницыИзмерения - проверяемая упаковка. +// +// Возвращаемое значение: +// Структура - стуктура с полями: +// * Характеристика - СправочникСсылка.Номенклатура - если проверяемая характеристика подходит, +// то записывается она, если нет - пустая ссылка. +// * Упаковка - СправочникСсылка.УпаковкиЕдиницыИзмерения - если проверяемая упаковка подходит, +// то записывается она, если нет - пустая ссылка. +// * ХарактеристикиИспользуются - Булево - равно ИСТИНА, если по номенклатуре ведется учет характеристик. +// +Функция ХарактеристикаИУпаковкаПринадлежатВладельцу(Номенклатура, Характеристика, Упаковка) Экспорт + СтруктураВозврата = Новый Структура("Характеристика, Упаковка, ХарактеристикиИспользуются"); + СтруктураВозврата.Характеристика = Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка(); + СтруктураВозврата.Упаковка = Справочники.УпаковкиЕдиницыИзмерения.ПустаяСсылка(); + СтруктураВозврата.ХарактеристикиИспользуются = Ложь; + + Если Не ЗначениеЗаполнено(Номенклатура) Тогда + + Возврат СтруктураВозврата; + + КонецЕсли; + + Если ПолучитьФункциональнуюОпцию("ИспользоватьХарактеристикиНоменклатуры") Тогда + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | ЕСТЬNULL(СпрХарактеристики.Ссылка, ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) КАК Характеристика, + | ВЫБОР + | КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры) + | ИЛИ СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры) + | ИЛИ СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры) + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ КАК ХарактеристикиИспользуются + |ИЗ + | Справочник.Номенклатура КАК СпрНоменклатура + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК СпрХарактеристики + | ПО (ВЫБОР + | КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры) + | ТОГДА СпрНоменклатура.ВидНоменклатуры + | КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры) + | ТОГДА СпрНоменклатура.Ссылка + | КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры) + | ТОГДА СпрНоменклатура.ВладелецХарактеристик + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ = СпрХарактеристики.Владелец) + | И (СпрХарактеристики.Ссылка = &Характеристика) + |ГДЕ + | СпрНоменклатура.Ссылка = &Номенклатура"; + + Запрос.УстановитьПараметр("Номенклатура", Номенклатура); + Запрос.УстановитьПараметр("Характеристика", Характеристика); + + Выборка = Запрос.Выполнить().Выбрать(); + Выборка.Следующий(); + + ЗаполнитьЗначенияСвойств(СтруктураВозврата, Выборка); + + КонецЕсли; + + ПараметрыВыбораУпаковки = Новый Структура(); + ПараметрыВыбораУпаковки.Вставить("Номенклатура", Номенклатура); + + ДанныеВыбораУпаковок = Справочники.УпаковкиЕдиницыИзмерения.ПолучитьДанныеВыбора(ПараметрыВыбораУпаковки); + + Для Каждого ЭлементСпискаЗначений Из ДанныеВыбораУпаковок Цикл + Если (ТипЗнч(ЭлементСпискаЗначений.Значение) = Тип("Структура") + И ЭлементСпискаЗначений.Значение.Значение = Упаковка) + Или ЭлементСпискаЗначений.Значение = Упаковка Тогда + СтруктураВозврата.Упаковка = Упаковка; + Прервать; + КонецЕсли; + КонецЦикла; + + Возврат СтруктураВозврата; + +КонецФункции + +// Проверяет используются ли характеристики для переданной номенклатуры +// Параметры: +// Номенклатура - СправочникСсылка.Номенклатура - проверяемая номенклатура +// Возвращаемое значение: +// Булево - ИСТИНА, если характеристики используются. +// +Функция ХарактеристикиИспользуются(Номенклатура) Экспорт + + Если Не ЗначениеЗаполнено(Номенклатура) Тогда + Возврат Ложь; + КонецЕсли; + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ВЫБОР + | КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры) + | ИЛИ СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры) + | ИЛИ СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры) + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ КАК ХарактеристикиИспользуются + |ИЗ + | Справочник.Номенклатура КАК СпрНоменклатура + |ГДЕ + | СпрНоменклатура.Ссылка = &Ссылка"; + + Запрос.УстановитьПараметр("Ссылка", Номенклатура); + + Выборка = Запрос.Выполнить().Выбрать(); + + Выборка.Следующий(); + + Возврат Выборка.ХарактеристикиИспользуются; + +КонецФункции + +// Возвращает имена реквизитов, которые не должны отображаться в списке реквизитов обработки ГрупповоеИзменениеОбъектов. +// +// Возвращаемое значение: +// Массив из Строка - массив имен реквизитов. +// +Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт + + НеРедактируемыеРеквизиты = Новый Массив; + + Если Не ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоВидовНоменклатуры") Тогда + НеРедактируемыеРеквизиты.Добавить("ВидНоменклатуры"); + КонецЕсли; + НеРедактируемыеРеквизиты.Добавить("ЕстьТоварыДругогоКачества"); + НеРедактируемыеРеквизиты.Добавить("ИспользованиеХарактеристик"); + НеРедактируемыеРеквизиты.Добавить("КодДляПоиска"); + НеРедактируемыеРеквизиты.Добавить("НаименованиеПолное"); + НеРедактируемыеРеквизиты.Добавить("ПоставляетсяВМногооборотнойТаре"); + НеРедактируемыеРеквизиты.Добавить("НоменклатураМногооборотнаяТара"); + НеРедактируемыеРеквизиты.Добавить("ХарактеристикаМногооборотнаяТара"); + НеРедактируемыеРеквизиты.Добавить("Описание"); + НеРедактируемыеРеквизиты.Добавить("ТипНоменклатуры"); + НеРедактируемыеРеквизиты.Добавить("ВладелецХарактеристик"); + НеРедактируемыеРеквизиты.Добавить("ВладелецСерий"); + НеРедактируемыеРеквизиты.Добавить("ВладелецТоварныхКатегорий"); + НеРедактируемыеРеквизиты.Добавить("ФайлКартинки"); + НеРедактируемыеРеквизиты.Добавить("ФайлОписанияДляСайта"); + НеРедактируемыеРеквизиты.Добавить("ОсобенностьУчета"); + НеРедактируемыеРеквизиты.Добавить("СтавкаНДС"); + + ОбщегоНазначенияКлиентСервер.ДополнитьМассив(НеРедактируемыеРеквизиты, РеквизитыПризнаковОсобенностейУчета(Метаданные.Справочники.Номенклатура)); + + НоменклатураЛокализация.РеквизитыНеРедактируемыеВГрупповойОбработкеНоменклатура(НеРедактируемыеРеквизиты); + + Возврат НеРедактируемыеРеквизиты; + +КонецФункции + +// Если для переданной номенклатуры ведутся характеристики, то в параметре возвращается владелец характеристик. +// +// Параметры: +// Номенклатура - СправочникСсылка.Номенклатура - проверяемая номенклатура +// ВладелецХарактеристики - СправочникСсылка.Номенклатура, СправочникСсылка.ВидыНоменклатуры - в этом параметре +// возвращается владелец характеристик (это зависит от того, какие характеристики используются - индивидуальные +// или общие для вида номенклатуры). +// Возвращаемое значение: +// Булево - признак того, что для переданной номенклатуры ведется учет по характеристикам. +// +Функция ПроверитьИспользованиеХарактеристикИПолучитьВладельцаДляВыбора(Номенклатура, ВладелецХарактеристики) Экспорт + + СтруктураРеквизитов = Новый Структура; + СтруктураРеквизитов.Вставить("ВидНоменклатуры" , "ВидНоменклатуры"); + СтруктураРеквизитов.Вставить("ИспользованиеХарактеристик", "ИспользованиеХарактеристик"); + СтруктураРеквизитов.Вставить("ВладелецХарактеристик" , "ВладелецХарактеристик"); + ЗначенияРеквизитовВИБ = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Номенклатура, СтруктураРеквизитов); + + Если ЗначенияРеквизитовВИБ.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать Тогда + ИспользованиеХарактеристик = Ложь; + Иначе + ИспользованиеХарактеристик = Истина; + + Если ЗначенияРеквизитовВИБ.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры Тогда + ВладелецХарактеристики = ЗначенияРеквизитовВИБ.ВидНоменклатуры; + ИначеЕсли ЗначенияРеквизитовВИБ.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры Тогда + ВладелецХарактеристики = ЗначенияРеквизитовВИБ.ВладелецХарактеристик; + Иначе + ВладелецХарактеристики = Номенклатура; + КонецЕсли; + КонецЕсли; + + Возврат ИспользованиеХарактеристик; + +КонецФункции + +// Заполняет реквизиты элемента номенклатуры значениями соответствующих реквизитов вида номенклатуры. +// +// Параметры: +// Номенклатура - СправочникОбъект.Номенклатура, ДанныеФормыСтруктура - заполняемый элемент номенклатуры, +// ПрерыватьЗаполнениеПриОшибкеПроверки - Булево - Истина - признак отмены выполнения заполнения данных, +// Отказ - Булево - если происходит смена вида номенклатуры, то делается проверка корректности этой смены. +// Если та проверка выдает ошибку, то параметр выставляется в ИСТИНА. +// СтарыйВидНоменклатуры - СправочникСсылка.ВидыНоменклатуры, Неопределено - передается, если отрабатывается смена вид номенклатуры. +// ЗаполнениеПоИсточникуКопирования - Булево - признак выполнения заполнения данных из источника копирования. +// +Процедура ЗаполнитьРеквизитыПоВидуНоменклатуры(Номенклатура, + ПрерыватьЗаполнениеПриОшибкеПроверки = Ложь, + Отказ = Ложь, + СтарыйВидНоменклатуры = Неопределено, + ЗаполнениеПоИсточникуКопирования = Ложь) Экспорт + + Если Номенклатура.ЭтоГруппа Тогда + Возврат; + КонецЕсли; + + Если Не ЗначениеЗаполнено(Номенклатура.ВидНоменклатуры) Тогда + Возврат; + КонецЕсли; + + Если СтарыйВидНоменклатуры = Неопределено Тогда + Если ЗначениеЗаполнено(Номенклатура.Ссылка) Тогда + СтарыйВидНоменклатуры = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Номенклатура.Ссылка, "ВидНоменклатуры"); + Если ЗначениеЗаполнено(СтарыйВидНоменклатуры) Тогда + ПроверитьКорректностьСменыВидаНоменклатурыЗаполнитьПоНовомуВиду(Номенклатура, СтарыйВидНоменклатуры, Отказ); + КонецЕсли; + Если Отказ + И ПрерыватьЗаполнениеПриОшибкеПроверки Тогда + Возврат; + КонецЕсли; + + Иначе + СтарыйВидНоменклатуры = Справочники.ВидыНоменклатуры.ПустаяСсылка(); + КонецЕсли; + КонецЕсли; + + СтрогоБерутсяИзВида = РеквизитыПризнаковОсобенностейУчета(Метаданные.Справочники.Номенклатура); + СтрогоБерутсяИзВида.Добавить("ТипНоменклатуры"); + СтрогоБерутсяИзВида.Добавить("ВариантОформленияПродажи"); + СтрогоБерутсяИзВида.Добавить("ГруппаДоступа"); + СтрогоБерутсяИзВида.Добавить("ИспользованиеХарактеристик"); + СтрогоБерутсяИзВида.Добавить("ВладелецСерий"); + СтрогоБерутсяИзВида.Добавить("ВладелецХарактеристик"); + СтрогоБерутсяИзВида.Добавить("ВладелецТоварныхКатегорий"); + СтрогоБерутсяИзВида.Добавить("ОсобенностьУчета"); + СтрогоБерутсяИзВида.Добавить("ЕдиницаИзмеренияСрокаГодности"); + СтрогоБерутсяИзВида.Добавить("АлкогольнаяПродукция"); + + ЗаполняютсяТолькоПриСозданииНоменклатуры = Новый Массив; + ЗаполняютсяТолькоПриСозданииНоменклатуры.Добавить("ЕдиницаИзмерения"); + ЗаполняютсяТолькоПриСозданииНоменклатуры.Добавить("ЕдиницаДляОтчетов"); + ЗаполняютсяТолькоПриСозданииНоменклатуры.Добавить("КоэффициентЕдиницыДляОтчетов"); + ЗаполняютсяТолькоПриСозданииНоменклатуры.Добавить("ОбособленнаяЗакупкаПродажа"); + ЗаполняютсяТолькоПриСозданииНоменклатуры.Добавить("СтавкаНДС"); + ЗаполняютсяТолькоПриСозданииНоменклатуры.Добавить("ЦеноваяГруппа"); + ЗаполняютсяТолькоПриСозданииНоменклатуры.Добавить("КонтролироватьКачествоПоступившегоТовара"); + ЗаполняютсяТолькоПриСозданииНоменклатуры.Добавить("СрокКонтроляКачества"); + + ПерезаполняютсяЕслиИхЗначенияБылиРавныЗначениямПоУмолчанию = Новый Массив; + ПерезаполняютсяЕслиИхЗначенияБылиРавныЗначениямПоУмолчанию.Добавить("СкладскаяГруппа"); + ПерезаполняютсяЕслиИхЗначенияБылиРавныЗначениямПоУмолчанию.Добавить("СезоннаяГруппа"); + ПерезаполняютсяЕслиИхЗначенияБылиРавныЗначениямПоУмолчанию.Добавить("ГруппаАналитическогоУчета"); + ПерезаполняютсяЕслиИхЗначенияБылиРавныЗначениямПоУмолчанию.Добавить("ГруппаФинансовогоУчета"); + ПерезаполняютсяЕслиИхЗначенияБылиРавныЗначениямПоУмолчанию.Добавить("ШаблонЦенника"); + ПерезаполняютсяЕслиИхЗначенияБылиРавныЗначениямПоУмолчанию.Добавить("ШаблонЭтикетки"); + ПерезаполняютсяЕслиИхЗначенияБылиРавныЗначениямПоУмолчанию.Добавить("СхемаОбеспечения"); + ПерезаполняютсяЕслиИхЗначенияБылиРавныЗначениямПоУмолчанию.Добавить("СпособОбеспеченияПотребностей"); + ПерезаполняютсяЕслиИхЗначенияБылиРавныЗначениямПоУмолчанию.Добавить("КодТНВЭД"); + + ПерезаполняютсяЕслиРаньшеБылиНеЗаполнены = Новый Массив; + // При этом булевы реквизиты не заполнены, если равны ЛОЖЬ, т.е. булевы могут поменяться только с ЛОЖЬ на ИСТИНА. + ПерезаполняютсяЕслиРаньшеБылиНеЗаполнены.Добавить("ИспользоватьУпаковки"); + ПерезаполняютсяЕслиРаньшеБылиНеЗаполнены.Добавить("НаборУпаковок"); + ПерезаполняютсяЕслиРаньшеБылиНеЗаполнены.Добавить("ПоставляетсяВМногооборотнойТаре"); + ПерезаполняютсяЕслиРаньшеБылиНеЗаполнены.Добавить("НоменклатураМногооборотнаяТара"); + ПерезаполняютсяЕслиРаньшеБылиНеЗаполнены.Добавить("ХарактеристикаМногооборотнаяТара"); + ПерезаполняютсяЕслиРаньшеБылиНеЗаполнены.Добавить("ВестиУчетСертификатовНоменклатуры"); + + ЗначенияПоУмолчанию = Новый Структура; + // Будут использованы, если другие способы не заполнили эти реквизиты + ЗначенияПоУмолчанию.Вставить("ГруппаФинансовогоУчета", Справочники.ГруппыФинансовогоУчетаНоменклатуры.ПолучитьГруппуФинансовогоУчетаПоУмолчанию()); + ЗначенияПоУмолчанию.Вставить("СкладскаяГруппа", ЗначениеНастроекПовтИсп.СкладскаяГруппаНоменклатурыПоУмолчанию()); + ЗначенияПоУмолчанию.Вставить("ГруппаАналитическогоУчета", Справочники.ГруппыАналитическогоУчетаНоменклатуры.ПолучитьГруппуАналитическогоУчетаПоУмолчанию()); + ЗначенияПоУмолчанию.Вставить("Качество", Перечисления.ГрадацииКачества.Новый); + ЗначенияПоУмолчанию.Вставить("СтавкаНДС", УчетНДСУП.СтавкаНДСОсновнойСтраны()); + + НоменклатураЛокализация.ЗаполнитьРеквизитыПоВидуНоменклатуры(СтрогоБерутсяИзВида, + ЗаполняютсяТолькоПриСозданииНоменклатуры, + ПерезаполняютсяЕслиИхЗначенияБылиРавныЗначениямПоУмолчанию, + ПерезаполняютсяЕслиРаньшеБылиНеЗаполнены, + ЗначенияПоУмолчанию); + + // Очистим реквизиты, которые точно нужно перезаполнить по виду + ОбщегоНазначенияУТКлиентСервер.ОчиститьЗначенияСвойств(Номенклатура, СтрогоБерутсяИзВида); + + ПолучаемыеРеквизиты = Новый Массив; + ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ПолучаемыеРеквизиты, СтрогоБерутсяИзВида); + + ЗаполнитьРеквизитыЗаполняемыеПриСоздании = Не ЗаполнениеПоИсточникуКопирования + И Не ЗначениеЗаполнено(Номенклатура.Ссылка); + + Если ЗаполнитьРеквизитыЗаполняемыеПриСоздании Тогда + // Получим реквизиты нового вида, если нужно заполнять только при создании, то просто не будем получать такие реквизиты. + ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ПолучаемыеРеквизиты, ЗаполняютсяТолькоПриСозданииНоменклатуры); + КонецЕсли; + + ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ПолучаемыеРеквизиты, ПерезаполняютсяЕслиИхЗначенияБылиРавныЗначениямПоУмолчанию); + ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ПолучаемыеРеквизиты, ПерезаполняютсяЕслиРаньшеБылиНеЗаполнены); + + РеквизитыНовогоВида = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Номенклатура.ВидНоменклатуры, ПолучаемыеРеквизиты); + + // Если номенклатура создается, то очистим реквизиты, которые при создании заполняются по виду, если в новом виде эти + // реквизиты заполнены. + Если ЗаполнитьРеквизитыЗаполняемыеПриСоздании Тогда + + Для Каждого ИмяРеквизита Из ЗаполняютсяТолькоПриСозданииНоменклатуры Цикл + + Если ЗначениеЗаполнено(РеквизитыНовогоВида[ИмяРеквизита]) Тогда + Номенклатура[ИмяРеквизита] = Неопределено; + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + + КодТНВЭДДоИзменения = Номенклатура.КодТНВЭД; + + // Очистим реквизиты, которые раньше были заполнены значениями по умолчанию (если в новом виде эти умолчания не заданы + // очищать не будем). + Если ЗначениеЗаполнено(СтарыйВидНоменклатуры) Тогда + РеквизитыСтарогоВида = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(СтарыйВидНоменклатуры, + ПерезаполняютсяЕслиИхЗначенияБылиРавныЗначениямПоУмолчанию); + + Для Каждого КлючЗначение Из РеквизитыСтарогоВида Цикл + Если Номенклатура[КлючЗначение.Ключ] = КлючЗначение.Значение + И ЗначениеЗаполнено(РеквизитыНовогоВида[КлючЗначение.Ключ]) Тогда + + Номенклатура[КлючЗначение.Ключ] = Неопределено; + + КонецЕсли; + КонецЦикла; + КонецЕсли; + + // Заполним только незаполненные реквизиты - те, которые нужно перезаполнять всегда были ранее принудительно очищены. + ОбщегоНазначенияУТКлиентСервер.ЗаполнитьЗначенияПустыхСвойств(Номенклатура, РеквизитыНовогоВида); + ОбщегоНазначенияУТКлиентСервер.ЗаполнитьЗначенияПустыхСвойств(Номенклатура, ЗначенияПоУмолчанию); + + ОтработатьЛогикуСвязиРеквизитов(Номенклатура); + + Если ЗаполнитьРеквизитыЗаполняемыеПриСоздании + Или КодТНВЭДДоИзменения <> Номенклатура.КодТНВЭД Тогда + + ЗаполнитьРеквизитыИмпортаИПрослеживаемости(Номенклатура); + + КонецЕсли; + +КонецПроцедуры + +// Процедура выполняет гармонизацию значений реквизитов между собой, исключая недопустимые сочетания значений. +// +// Параметры: +// Номенклатура - СправочникОбъект.Номенклатура - элемент, для которого нужно отработать логику +// связи реквизитов. +// - ДанныеФормыСтруктура - номенклатура (из формы элемента) +// - Структура - номенклатура с расширенными полями (из формы элемента) +Процедура ОтработатьЛогикуСвязиРеквизитов(Номенклатура) Экспорт + + ОсобенностьУчетаИлиКлючВидовПродукции = НоменклатураЛокализация.ОсобенностьУчетаИлиКлючВидовПродукции(Номенклатура); + + Если ТипЗнч(ОсобенностьУчетаИлиКлючВидовПродукции) = Тип("ПеречислениеСсылка.ОсобенностиУчетаНоменклатуры") Тогда + РеквизитыПризнаковОсобенностейУчета = Справочники.Номенклатура.РеквизитыПризнаковОсобенностейУчета(Метаданные.Справочники.Номенклатура); + Для Каждого ИмяРеквизита Из РеквизитыПризнаковОсобенностейУчета Цикл + Номенклатура[ИмяРеквизита] = ОсобенностьУчетаИлиКлючВидовПродукции = + ПредопределенноеЗначение("Перечисление.ОсобенностиУчетаНоменклатуры." + ИмяРеквизита); + КонецЦикла; + КонецЕсли; + + Номенклатура.АлкогольнаяПродукция = НоменклатураЛокализация.ЭтоПродукцияЕГАИС(ОсобенностьУчетаИлиКлючВидовПродукции); + + // Отключение очистки неиспользуемых реквизитов для случая программного создания объекта + ОтключитьОчисткуРеквизитов = Ложь; + Если ТипЗнч(Номенклатура) <> Тип("СправочникОбъект.Номенклатура") + Или Не Номенклатура.ДополнительныеСвойства.Свойство("ОтключитьОчисткуРеквизитов", ОтключитьОчисткуРеквизитов) + Или ОтключитьОчисткуРеквизитов <> Истина Тогда + + ИспользованиеРеквизитов = ИспользованиеЭлементов(Номенклатура, Ложь, Истина); + МетаданныеОбъекта = Метаданные.Справочники.Номенклатура; + + Для каждого КлючЗначение Из ИспользованиеРеквизитов Цикл + Если Не КлючЗначение.Значение Тогда + Если МетаданныеОбъекта.Реквизиты.Найти(КлючЗначение.Ключ) <> Неопределено Тогда + Номенклатура[КлючЗначение.Ключ] = МетаданныеОбъекта.Реквизиты.Найти(КлючЗначение.Ключ).Тип.ПривестиЗначение(Неопределено); + ИначеЕсли МетаданныеОбъекта.ТабличныеЧасти.Найти(КлючЗначение.Ключ) <> Неопределено Тогда + Номенклатура[КлючЗначение.Ключ].Очистить(); + Иначе + ТекстИсключения = НСтр("ru = 'При очистке неиспользуемых реквизитов номенклатуры не найден реквизит %ИмяРеквизита%'"); + ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ИмяРеквизита%", КлючЗначение.Ключ); + ВызватьИсключение ТекстИсключения; + КонецЕсли; + КонецЕсли; + КонецЦикла; + + КонецЕсли; + + Если ОтключитьОчисткуРеквизитов = Истина Тогда + Номенклатура.ДополнительныеСвойства.ОтключитьОчисткуРеквизитов = Ложь; + КонецЕсли; + + Если Номенклатура.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Работа + Или Номенклатура.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Услуга Тогда + + Если ЗначениеЗаполнено(Номенклатура.Принципал) Тогда + Если ТипЗнч(Номенклатура.Принципал) = Тип("СправочникСсылка.Организации") Тогда + Номенклатура.Контрагент = Номенклатура.Принципал; + ИначеЕсли Не ЗначениеЗаполнено(Номенклатура.Контрагент) Тогда + ПартнерыИКонтрагенты.ЗаполнитьКонтрагентаПартнераПоУмолчанию(Номенклатура.Принципал, Номенклатура.Контрагент); + КонецЕсли; + КонецЕсли; + + КонецЕсли; + + Если ЗначениеЗаполнено(Номенклатура.КодТНВЭД) Тогда + Номенклатура.ЕдиницаИзмеренияТНВЭД = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Номенклатура.КодТНВЭД, + "ЕдиницаИзмерения"); + Иначе + Номенклатура.ЕдиницаИзмеренияТНВЭД = Справочники.УпаковкиЕдиницыИзмерения.ПустаяСсылка(); + КонецЕсли; + + Если ЗначениеЗаполнено(Номенклатура.НаборУпаковок) + И Номенклатура.НаборУпаковок <> Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры Тогда + + Номенклатура.ЕдиницаИзмерения = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Номенклатура.НаборУпаковок, "ЕдиницаИзмерения"); + + КонецЕсли; + + ИспользоватьТоварныеКатегории = ПолучитьФункциональнуюОпцию("ИспользоватьТоварныеКатегории"); + + Если ИспользоватьТоварныеКатегории + И ЗначениеЗаполнено(Номенклатура.ТоварнаяКатегория) Тогда + + ВладелецКатегории = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Номенклатура.ТоварнаяКатегория, "Владелец"); + + Если ВладелецКатегории <> Номенклатура.ВидНоменклатуры + И ВладелецКатегории <> Номенклатура.ВладелецТоварныхКатегорий Тогда + + Номенклатура.ТоварнаяКатегория = Справочники.ТоварныеКатегории.ПустаяСсылка(); + + КонецЕсли; + + КонецЕсли; + + Если Не ЗначениеЗаполнено(Номенклатура.ЕдиницаДляОтчетов) Тогда + Номенклатура.ЕдиницаДляОтчетов = Номенклатура.ЕдиницаИзмерения; + КонецЕсли; + + Если Не ЗначениеЗаполнено(Номенклатура.КоэффициентЕдиницыДляОтчетов) + Или Номенклатура.ЕдиницаДляОтчетов = Номенклатура.ЕдиницаИзмерения Тогда + + Номенклатура.КоэффициентЕдиницыДляОтчетов = 1; + + КонецЕсли; + + ТипЕдиницы = ""; + МернаяЕдиницаХранения = Справочники.УпаковкиЕдиницыИзмерения.ЭтоМернаяЕдиница(Номенклатура.ЕдиницаИзмерения, ТипЕдиницы); + + ОтработатьЛогикуЗаполненияМеры(Номенклатура, МернаяЕдиницаХранения, ТипЕдиницы, "Вес"); + ОтработатьЛогикуЗаполненияМеры(Номенклатура, МернаяЕдиницаХранения, ТипЕдиницы, "Объем"); + ОтработатьЛогикуЗаполненияМеры(Номенклатура, МернаяЕдиницаХранения, ТипЕдиницы, "Площадь"); + ОтработатьЛогикуЗаполненияМеры(Номенклатура, МернаяЕдиницаХранения, ТипЕдиницы, "Длина"); + + НоменклатураЛокализация.ОтработатьЛогикуСвязиРеквизитов(Номенклатура); + +КонецПроцедуры + +// Заполняет значения реквизитов учета импорта и прослеживаемости по данным номенклатуры. +// +// Параметры: +// Номенклатура - СправочникОбъект.Номенклатура, ДанныеФормыСтруктура - обрабатываемый элемент номенклатуры. +// +Процедура ЗаполнитьРеквизитыИмпортаИПрослеживаемости(Номенклатура) Экспорт + + РеквизитыПрослеживаемости = РеквизитыПрослеживаемости(Номенклатура.КодТНВЭД); + + Номенклатура.ЕдиницаИзмеренияТНВЭД = РеквизитыПрослеживаемости.ЕдиницаИзмерения; + + НоменклатураЛокализация.ЗаполнитьРеквизитыИмпортаИПрослеживаемости(Номенклатура, РеквизитыПрослеживаемости); + +КонецПроцедуры + +// Возвращает инициализированную коллекцию реквизитов прослеживаемости по данным кода ТН ВЭД. +// +// Параметры: +// КодТНВЭД - СправочникСсылка.КлассификаторТНВЭД - код ТН ВЭД номенклатуры. +// +// Возвращаемое значение: +// см. НоменклатураКлиентСервер.РеквизитыПрослеживаемостиПоУмолчанию. +// +Функция РеквизитыПрослеживаемости(КодТНВЭД) Экспорт + + РеквизитыПрослеживаемости = НоменклатураКлиентСервер.РеквизитыПрослеживаемостиПоУмолчанию(); + + Если ЗначениеЗаполнено(КодТНВЭД) Тогда + + ИменаРеквизитов = Новый Массив; + Для Каждого КлючИЗначение Из РеквизитыПрослеживаемости Цикл + ИменаРеквизитов.Добавить(КлючИЗначение.Ключ); + КонецЦикла; + + ЗаполнитьЗначенияСвойств(РеквизитыПрослеживаемости, ОбщегоНазначения.ЗначенияРеквизитовОбъекта(КодТНВЭД, ИменаРеквизитов)); + + КонецЕсли; + + Возврат РеквизитыПрослеживаемости; + +КонецФункции + +// Проверяет корректность смены вида номенклатуры и в случае проблем выставляет Отказ в ИСТИНА. +// +// Параметры: +// Номенклатура - СправочникОбъект.Номенклатура, ДанныеФормыСтруктура - номенклатура, нового вида номенклатуры, +// СтарыйВидНоменклатуры - СправочникСсылка.ВидыНоменклатуры - вид номенклатуры до смены, +// Отказ - Булево - Истина - отмена смена вида номенклатуры. +// +Процедура ПроверитьКорректностьСменыВидаНоменклатурыЗаполнитьПоНовомуВиду(Номенклатура, СтарыйВидНоменклатуры, Отказ) Экспорт + + УсловияВыбораНовогоВидаНоменклатуры = УсловияВыбораНовогоВидаНоменклатуры(); + + ТекстПолейВыборки = ""; + Для Каждого КлючЗначение Из УсловияВыбораНовогоВидаНоменклатуры Цикл + ТекстПолейВыборки = ТекстПолейВыборки + КлючЗначение.Значение + " КАК " + КлючЗначение.Ключ + ", "; + КонецЦикла; + + ТекстЗапроса = " + |ВЫБРАТЬ + | &ПоляВыборки, + | НовыйВидНоменклатуры.Ссылка КАК Ссылка + |ИЗ + | Справочник.ВидыНоменклатуры КАК НовыйВидНоменклатуры "; + + Если Не ПустаяСтрока(ТекстПолейВыборки) Тогда + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПоляВыборки,", ТекстПолейВыборки); + КонецЕсли; + + Запрос = Новый Запрос; + Запрос.Текст = ТекстЗапроса; + ПараметрыЗапроса = Запрос.НайтиПараметры(); + + ИменаРеквизитов = Новый Массив; + Для Каждого Параметр Из ПараметрыЗапроса Цикл + ИменаРеквизитов.Добавить(Параметр.Имя); + КонецЦикла; + + СтарыеРеквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(СтарыйВидНоменклатуры, ИменаРеквизитов); + Для Каждого Параметр Из ПараметрыЗапроса Цикл + Запрос.УстановитьПараметр(Параметр.Имя, СтарыеРеквизиты[Параметр.Имя]); + КонецЦикла; + + Запрос.Текст = Запрос.Текст + " + |ГДЕ + | НовыйВидНоменклатуры.Ссылка = &НовыйВидНоменклатуры"; + Запрос.УстановитьПараметр("НовыйВидНоменклатуры", Номенклатура.ВидНоменклатуры); + + Результат = Запрос.Выполнить().Выгрузить(); + ЗначениеОшибки = Результат[0]; + + Для Каждого Ошибка Из Результат.Колонки Цикл + Если Ошибка.Имя = "Ссылка" + Или Не ЗначениеОшибки[Ошибка.Имя] Тогда + Продолжить; + КонецЕсли; + + Если Ошибка.Имя = "ЕстьПроблемаТипНоменклатуры" Тогда + Отказ = Истина; + ТекстСообщения = НСтр("ru = 'Проблема при изменении вида номенклатуры: у нового вида другой тип номенклатуры.'"); + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения); + ИначеЕсли Ошибка.Имя = "ЕстьПроблемаОсобенностьУчета" Тогда + Отказ = Истина; + ТекстСообщения = НСтр("ru = 'Проблема при изменении вида номенклатуры: у нового вида другая особенность учета.'"); + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения); + ИначеЕсли Ошибка.Имя = "ЕстьПроблемаИспользоватьСерии" Тогда + Отказ = Истина; + ТекстСообщения = НСтр("ru = 'Проблема при изменении вида номенклатуры: у нового вида несовместимые настройки ведения серий.'"); + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения); + ИначеЕсли Ошибка.Имя = "ЕстьПроблемаИспользованиеХарактеристик" Тогда + Отказ = Истина; + ТекстСообщения = НСтр("ru = 'Проблема при изменении вида номенклатуры: у нового вида несовместимые настройки ведения характеристик.'"); + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения); + Иначе + ТекстИсключения = НСтр("ru = 'Неизвестный код ошибки.'"); + ВызватьИсключение ТекстИсключения; + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +// Условия выбора нового вида номенклатуры. Используются как для ограничения списка выбора, так и для проверки смены вида. +// Возвращаемое значение: +// Структура - структура условий. Ключ - имя условия, значения - текст запроса условия. +// +Функция УсловияВыбораНовогоВидаНоменклатуры() Экспорт + + УсловияВыбораНовогоВидаНоменклатуры = Новый Структура; + + ЕстьПроблемаТипНоменклатуры = " + | ВЫБОР + | КОГДА &Ссылка = НовыйВидНоменклатуры.Ссылка + | ТОГДА ЛОЖЬ + | КОГДА &ТипНоменклатуры <> НовыйВидНоменклатуры.ТипНоменклатуры + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ "; + УсловияВыбораНовогоВидаНоменклатуры.Вставить("ЕстьПроблемаТипНоменклатуры", ЕстьПроблемаТипНоменклатуры); + + ЕстьПроблемаОсобенностьУчета = " + | ВЫБОР + | КОГДА &Ссылка = НовыйВидНоменклатуры.Ссылка + | ТОГДА ЛОЖЬ + | КОГДА &ОсобенностьУчета <> НовыйВидНоменклатуры.ОсобенностьУчета + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ "; + УсловияВыбораНовогоВидаНоменклатуры.Вставить("ЕстьПроблемаОсобенностьУчета", ЕстьПроблемаОсобенностьУчета); + + ЕстьПроблемаИспользоватьСерии = " + | ВЫБОР + | КОГДА &Ссылка = НовыйВидНоменклатуры.Ссылка + | ТОГДА ЛОЖЬ + | КОГДА НЕ(НЕ &ИспользоватьСерии + | И НЕ НовыйВидНоменклатуры.ИспользоватьСерии + | ИЛИ &ИспользоватьСерии + | И НовыйВидНоменклатуры.ИспользоватьСерии + | И (&ВладелецСерий = НовыйВидНоменклатуры.ВладелецСерий + | И &ВладелецСерий <> ЗНАЧЕНИЕ(Справочник.ВидыНоменклатуры.ПустаяСсылка) + | И НовыйВидНоменклатуры.ВладелецСерий <> ЗНАЧЕНИЕ(Справочник.ВидыНоменклатуры.ПустаяСсылка) + | ИЛИ &ВладелецСерий = НовыйВидНоменклатуры.Ссылка + | ИЛИ НовыйВидНоменклатуры.ВладелецСерий = &Ссылка)) + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ "; + УсловияВыбораНовогоВидаНоменклатуры.Вставить("ЕстьПроблемаИспользоватьСерии", ЕстьПроблемаИспользоватьСерии); + + ЕстьПроблемаИспользованиеХарактеристик = " + | ВЫБОР + | КОГДА &Ссылка = НовыйВидНоменклатуры.Ссылка + | ТОГДА ЛОЖЬ + | КОГДА НЕ(&ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры) + | И НовыйВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры) + | ИЛИ &ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать) + | И НовыйВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать) + | ИЛИ &ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры) + | И НовыйВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры) + | И НовыйВидНоменклатуры.ВладелецХарактеристик = &Ссылка + | ИЛИ НовыйВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры) + | И &ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры) + | И &ВладелецХарактеристик = НовыйВидНоменклатуры.Ссылка + | ИЛИ НовыйВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры) + | И &ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры) + | И &ВладелецХарактеристик = НовыйВидНоменклатуры.ВладелецХарактеристик) + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ "; + УсловияВыбораНовогоВидаНоменклатуры.Вставить("ЕстьПроблемаИспользованиеХарактеристик", ЕстьПроблемаИспользованиеХарактеристик); + + Возврат УсловияВыбораНовогоВидаНоменклатуры; + +КонецФункции + +// Возвращает настройки видимости и заголовков элементов формы. Используется для построения формы и табличного +// документа карточки номенклатуры. +// Параметры: +// Объект - СправочникОбъект.Номенклатура, ДанныеФормыСтруктура - элемент, для которого нужно отработать логику связи реквизитов +// РежимВидимостиПоказатьТолькоВажные - Булево - признак отображения основных реквизитов. +// +// Возвращаемое значение: +// Структура - структура с ключами: +// * ВидимостьЭлементов - см. ИспользованиеЭлементов +// * ЗаголовкиЭлементов - см. ЗаголовкиЭлементов +// +Функция НастройкиВидимостиИЗаголовков(Объект, РежимВидимостиПоказатьТолькоВажные = Ложь) Экспорт + + НастройкиВидимостиИЗаголовков = Новый Структура; + + ВидимостьЭлементов = ИспользованиеЭлементов(Объект, РежимВидимостиПоказатьТолькоВажные, Ложь); + ЗаголовкиЭлементов = ЗаголовкиЭлементов(Объект, ВидимостьЭлементов); + + НастройкиВидимостиИЗаголовков.Вставить("ВидимостьЭлементов", ВидимостьЭлементов); + НастройкиВидимостиИЗаголовков.Вставить("ЗаголовкиЭлементов", ЗаголовкиЭлементов); + + Возврат НастройкиВидимостиИЗаголовков; + +КонецФункции + +// Возвращает реквизиты меры. +// +// Параметры: +// Мера - Строка - Имя меры +// Возвращаемое значение: +// Структура - Содержит ключи: +// * Использовать - Строка - Имя реквизита использования +// * ЕдиницаИзмерения - Строка - Имя реквизита единицы измерения +// * Числитель - Строка - Имя реквизита числителя +// * Знаменатель - Строка - Имя реквзизита знаменателя +// * МожноУказыватьВДокументах - Строка - Имя флаг доступности в документах +Функция РеквизитыМеры(Мера) Экспорт + + РеквизитыМеры = Новый Структура; + РеквизитыМеры.Вставить("Использовать"); + РеквизитыМеры.Вставить("ЕдиницаИзмерения"); + РеквизитыМеры.Вставить("Числитель"); + РеквизитыМеры.Вставить("Знаменатель"); + РеквизитыМеры.Вставить("МожноУказыватьВДокументах"); + + Если Мера = "Объем" Тогда + РеквизитыМеры.Использовать = "ОбъемИспользовать"; + РеквизитыМеры.ЕдиницаИзмерения = "ОбъемЕдиницаИзмерения"; + РеквизитыМеры.Числитель = "ОбъемЧислитель"; + РеквизитыМеры.Знаменатель = "ОбъемЗнаменатель"; + РеквизитыМеры.МожноУказыватьВДокументах = "ОбъемМожноУказыватьВДокументах"; + ИначеЕсли Мера = "Длина" Тогда + РеквизитыМеры.Использовать = "ДлинаИспользовать"; + РеквизитыМеры.ЕдиницаИзмерения = "ДлинаЕдиницаИзмерения"; + РеквизитыМеры.Числитель = "ДлинаЧислитель"; + РеквизитыМеры.Знаменатель = "ДлинаЗнаменатель"; + РеквизитыМеры.МожноУказыватьВДокументах = "ДлинаМожноУказыватьВДокументах"; + ИначеЕсли Мера = "Ширина" Тогда + РеквизитыМеры.Использовать = "ШиринаИспользовать"; + РеквизитыМеры.ЕдиницаИзмерения = "ШиринаЕдиницаИзмерения"; + РеквизитыМеры.Числитель = "ШиринаЧислитель"; + РеквизитыМеры.Знаменатель = "ШиринаЗнаменатель"; + РеквизитыМеры.МожноУказыватьВДокументах = "ШиринаМожноУказыватьВДокументах"; + ИначеЕсли Мера = "Вес" Тогда + РеквизитыМеры.Использовать = "ВесИспользовать"; + РеквизитыМеры.ЕдиницаИзмерения = "ВесЕдиницаИзмерения"; + РеквизитыМеры.Числитель = "ВесЧислитель"; + РеквизитыМеры.Знаменатель = "ВесЗнаменатель"; + РеквизитыМеры.МожноУказыватьВДокументах = "ВесМожноУказыватьВДокументах"; + ИначеЕсли Мера = "Площадь" Тогда + РеквизитыМеры.Использовать = "ПлощадьИспользовать"; + РеквизитыМеры.ЕдиницаИзмерения = "ПлощадьЕдиницаИзмерения"; + РеквизитыМеры.Числитель = "ПлощадьЧислитель"; + РеквизитыМеры.Знаменатель = "ПлощадьЗнаменатель"; + РеквизитыМеры.МожноУказыватьВДокументах = "ПлощадьМожноУказыватьВДокументах"; + Иначе + ВызватьИсключение СтрШаблон(НСтр("ru = 'Не определены реквизиты меры %1'"), Мера); + КонецЕсли; + + Возврат РеквизитыМеры; + +КонецФункции + +#Область ДляВызоваИзДругихПодсистем + +// Устанавливает параметры загрузки данных из файла +// +// Параметры: +// Параметры - Структура - Список параметров. Поля: +// * Заголовок - Строка - Заголовок окна +// * ОбязательныеКолонки - Массив - Список имен колонок, обязательных для заполнения +// * ТипДанныхКолонки - Соответствие - Описание типа данных +// +Процедура ОпределитьПараметрыЗагрузкиДанныхИзФайла(Параметры) Экспорт + + Параметры.Заголовок = НСтр("ru = 'Номенклатура'"); + + Параметры.ТипДанныхКолонки.Вставить("Наименование", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(100))); + Параметры.ТипДанныхКолонки.Вставить("Родитель", Новый ОписаниеТипов("СправочникСсылка.Номенклатура")); + Параметры.ТипДанныхКолонки.Вставить("ЕдиницаИзмерения", Новый ОписаниеТипов("СправочникСсылка.УпаковкиЕдиницыИзмерения")); + Параметры.ТипДанныхКолонки.Вставить("ВариантОформленияПродажи", Новый ОписаниеТипов("ПеречислениеСсылка.ВариантыОформленияПродажи")); + Параметры.ТипДанныхКолонки.Вставить("ВесЕдиницаИзмерения", Новый ОписаниеТипов("СправочникСсылка.УпаковкиЕдиницыИзмерения")); + Параметры.ТипДанныхКолонки.Вставить("ВидНоменклатуры", Новый ОписаниеТипов("СправочникСсылка.ВидыНоменклатуры")); + Параметры.ТипДанныхКолонки.Вставить("ГруппаДоступа", Новый ОписаниеТипов("СправочникСсылка.ГруппыДоступаНоменклатуры")); + Параметры.ТипДанныхКолонки.Вставить("ЕдиницаИзмеренияСрокаГодности", Новый ОписаниеТипов("ПеречислениеСсылка.ЕдиницыИзмеренияВремени")); + Параметры.ТипДанныхКолонки.Вставить("ДлинаЕдиницаИзмерения", Новый ОписаниеТипов("СправочникСсылка.УпаковкиЕдиницыИзмерения")); + Параметры.ТипДанныхКолонки.Вставить("ИспользованиеХарактеристик", Новый ОписаниеТипов("ПеречислениеСсылка.ВариантыИспользованияХарактеристикНоменклатуры")); + Параметры.ТипДанныхКолонки.Вставить("Качество", Новый ОписаниеТипов("ПеречислениеСсылка.ГрадацииКачества")); + Параметры.ТипДанныхКолонки.Вставить("Марка", Новый ОписаниеТипов("СправочникСсылка.Марки")); + Параметры.ТипДанныхКолонки.Вставить("НаборУпаковок", Новый ОписаниеТипов("СправочникСсылка.НаборыУпаковок")); + Параметры.ТипДанныхКолонки.Вставить("ГруппаФинансовогоУчета", Новый ОписаниеТипов("СправочникСсылка.ГруппыФинансовогоУчетаНоменклатуры")); + Параметры.ТипДанныхКолонки.Вставить("НоменклатураМногооборотнаяТара", Новый ОписаниеТипов("СправочникСсылка.Номенклатура")); + Параметры.ТипДанныхКолонки.Вставить("Производитель", Новый ОписаниеТипов("СправочникСсылка.Производители")); + Параметры.ТипДанныхКолонки.Вставить("ПроизводительИмпортерКонтрагент", Новый ОписаниеТипов("СправочникСсылка.Контрагенты")); + Параметры.ТипДанныхКолонки.Вставить("СкладскаяГруппа", Новый ОписаниеТипов("СправочникСсылка.СкладскиеГруппыНоменклатуры")); + Параметры.ТипДанныхКолонки.Вставить("СтавкаНДС", Новый ОписаниеТипов("СправочникСсылка.СтавкиНДС")); + Параметры.ТипДанныхКолонки.Вставить("ТипНоменклатуры", Новый ОписаниеТипов("ПеречислениеСсылка.ТипыНоменклатуры")); + Параметры.ТипДанныхКолонки.Вставить("ТоварнаяКатегория", Новый ОписаниеТипов("СправочникСсылка.ТоварныеКатегории")); + Параметры.ТипДанныхКолонки.Вставить("ОбъемЕдиницаИзмерения", Новый ОписаниеТипов("СправочникСсылка.УпаковкиЕдиницыИзмерения")); + Параметры.ТипДанныхКолонки.Вставить("ХарактеристикаМногооборотнаяТара", Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры")); + Параметры.ТипДанныхКолонки.Вставить("ПлощадьЕдиницаИзмерения", Новый ОписаниеТипов("СправочникСсылка.УпаковкиЕдиницыИзмерения")); + Параметры.ТипДанныхКолонки.Вставить("СхемаОбеспечения", Новый ОписаниеТипов("СправочникСсылка.СхемыОбеспечения")); + Параметры.ТипДанныхКолонки.Вставить("СпособыОбеспеченияПотребностей", Новый ОписаниеТипов("СправочникСсылка.СпособыОбеспеченияПотребностей")); + Параметры.ТипДанныхКолонки.Вставить("ЦеноваяГруппа", Новый ОписаниеТипов("СправочникСсылка.ЦеновыеГруппы")); + Параметры.ТипДанныхКолонки.Вставить("ШаблонЦенника", Новый ОписаниеТипов("СправочникСсылка.ШаблоныЭтикетокИЦенников")); + Параметры.ТипДанныхКолонки.Вставить("СезоннаяГруппа", Новый ОписаниеТипов("СправочникСсылка.СезонныеГруппы")); + Параметры.ТипДанныхКолонки.Вставить("КоллекцияНоменклатуры", Новый ОписаниеТипов("СправочникСсылка.КоллекцииНоменклатуры")); + + МассивТипов = Новый Массив; + МассивТипов.Добавить(Новый ОписаниеТипов("СправочникСсылка.Организации")); + МассивТипов.Добавить(Новый ОписаниеТипов("СправочникСсылка.Партнеры")); + Параметры.ТипДанныхКолонки.Вставить("Принципал", Новый ОписаниеТипов(МассивТипов)); + + МассивТипов = Новый Массив; + МассивТипов.Добавить(Новый ОписаниеТипов("СправочникСсылка.Организации")); + МассивТипов.Добавить(Новый ОписаниеТипов("СправочникСсылка.Контрагенты")); + Параметры.ТипДанныхКолонки.Вставить("Контрагент", Новый ОписаниеТипов(МассивТипов)); + + Параметры.ТипДанныхКолонки.Вставить("РейтингПродаж", Новый ОписаниеТипов("СправочникСсылка.РейтингиПродажНоменклатуры")); + Параметры.ТипДанныхКолонки.Вставить("ГруппаАналитическогоУчета", Новый ОписаниеТипов("СправочникСсылка.ГруппыАналитическогоУчетаНоменклатуры")); + Параметры.ТипДанныхКолонки.Вставить("КодТНВЭД", Новый ОписаниеТипов("СправочникСсылка.КлассификаторТНВЭД")); + + Параметры.ТипДанныхКолонки.Вставить("ОсобенностьУчета", Новый ОписаниеТипов("ПеречислениеСсылка.ОсобенностиУчетаНоменклатуры")); + Параметры.ТипДанныхКолонки.Вставить("ЕдиницаИзмеренияТНВЭД", Новый ОписаниеТипов("СправочникСсылка.УпаковкиЕдиницыИзмерения")); + Параметры.ТипДанныхКолонки.Вставить("СтранаПроисхождения", Новый ОписаниеТипов("СправочникСсылка.СтраныМира")); + + ТипБулево = Новый ОписаниеТипов("Булево"); + + Параметры.ТипДанныхКолонки.Вставить("ВесИспользовать", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ВесМожноУказыватьВДокументах", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ВестиУчетПоГТД", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ВестиУчетСертификатовНоменклатуры", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("АлкогольнаяПродукция", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ЕстьТоварыДругогоКачества", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ИмпортнаяАлкогольнаяПродукция", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ДлинаИспользовать", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ДлинаМожноУказыватьВДокументах", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ИспользоватьИндивидуальныйШаблонЦенника", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ИспользоватьИндивидуальныйШаблонЭтикетки", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ИспользоватьУпаковки", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ПродаетсяПоРазрешению", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ПоставляетсяВМногооборотнойТаре", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ОбъемИспользовать", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ОбъемМожноУказыватьВДокументах", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ПлощадьИспользовать", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ПлощадьМожноУказыватьВДокументах", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ОбособленнаяЗакупкаПродажа", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("КонтролироватьКачествоПоступившегоТовара", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ОблагаетсяНДПИПоПроцентнойСтавке", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ПродукцияМаркируемаяДляГИСМ", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("КиЗГИСМ", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("АлкогольнаяПродукцияВоВскрытойТаре", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ОблагаетсяНДСУПокупателя", ТипБулево); + Параметры.ТипДанныхКолонки.Вставить("ПрослеживаемыйТовар", ТипБулево); + + НеотрицательноеЧисло15_3 = Новый КвалификаторыЧисла(15, 3, ДопустимыйЗнак.Неотрицательный); + НеотрицательноеЧисло15_0 = Новый КвалификаторыЧисла(15, 0, ДопустимыйЗнак.Неотрицательный); + НеотрицательноеЧисло18_6 = Новый КвалификаторыЧисла(18, 6, ДопустимыйЗнак.Неотрицательный); + НеотрицательноеЧисло5_0 = Новый КвалификаторыЧисла(5, 0, ДопустимыйЗнак.Неотрицательный); + + Параметры.ТипДанныхКолонки.Вставить("ВесЗнаменатель", Новый ОписаниеТипов("Число", НеотрицательноеЧисло15_3)); + Параметры.ТипДанныхКолонки.Вставить("ВесЧислитель", Новый ОписаниеТипов("Число", НеотрицательноеЧисло15_3)); + Параметры.ТипДанныхКолонки.Вставить("ДлинаЗнаменатель", Новый ОписаниеТипов("Число", НеотрицательноеЧисло15_3)); + Параметры.ТипДанныхКолонки.Вставить("ДлинаЧислитель", Новый ОписаниеТипов("Число", НеотрицательноеЧисло15_3)); + Параметры.ТипДанныхКолонки.Вставить("ОбъемДАЛ", Новый ОписаниеТипов("Число", НеотрицательноеЧисло18_6)); + Параметры.ТипДанныхКолонки.Вставить("СрокГодности", Новый ОписаниеТипов("Число", НеотрицательноеЧисло15_0)); + Параметры.ТипДанныхКолонки.Вставить("СрокКонтроляКачества", Новый ОписаниеТипов("Число", НеотрицательноеЧисло5_0)); + Параметры.ТипДанныхКолонки.Вставить("ОбъемЗнаменатель", Новый ОписаниеТипов("Число", НеотрицательноеЧисло15_3)); + Параметры.ТипДанныхКолонки.Вставить("ОбъемЧислитель", Новый ОписаниеТипов("Число", НеотрицательноеЧисло15_3)); + Параметры.ТипДанныхКолонки.Вставить("ПлощадьЗнаменатель", Новый ОписаниеТипов("Число", НеотрицательноеЧисло15_3)); + Параметры.ТипДанныхКолонки.Вставить("ПлощадьЧислитель", Новый ОписаниеТипов("Число", НеотрицательноеЧисло15_3)); + Параметры.ТипДанныхКолонки.Вставить("КоэффициентЕдиницыДляОтчетов", Новый ОписаниеТипов("Число", НеотрицательноеЧисло15_3)); + Параметры.ТипДанныхКолонки.Вставить("Крепость", Новый ОписаниеТипов("Число", НеотрицательноеЧисло15_3)); + + МассивОбязательныхКолонок = Новый Массив; + МассивОбязательныхКолонок.Добавить("Наименование"); + МассивОбязательныхКолонок.Добавить("ЕдиницаИзмерения"); + МассивОбязательныхКолонок.Добавить("ВариантОформленияПродажи"); + МассивОбязательныхКолонок.Добавить("ВидНоменклатуры"); + МассивОбязательныхКолонок.Добавить("ИспользованиеХарактеристик"); + МассивОбязательныхКолонок.Добавить("Качество"); + МассивОбязательныхКолонок.Добавить("СтавкаНДС"); + МассивОбязательныхКолонок.Добавить("ТипНоменклатуры"); + + Если Справочники.ГруппыДоступаНоменклатуры.ИспользуютсяГруппыДоступа() Тогда + МассивОбязательныхКолонок.Добавить("ГруппаДоступа"); + КонецЕсли; + + Параметры.ОбязательныеКолонки = МассивОбязательныхКолонок; + + НоменклатураЛокализация.ОпределитьПараметрыЗагрузкиДанныхИзФайла(Параметры); + +КонецПроцедуры + +// Производит сопоставление загружаемых данных с данными в ИБ. +// Состав и тип колонок таблицы соответствует реквизитам справочника или макету "ЗагрузкаИзФайла". +// +// Параметры: +// ЗагружаемыеДанные - см. ЗагрузкаДанныхИзФайла.ТаблицаСопоставления +// +Процедура СопоставитьЗагружаемыеДанныеИзФайла(ЗагружаемыеДанные) Экспорт + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ДанныеДляСопоставления.Наименование КАК Наименование, + | ДанныеДляСопоставления.Идентификатор КАК Идентификатор + |ПОМЕСТИТЬ ДанныеДляСопоставления + |ИЗ + | &ДанныеДляСопоставления КАК ДанныеДляСопоставления + | + |ИНДЕКСИРОВАТЬ ПО + | ДанныеДляСопоставления.Наименование, + | ДанныеДляСопоставления.Идентификатор + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | Номенклатура.Ссылка КАК Номенклатура, + | ДанныеДляСопоставления.Идентификатор КАК Идентификатор + |ИЗ + | ДанныеДляСопоставления КАК ДанныеДляСопоставления + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура + | ПО (Номенклатура.Наименование = ДанныеДляСопоставления.Наименование) + | И (Номенклатура.ПометкаУдаления = ЛОЖЬ) + |"; + + Запрос.УстановитьПараметр("ДанныеДляСопоставления", ЗагружаемыеДанные); + + РезультатЗапроса = Запрос.Выполнить().Выбрать(); + + Пока РезультатЗапроса.Следующий() Цикл + Фильтр = Новый Структура("Идентификатор", РезультатЗапроса.Идентификатор); + Строки = ЗагружаемыеДанные.НайтиСтроки(Фильтр); + Для Каждого Строка Из Строки Цикл + Строка.ОбъектСопоставления = РезультатЗапроса.Номенклатура; + КонецЦикла; + КонецЦикла; + +КонецПроцедуры + +// Загрузка данных из файла. +// +// Параметры: +// ЗагружаемыеДанные - см. ЗагрузкаДанныхИзФайла.ОписаниеЗагружаемыхДанныхДляСправочников +// ПараметрыЗагрузки - см. ЗагрузкаДанныхИзФайла.НастройкиЗагрузкиДанных +// Отказ - Булево - отмена загрузки. Например, если данные некорректные. +// +Процедура ЗагрузитьИзФайла(ЗагружаемыеДанные, ПараметрыЗагрузки, Отказ) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Свойства") Тогда + Свойства = Новый Соответствие; + МодульУправлениеСвойствами = ОбщегоНазначения.ОбщийМодуль("УправлениеСвойствами"); + ПустаяСсылкаНаОбъект = Справочники.Номенклатура.ПустаяСсылка(); + Если МодульУправлениеСвойствами.ИспользоватьДопРеквизиты(ПустаяСсылкаНаОбъект) + ИЛИ МодульУправлениеСвойствами.ИспользоватьДопСведения(ПустаяСсылкаНаОбъект) Тогда + СписокСвойств = МодульУправлениеСвойствами.СвойстваОбъекта(ПустаяСсылкаНаОбъект); + Для каждого Свойство Из СписокСвойств Цикл + Свойства.Вставить(Строка(Свойство), Свойство); + КонецЦикла; + КонецЕсли; + КонецЕсли; + + ТаблицаСвойств = Новый ТаблицаЗначений; + ТаблицаСвойств.Колонки.Добавить("Свойство"); + ТаблицаСвойств.Колонки.Добавить("Значение"); + + НеИспользуетсяКачествоТоваров = Не ПолучитьФункциональнуюОпцию("ИспользоватьКачествоТоваров"); + + Для каждого СтрокаТаблицы Из ЗагружаемыеДанные Цикл + ОбъектСопоставленияЗаполнен = ЗначениеЗаполнено(СтрокаТаблицы.ОбъектСопоставления); + + Если (ОбъектСопоставленияЗаполнен + И ПараметрыЗагрузки.ОбновлятьСуществующие = 0) + ИЛИ (НЕ ОбъектСопоставленияЗаполнен + И ПараметрыЗагрузки.СоздаватьНовые = 0) Тогда + СтрокаТаблицы.РезультатСопоставленияСтроки = "Пропущен"; + Продолжить; + КонецЕсли; + + УправлениеДоступом.ОтключитьОбновлениеКлючейДоступа(Истина); + НачатьТранзакцию(); + Попытка + + Если ОбъектСопоставленияЗаполнен Тогда + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.Номенклатура"); + ЭлементБлокировки.УстановитьЗначение("Ссылка", СтрокаТаблицы.ОбъектСопоставления); + Блокировка.Заблокировать(); + + ЭлементСправочника = СтрокаТаблицы.ОбъектСопоставления.ПолучитьОбъект(); + + Если ЭлементСправочника = Неопределено Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Номенклатура с наименованием %1 была сопоставлена, но больше не существует.'"), СтрокаТаблицы.Наименование); + КонецЕсли; + СтрокаТаблицы.РезультатСопоставленияСтроки = "Обновлен"; + + Иначе + + ЭлементСправочника = СоздатьЭлемент(); + СтрокаТаблицы.РезультатСопоставленияСтроки = "Создан"; + + КонецЕсли; + + ЭлементСправочника.Наименование = СтрокаТаблицы.Наименование; + + ТаблицаСвойств.Очистить(); + Для Каждого Колонка Из ЗагружаемыеДанные.Колонки Цикл + + ИмяРеквизита = Колонка.Имя; + + Если ИмяРеквизита = "Идентификатор" + Или ИмяРеквизита = "ОбъектСопоставления" + Или ИмяРеквизита = "РезультатСопоставленияСтроки" + Или ИмяРеквизита = "СписокНеоднозначностей" + Или ИмяРеквизита = "ОписаниеОшибки"Тогда + Продолжить; + КонецЕсли; + + Если СтрНачинаетсяС(ИмяРеквизита, "ДополнительныйРеквизит_") Тогда + ДобавитьЗначениеСвойства(ТаблицаСвойств, Свойства, "ДополнительныйРеквизит_", ИмяРеквизита, СтрокаТаблицы[ИмяРеквизита]); + ИначеЕсли СтрНачинаетсяС(ИмяРеквизита, "Свойство_") Тогда + ДобавитьЗначениеСвойства(ТаблицаСвойств, Свойства, "Свойство_", ИмяРеквизита, СтрокаТаблицы[ИмяРеквизита]); + Иначе + ЗначениеЯчейки = СтрокаТаблицы[ИмяРеквизита]; + Если ЗначениеЗаполнено(ЗначениеЯчейки) Тогда + ЭлементСправочника[ИмяРеквизита] = ЗначениеЯчейки; + КонецЕсли; + КонецЕсли; + КонецЦикла; + + Если НеИспользуетсяКачествоТоваров Тогда + ЭлементСправочника.Качество = ПредопределенноеЗначение("Перечисление.ГрадацииКачества.Новый"); + КонецЕсли; + + МультиязычностьСервер.ПередЗаписьюНаСервере(ЭлементСправочника); + + ПараметрыСеанса.ИнтерактивнаяПроверкаЗаполненияСвойств = Истина; + Если НЕ ЭлементСправочника.ПроверитьЗаполнение() Тогда + СтрокаТаблицы.РезультатСопоставленияСтроки = "Пропущен"; + СообщенияПользователю = ПолучитьСообщенияПользователю(Истина); + Если СообщенияПользователю.Количество()>0 Тогда + ТекстСообщений = ""; + Для каждого СообщениеПользователю Из СообщенияПользователю Цикл + ТекстСообщений = ТекстСообщений + СообщениеПользователю.Текст + Символы.ПС; + КонецЦикла; + СтрокаТаблицы.ОписаниеОшибки = ТекстСообщений; + КонецЕсли; + ОтменитьТранзакцию(); + Иначе + ЭлементСправочника.Записать(); + Если ТаблицаСвойств.Количество() > 0 И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Свойства") Тогда + МодульУправлениеСвойствами = ОбщегоНазначения.ОбщийМодуль("УправлениеСвойствами"); + МодульУправлениеСвойствами.ЗаписатьСвойстваУОбъекта(ЭлементСправочника.Ссылка, ТаблицаСвойств); + КонецЕсли; + + СтрокаТаблицы.ОбъектСопоставления = ЭлементСправочника.Ссылка; + УправлениеДоступом.ОтключитьОбновлениеКлючейДоступа(Ложь); + ПараметрыСеанса.ИнтерактивнаяПроверкаЗаполненияСвойств = Ложь; + ЗафиксироватьТранзакцию(); + КонецЕсли; + Исключение + ОтменитьТранзакцию(); + УправлениеДоступом.ОтключитьОбновлениеКлючейДоступа(Ложь, Ложь); + ПараметрыСеанса.ИнтерактивнаяПроверкаЗаполненияСвойств = Ложь; + Причина = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + СтрокаТаблицы.РезультатСопоставленияСтроки = "Пропущен"; + СтрокаТаблицы.ОписаниеОшибки = НСтр("ru = 'Невозможна запись данных по причине:'") + Символы.ПС + Причина; + КонецПопытки; + КонецЦикла; + +КонецПроцедуры + +// СтандартныеПодсистемы.УправлениеДоступом + +// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт + + Ограничение.Текст = + "РазрешитьЧтение + |ГДЕ ИСТИНА + |; + |РазрешитьИзменениеЕслиРазрешеноЧтение + |ГДЕ + | ЭтоГруппа ИЛИ + | ЗначениеРазрешено(Ссылка)"; + +КонецПроцедуры + +// Конец СтандартныеПодсистемы.УправлениеДоступом + +// СтандартныеПодсистемы.Печать + +// Переопределяет настройки печати для объекта. +// +// Параметры: +// Настройки - см. УправлениеПечатью.НастройкиПечатиОбъекта. +// +Процедура ПриОпределенииНастроекПечати(Настройки) Экспорт + + Настройки.ПриДобавленииКомандПечати = Истина; + +КонецПроцедуры + +// Конец СтандартныеПодсистемы.Печать + +#КонецОбласти + +#КонецОбласти + +#КонецЕсли + +#Область ОбработчикиСобытий + +Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка) + + Если ВидФормы = "ФормаОбъекта" Тогда + Если Параметры.Свойство("ЗначениеКопирования") Тогда + ОбъектКопирования = Параметры.ЗначениеКопирования; + Если Не ОбъектКопирования.ЭтоГруппа Тогда + СтандартнаяОбработка = Ложь; + Параметры = Новый Структура("ЗначениеКопирования", ОбъектКопирования); + ВыбраннаяФорма = "ФормаЭлемента"; + КонецЕсли; + ИначеЕсли Параметры.Свойство("РежимВыбора") Тогда + Если Параметры.РежимВыбора + И (Не Параметры.Свойство("ЭтоГруппа") + Или Не Параметры.ЭтоГруппа) Тогда + СтандартнаяОбработка = Ложь; + ВыбраннаяФорма = "ФормаЭлемента"; + КонецЕсли; + КонецЕсли; + ИначеЕсли ВидФормы = "ФормаВыбора" Тогда + ВыборГруппИЭлементов = Неопределено; + Если Параметры.Свойство("ВыборГруппИЭлементов",ВыборГруппИЭлементов) Тогда + Если ВыборГруппИЭлементов = ИспользованиеГруппИЭлементов.ГруппыИЭлементы Тогда + СтандартнаяОбработка = Ложь; + ВыбраннаяФорма = "ФормаВыбораГруппИЭлементов"; + КонецЕсли; + Иначе + СтандартнаяОбработка = Ложь; + ВыбраннаяФорма = "ФормаВыбораГруппИЭлементов"; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка) + + НоменклатураВызовСервера.НоменклатураОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка); + +КонецПроцедуры + +#КонецЕсли + +Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка) + // СтандартныеПодсистемы.БазоваяФункциональность + МультиязычностьКлиентСервер.ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка); + // Конец СтандартныеПодсистемы.БазоваяФункциональность +КонецПроцедуры + +Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка) + // СтандартныеПодсистемы.БазоваяФункциональность + МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); + // Конец СтандартныеПодсистемы.БазоваяФункциональность +КонецПроцедуры + +#КонецОбласти + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область СлужебныеПроцедурыИФункции + +#Область Печать + +// Заполняет список команд печати. +// +// Параметры: +// КомандыПечати - см. УправлениеПечатью.СоздатьКоллекциюКомандПечати +// +Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт + + // Карточка номенклатуры + КомандаПечати = КомандыПечати.Добавить(); + КомандаПечати.Идентификатор = "КарточкаНоменклатуры"; + КомандаПечати.Представление = НСтр("ru = 'Печать'"); + КомандаПечати.ЗаголовокФормы = НСтр("ru = 'Карточка номенклатуры'"); + +КонецПроцедуры + +// Формирует печатные формы. +// +// Параметры: +// МассивОбъектов - см. УправлениеПечатьюПереопределяемый.ПриПечати.МассивОбъектов +// ПараметрыПечати - см. УправлениеПечатьюПереопределяемый.ПриПечати.ПараметрыПечати +// КоллекцияПечатныхФорм - см. УправлениеПечатьюПереопределяемый.ПриПечати.КоллекцияПечатныхФорм +// ОбъектыПечати - см. УправлениеПечатьюПереопределяемый.ПриПечати.ОбъектыПечати +// ПараметрыВывода - см. УправлениеПечатьюПереопределяемый.ПриПечати.ПараметрыВывода +// +Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт + + Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "КарточкаНоменклатуры") Тогда + + КоличествоОбъектов = МассивОбъектов.Количество(); + Для Индекс = 0 По КоличествоОбъектов - 1 Цикл + + ТекущийИндекс = КоличествоОбъектов - Индекс - 1; + ТекущийОбъект = МассивОбъектов[ТекущийИндекс]; + Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущийОбъект, "ЭтоГруппа") Тогда + МассивОбъектов.Удалить(ТекущийИндекс); + КонецЕсли; + + КонецЦикла; + + УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( + КоллекцияПечатныхФорм, + "КарточкаНоменклатуры", + ?(МассивОбъектов.Количество() = 1, МассивОбъектов[0], НСтр("ru = 'Список номенклатуры'")), + СформироватьПечатнуюФормуКарточкиНоменклатуры(МассивОбъектов, ОбъектыПечати, ПараметрыПечати)); + КонецЕсли; + +КонецПроцедуры + +Функция СформироватьПечатнуюФормуКарточкиНоменклатуры(МассивОбъектов, ОбъектыПечати, ПараметрыПечати) + + ТабличныйДокумент = Новый ТабличныйДокумент; + ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_КАРТОЧКАНОМЕНКЛАТУРЫ"; + + ПерваяКарточка = Истина; + + Для Каждого Номенклатура Из МассивОбъектов Цикл + Если ПерваяКарточка Тогда + ПерваяКарточка = Ложь; + Иначе + ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); + КонецЕсли; + ТабличныйДокумент.Вывести( + ТабличныйДокументКарточкиНоменклатуры(Номенклатура, Неопределено, Истина)); + КонецЦикла; + + Возврат ТабличныйДокумент; + +КонецФункции + +#Область КарточкаНоменклатуры + +// Возвращает табличный документ номенклатуры. +// Параметры: +// Номенклатура - СправочникОбъект.Номенклатура, ДанныеФормыСтруктура - элемент, для которого нужно отработать логику +// связи реквизитов. +// НастройкиВидимостиИЗаголовков - см. НастройкиВидимостиИЗаголовков +// ДляПечати - Булево - признак того, что табличный документ формируетс для печати +// +// Возвращаемое значение: +// ТабличныйДокумент - табличный документ с реквизитами. +// +Функция ТабличныйДокументКарточкиНоменклатуры(Номенклатура, НастройкиВидимостиИЗаголовков, ДляПечати) Экспорт + + Перем Заголовок; + + Если НастройкиВидимостиИЗаголовков = Неопределено Тогда + НастройкиВидимостиИЗаголовков = НастройкиВидимостиИЗаголовков(Номенклатура); + КонецЕсли; + + Объект = Неопределено; + Если ТипЗнч(Номенклатура) = Тип("СправочникСсылка.Номенклатура") Тогда + Объект = Номенклатура.ПолучитьОбъект(); + ИначеЕсли ТипЗнч(Номенклатура) = Тип("СправочникОбъект.Номенклатура") + Или ТипЗнч(Номенклатура) = Тип("ДанныеФормыСтруктура") Тогда + Объект = Номенклатура; + Иначе + Возврат Новый ТабличныйДокумент; + КонецЕсли; + + ТабличныйДокументКарточка = Новый ТабличныйДокумент; + + СтруктураВидимости = НастройкиВидимостиИЗаголовков.ВидимостьЭлементов; + СтруктураЗаголовков = НастройкиВидимостиИЗаголовков.ЗаголовкиЭлементов; + + Макет = ПолучитьМакет("ПФ_MXL_КарточкаНоменклатуры"); + + #Область Шапка + + ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); + ЗаполнитьЗначенияСвойств(ОбластьШапка.Параметры, Объект); + + Если Не ЗначениеЗаполнено(Объект.Наименование) Тогда + ОбластьШапка.Параметры.Наименование = ТекстЗначенияНеЗаполнен("Наименование"); + КонецЕсли; + Если Не ДляПечати Тогда + ОбластьШапка.Параметры.РасшифровкаНаименование = "Наименование"; + КонецЕсли; + + Если Не ЗначениеЗаполнено(Объект.НаименованиеПолное) Тогда + ОбластьШапка.Параметры.НаименованиеПолное = ТекстЗначенияНеЗаполнен("НаименованиеПолное"); + КонецЕсли; + Если Не ДляПечати Тогда + ОбластьШапка.Параметры.РасшифровкаНаименованиеПолное = "НаименованиеПолное"; + КонецЕсли; + + Если Не ЗначениеЗаполнено(Объект.Артикул) Тогда + ОбластьШапка.Параметры.Артикул = ТекстЗначенияНеЗаполнен("Артикул"); + КонецЕсли; + Если Не ДляПечати Тогда + ОбластьШапка.Параметры.РасшифровкаАртикул = "Артикул"; + КонецЕсли; + + Если Не ЗначениеЗаполнено(Объект.Код) Тогда + ОбластьШапка.Параметры.Код = ТекстЗначенияНеЗаполнен("Код"); + КонецЕсли; + Если Не ДляПечати Тогда + ОбластьШапка.Параметры.РасшифровкаКод = "Код"; + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами", СтруктураВидимости) Тогда + Если СтруктураЗаголовков.Свойство("ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами", Заголовок) Тогда + ОбластьШапка.Параметры.ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами = Строка(Заголовок); + КонецЕсли; + Если Не ДляПечати Тогда + ОбластьШапка.Параметры.РасшифровкаГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами = "ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами"; + КонецЕсли; + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиШтрихкодыНоменклатуры", СтруктураВидимости) Тогда + Если СтруктураЗаголовков.Свойство("ГиперссылкаПерейтиШтрихкодыНоменклатуры", Заголовок) Тогда + ОбластьШапка.Параметры.ГиперссылкаПерейтиШтрихкодыНоменклатуры = Строка(Заголовок); + КонецЕсли; + Если Не ДляПечати Тогда + ОбластьШапка.Параметры.РасшифровкаГиперссылкаПерейтиШтрихкодыНоменклатуры = "ГиперссылкаПерейтиШтрихкодыНоменклатуры"; + КонецЕсли; + КонецЕсли; + + ТабличныйДокументКарточка.Присоединить(ОбластьШапка); + + #КонецОбласти + + ТабличныйДокументКолонки = Новый ТабличныйДокумент; + + #Область ТабличныйДокументЛево + + ТабличныйДокументЛево = Новый ТабличныйДокумент; + + #Область Описание + + Если ГлаваВидна("Описание", СтруктураВидимости) Тогда + + ОбластьОписаниеЗаголовок = Макет.ПолучитьОбласть("ОписаниеЗаголовок"); + ТабличныйДокументЛево.Вывести(ОбластьОписаниеЗаголовок); + + // Вывод картинки + Если ЗначениеЗаполнено(Объект.ФайлКартинки) Тогда + + ОбластьОписаниеКартинка = Макет.ПолучитьОбласть("ОписаниеКартинка"); + Попытка + УстановитьПривилегированныйРежим(Истина); + КартинкаНоменклатуры = РаботаСФайлами.ДвоичныеДанныеФайла(Объект.ФайлКартинки); + УстановитьПривилегированныйРежим(Ложь); + Исключение + КартинкаНоменклатуры = Неопределено; + КонецПопытки; + + Если ЗначениеЗаполнено(КартинкаНоменклатуры) Тогда + ОбластьКартинка = ОбластьОписаниеКартинка.Области.АдресКартинки; + + Если ТипЗнч(КартинкаНоменклатуры) = Тип("Картинка") Тогда + ОбластьКартинка.Картинка = КартинкаНоменклатуры; + ИначеЕсли ТипЗнч(КартинкаНоменклатуры) = Тип("ДвоичныеДанные") Тогда + КартинкаКарточки = Новый Картинка(КартинкаНоменклатуры); + + ОбластьКартинка.Картинка = ?(КартинкаКарточки.Формат() = ФорматКартинки.НеизвестныйФормат, + Неопределено, + КартинкаКарточки); + КонецЕсли; + + Если Не ДляПечати Тогда + ОбластьОписаниеКартинка.Параметры.Расшифровка = "ФайлКартинки"; + КонецЕсли; + + ТабличныйДокументЛево.Вывести(ОбластьОписаниеКартинка); + Иначе + ОписаниеКартинкиОшибка = Макет.ПолучитьОбласть("ФайлКартинкиСтрокаОшибка"); + Если Не ДляПечати Тогда + ОписаниеКартинкиОшибка.Параметры.Расшифровка = "ФайлКартинки"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(ОписаниеКартинкиОшибка); + КонецЕсли; + + Иначе + + ОписаниеКартинкиНет = Макет.ПолучитьОбласть("ФайлКартинкиСтрока"); + Если Не ДляПечати Тогда + ОписаниеКартинкиНет.Параметры.Расшифровка = "ФайлКартинки"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(ОписаниеКартинкиНет); + + КонецЕсли; + + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "Описание"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ОписаниеСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ОписаниеРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.Описание; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументЛево, Макет, ДляПечати, ПараметрыВыводаРаздела); + + Если РазделВиден("ФайлОписанияДляСайта", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "ФайлОписанияДляСайта"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ФайлОписанияДляСайтаСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ФайлОписанияДляСайтаРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.ФайлОписанияДляСайта; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументЛево, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиФайлы", СтруктураВидимости) Тогда + ОбластьОписаниеФайлыСтрока = Макет.ПолучитьОбласть("ФайлыСтрока"); + + Если СтруктураЗаголовков.Свойство("ГиперссылкаПерейтиФайлы", Заголовок) Тогда + ОбластьОписаниеФайлыСтрока.Параметры.Файлы = Строка(Заголовок); + Если Не ДляПечати Тогда + ОбластьОписаниеФайлыСтрока.Параметры.Расшифровка = "ГиперссылкаПерейтиФайлы"; + КонецЕсли; + КонецЕсли; + ТабличныйДокументЛево.Вывести(ОбластьОписаниеФайлыСтрока); + КонецЕсли; + + Если РазделВиден("ВестиУчетСертификатовНоменклатуры", СтруктураВидимости) Тогда + + + Область = Макет.ПолучитьОбласть("ВестиУчетСертификатовНоменклатурыСтрока"); + Картинка = КартинкаФлагаПоЗначению(Объект.ВестиУчетСертификатовНоменклатуры); + Область.Область("ВестиУчетСертификатовНоменклатурыФлаг").Картинка = Картинка; + + Если СтруктураЗаголовков.Свойство("ГиперссылкаПерейтиСертификатыНоменклатуры", Заголовок) Тогда + Область.Параметры.ГиперссылкаПерейтиСертификатыНоменклатуры = Строка(Заголовок); + Если РазделВиден("ГиперссылкаПерейтиСертификатыНоменклатурыВнимание", СтруктураВидимости) Тогда + Область.Область("ГиперссылкаПерейтиСертификатыНоменклатурыВнимание").Картинка = БиблиотекаКартинок.Внимание16; + КонецЕсли; + Если Не ДляПечати Тогда + Область.Параметры.РасшифровкаГиперссылки = "ГиперссылкаПерейтиСертификатыНоменклатуры"; + КонецЕсли; + КонецЕсли; + + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ВестиУчетСертификатовНоменклатуры"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(Область); + + КонецЕсли; + + + КонецЕсли; + + #КонецОбласти + + #Область ДополнительныеРеквизиты + + ТекстЗапроса = + "ВЫБРАТЬ + | НаборыДопРеквизитов.НомерСтроки КАК НомерСтрокиДляСортировки, + | ЛОЖЬ КАК ОбщееСвойство, + | ВидыНоменклатуры.НаборСвойств КАК НаборСвойств, + | НаборыДопРеквизитов.Свойство КАК Свойство, + | НаборыДопРеквизитов.Свойство.Имя КАК ИмяРеквизита, + | НаборыДопРеквизитов.Свойство.Заголовок КАК ПредставлениеРеквизита, + | ДопРеквизитыНоменклатуры.Значение КАК Значение + |ПОМЕСТИТЬ ДопРеквизитыНоменклатуры + |ИЗ + | Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК НаборыДопРеквизитов + | ПО ВидыНоменклатуры.НаборСвойств = НаборыДопРеквизитов.Ссылка + | + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК ДопРеквизитыНоменклатуры + | ПО ДопРеквизитыНоменклатуры.Ссылка = &Номенклатура + | И НаборыДопРеквизитов.Свойство = ДопРеквизитыНоменклатуры.Свойство + |ГДЕ + | ВидыНоменклатуры.Ссылка В(&ВидНоменклатуры) + | И НЕ НаборыДопРеквизитов.Свойство.ЭтоДополнительноеСведение + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | НаборыДопРеквизитов.НомерСтроки КАК НомерСтрокиДляСортировки, + | ИСТИНА КАК ОбщееСвойство, + | &ОбщийНабор КАК НаборСвойств, + | НаборыДопРеквизитов.Свойство КАК Свойство, + | НаборыДопРеквизитов.Свойство.Имя КАК ИмяРеквизита, + | НаборыДопРеквизитов.Свойство.Заголовок КАК ПредставлениеРеквизита, + | ДопРеквизитыНоменклатуры.Значение КАК Значение + |ИЗ + | Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК НаборыДопРеквизитов + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК ДопРеквизитыНоменклатуры + | ПО ДопРеквизитыНоменклатуры.Ссылка = &Номенклатура + | И НаборыДопРеквизитов.Свойство = ДопРеквизитыНоменклатуры.Свойство + |ГДЕ + | НаборыДопРеквизитов.Ссылка = &ОбщийНабор + | И НЕ НаборыДопРеквизитов.Свойство.ЭтоДополнительноеСведение + | + |ИНДЕКСИРОВАТЬ ПО + | Свойство + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ РАЗЛИЧНЫЕ + | ЗависимостиДопРеквизитов.Ссылка КАК Свойство, + | ЗависимостиДопРеквизитов.Реквизит КАК Реквизит, + | ЗависимостиДопРеквизитов.Условие КАК Условие, + | ЗависимостиДопРеквизитов.Значение КАК Значение + |ПОМЕСТИТЬ УсловияВидимостиДопРеквизтов + |ИЗ + | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ЗависимостиДополнительныхРеквизитов КАК ЗависимостиДопРеквизитов + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДопРеквизитыНоменклатуры КАК ДопРеквизитыНоменклатуры + | ПО ЗависимостиДопРеквизитов.Ссылка = ДопРеквизитыНоменклатуры.Свойство + | + |ГДЕ + | ЗависимостиДопРеквизитов.НаборСвойств В(&НаборВида, &ОбщийНабор) + | И ЗависимостиДопРеквизитов.ЗависимоеСвойство ПОДОБНО ""Виден"""; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&НаборВида", + "ВЫРАЗИТЬ(&ВидНоменклатуры КАК Справочник.ВидыНоменклатуры).НаборСвойств"); + + Запрос = Новый Запрос; + Запрос.Текст = ТекстЗапроса; + + Запрос.УстановитьПараметр("ВидНоменклатуры", Объект.ВидНоменклатуры); + Запрос.УстановитьПараметр("Номенклатура", Объект.Ссылка); + Запрос.УстановитьПараметр("ОбщийНабор", УправлениеСвойствами.НаборСвойствПоИмени("Справочник_Номенклатура_Общие")); + + РезультатЗапроса = Запрос.ВыполнитьПакетСПромежуточнымиДанными(); + ДополнительныеРеквизиты = РезультатЗапроса[0].Выгрузить(); + УсловияВидимостиРеквизитов = РезультатЗапроса[1].Выгрузить(); + + Если ГлаваВидна("ДополнительныеРеквизиты", СтруктураВидимости, ДополнительныеРеквизиты.Количество()) Тогда + + ОбластьЗаголовок = Макет.ПолучитьОбласть("ДополнительныеРеквизитыЗаголовок"); + + ТабличныйДокументЛево.Вывести(ОбластьЗаголовок); + + ДополнительныеРеквизиты.Сортировать("ОбщееСвойство Убыв, НомерСтрокиДляСортировки Возр"); + УсловияВидимостиРеквизитов.Индексы.Добавить("Свойство"); + + Для Каждого ДопРеквизит Из ДополнительныеРеквизиты Цикл + + ЗначениеРеквизита = ДопРеквизит.Значение; + Если Не ЗначениеЗаполнено(ЗначениеРеквизита) + И ДопРеквизит.Свойство.ТипЗначения = Новый ОписаниеТипов("Булево") Тогда + + ЗначениеРеквизита = Ложь; + + КонецЕсли; + + ИмяЭлементаДопРеквизита = "ДополнительныйРеквизитЗначение_" + + СтрЗаменить(ВРег(Строка(ДопРеквизит.НаборСвойств.УникальныйИдентификатор())), "-", "x") + + "_" + + СтрЗаменить(ВРег(Строка(ДопРеквизит.Свойство.УникальныйИдентификатор())), "-", "x"); + + + ВыводитьРеквизит = ВидимостьДополнительногоРеквизита(Объект, + ДопРеквизит, + ДополнительныеРеквизиты, + УсловияВидимостиРеквизитов) + И РазделВиден(ИмяЭлементаДопРеквизита, СтруктураВидимости); + + Если ВыводитьРеквизит Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "ДополнительныеРеквизиты"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ДополнительныеРеквизитыСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ДополнительныеРеквизитыРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = ЗначениеРеквизита; + ПараметрыВыводаРаздела.ТекстЗаголовкаРеквизита = ДопРеквизит.ПредставлениеРеквизита; + ПараметрыВыводаРаздела.НовоеИмяРаздела = ИмяЭлементаДопРеквизита; + + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументЛево, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + КонецЦикла; + + КонецЕсли; + + #КонецОбласти + + #Область СведенияОПроизводителе + + Если ГлаваВидна("СведенияОПроизводителе", СтруктураВидимости) Тогда + + + ОбластьОписаниеЗаголовок = Макет.ПолучитьОбласть("СведенияОПроизводителеЗаголовок"); + ТабличныйДокументЛево.Вывести(ОбластьОписаниеЗаголовок); + + Если РазделВиден("ПроизводительИмпортерКонтрагент", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "ПроизводительИмпортерКонтрагент"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ПроизводительИмпортерКонтрагентСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ПроизводительИмпортерКонтрагентРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.ПроизводительИмпортерКонтрагент; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументЛево, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("Производитель", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "Производитель"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ПроизводительСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ПроизводительРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.Производитель; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументЛево, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("Марка", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "Марка"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "МаркаСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "МаркаРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.Марка; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументЛево, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("СтранаПроисхождения", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "СтранаПроисхождения"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "СтранаПроисхожденияСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "СтранаПроисхожденияРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.СтранаПроисхождения; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументЛево, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("Принципал", СтруктураВидимости) + Или РазделВиден("Контрагент", СтруктураВидимости) + Или РазделВиден ("ГиперссылкаПерейтиСоглашения", СтруктураВидимости) Тогда + ОбластьРеализацияУслугиПоАгентскомуДоговору = Макет.ПолучитьОбласть("РеализацияУслугиПоАгентскомуДоговору"); + Если СтруктураЗаголовков.Свойство("ГруппаАгентскиеУслуги", Заголовок) Тогда + ОбластьРеализацияУслугиПоАгентскомуДоговору.Параметры.РеализацияУслугиПоАгентскомуДоговору = Заголовок; + КонецЕсли; + Если Не ДляПечати Тогда + ОбластьРеализацияУслугиПоАгентскомуДоговору.Параметры.Расшифровка = "ГруппаАгентскиеУслуги"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(ОбластьРеализацияУслугиПоАгентскомуДоговору); + КонецЕсли; + + Если РазделВиден("Принципал", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "Принципал"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ПринципалСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ПринципалРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.Принципал; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументЛево, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("Контрагент", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "Контрагент"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "КонтрагентСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "КонтрагентРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.Контрагент; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументЛево, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиСоглашения", СтруктураВидимости) Тогда + ОбластьГиперссылкаПерейтиСоглашения = Макет.ПолучитьОбласть("ГиперссылкаПерейтиСоглашенияСтрока"); + + ОбластьГиперссылкаПерейтиСоглашения.Параметры.ГиперссылкаПерейтиСоглашения = Строка( + СтруктураЗаголовков.ГиперссылкаПерейтиСоглашения.Заголовок); + + Если Не ДляПечати Тогда + РасшифровкаСоглашения = Новый Структура; + РасшифровкаСоглашения.Вставить("ИмяЭлемента", "ГиперссылкаПерейтиСоглашения"); + РасшифровкаСоглашения.Вставить("Гиперссылка", СтруктураЗаголовков.ГиперссылкаПерейтиСоглашения.Гиперссылка); + + ОбластьГиперссылкаПерейтиСоглашения.Параметры.Расшифровка = РасшифровкаСоглашения; + КонецЕсли; + + ТабличныйДокументЛево.Вывести(ОбластьГиперссылкаПерейтиСоглашения); + КонецЕсли; + + КонецЕсли; + + #КонецОбласти + + #Область ПланированиеИМаркетинг + + Если ГлаваВидна("ПланированиеИМаркетинг", СтруктураВидимости) Тогда + + ОбластьОписаниеЗаголовок = Макет.ПолучитьОбласть("ПланированиеИМаркетингЗаголовок"); + ТабличныйДокументЛево.Вывести(ОбластьОписаниеЗаголовок); + + Если РазделВиден("ТоварнаяКатегория", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "ТоварнаяКатегория"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ТоварнаяКатегорияСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ТоварнаяКатегорияРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.ТоварнаяКатегория; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументЛево, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("КоллекцияНоменклатуры", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "КоллекцияНоменклатуры"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "КоллекцияНоменклатурыСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "КоллекцияНоменклатурыРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.КоллекцияНоменклатуры; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументЛево, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("СезоннаяГруппа", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "СезоннаяГруппа"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "СезоннаяГруппаСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "СезоннаяГруппаРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.СезоннаяГруппа; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументЛево, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("РейтингПродаж", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "РейтингПродаж"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "РейтингПродажСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "РейтингПродажРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.РейтингПродаж; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументЛево, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиСовместныеПродажи", СтруктураВидимости) Тогда + ОбластьГиперссылкаПерейтиСовместныеПродажиСтрока = Макет.ПолучитьОбласть("ГиперссылкаПерейтиСовместныеПродажиСтрока"); + Если Не ДляПечати Тогда + ОбластьГиперссылкаПерейтиСовместныеПродажиСтрока.Параметры.Расшифровка = "ГиперссылкаПерейтиСовместныеПродажи"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(ОбластьГиперссылкаПерейтиСовместныеПродажиСтрока); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиСегменты", СтруктураВидимости) Тогда + ОбластьГиперссылкаПерейтиСегменты = Макет.ПолучитьОбласть("ГиперссылкаПерейтиСегментыСтрока"); + Если СтруктураЗаголовков.Свойство("ГиперссылкаПерейтиСегменты", Заголовок) Тогда + ОбластьГиперссылкаПерейтиСегменты.Параметры.ГиперссылкаПерейтиСегменты = Строка(Заголовок); + КонецЕсли; + Если Не ДляПечати Тогда + ОбластьГиперссылкаПерейтиСегменты.Параметры.Расшифровка = "ГиперссылкаПерейтиСегменты"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(ОбластьГиперссылкаПерейтиСегменты); + КонецЕсли; + + КонецЕсли; + + #КонецОбласти + + #Область ОбеспечениеИПроизводство + + Если ГлаваВидна("ОбеспечениеИПроизводство", СтруктураВидимости) Тогда + + Область = Макет.ПолучитьОбласть("ОбеспечениеИПроизводствоЗаголовок"); + Если СтруктураЗаголовков.Свойство("ДекорацияЗаголовокОбеспечение", Заголовок) Тогда + Область.Параметры.ОбеспечениеПроизводство = Заголовок; + КонецЕсли; + ТабличныйДокументЛево.Вывести(Область); + + Если РазделВиден("ОбособленнаяЗакупкаПродажа", СтруктураВидимости) Тогда + Область = Макет.ПолучитьОбласть("ОбособленнаяЗакупкаПродажаСтрока"); + Картинка = КартинкаФлагаПоЗначению(Объект.ОбособленнаяЗакупкаПродажа); + Область.Область("ОбособленнаяЗакупкаПродажаФлаг").Картинка = Картинка; + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ОбособленнаяЗакупкаПродажа"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(Область); + КонецЕсли; + + Если РазделВиден("СпособОбеспеченияПотребностей", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "СпособОбеспеченияПотребностей"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "СпособОбеспеченияПотребностейСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "СпособОбеспеченияПотребностейРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.СпособОбеспеченияПотребностей; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументЛево, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("СхемаОбеспечения", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "СхемаОбеспечения"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "СхемаОбеспеченияСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "СхемаОбеспеченияРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.СхемаОбеспечения; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументЛево, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиВариантыКомплектации", СтруктураВидимости) Тогда + Область = Макет.ПолучитьОбласть("ГиперссылкаПерейтиВариантыКомплектацииСтрока"); + Если СтруктураЗаголовков.Свойство("ГиперссылкаПерейтиВариантыКомплектации", Заголовок) Тогда + Область.Параметры.ГиперссылкаПерейтиВариантыКомплектации = Строка(Заголовок); + КонецЕсли; + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ГиперссылкаПерейтиВариантыКомплектации"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(Область); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиНастройкаПоддержанияЗапасов", СтруктураВидимости) Тогда + Область = Макет.ПолучитьОбласть("ГиперссылкаПерейтиНастройкаПоддержанияЗапасовСтрока"); + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ГиперссылкаПерейтиНастройкаПоддержанияЗапасов"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(Область); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиНастройкаСпособовОбеспеченияПотребностей", СтруктураВидимости) Тогда + Область = Макет.ПолучитьОбласть("ГиперссылкаПерейтиНастройкаСпособовОбеспеченияПотребностейСтрока"); + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ГиперссылкаПерейтиНастройкаСпособовОбеспеченияПотребностей"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(Область); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиНастройкаПередачиМатериаловВПроизводство", СтруктураВидимости) Тогда + Область = Макет.ПолучитьОбласть("ГиперссылкаПерейтиНастройкаПередачиМатериаловВПроизводствоСтрока"); + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ГиперссылкаПерейтиНастройкаПередачиМатериаловВПроизводство"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(Область); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиПроизводство", СтруктураВидимости) Тогда + Область = Макет.ПолучитьОбласть("ГиперссылкаПерейтиПроизводствоСтрока"); + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ГиперссылкаПерейтиПроизводство"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(Область); + КонецЕсли; + + КонецЕсли; + + #КонецОбласти + + #Область КонтрольКачества + + Если ГлаваВидна("КонтрольКачества", СтруктураВидимости) Тогда + + ОбластьОписаниеЗаголовок = Макет.ПолучитьОбласть("КонтрольКачестваЗаголовок"); + ТабличныйДокументЛево.Вывести(ОбластьОписаниеЗаголовок); + + Если РазделВиден("КонтролироватьКачествоПоступившегоТовара", СтруктураВидимости) Тогда + Область = Макет.ПолучитьОбласть("КонтролироватьКачествоПоступившегоТовараСтрока"); + Картинка = КартинкаФлагаПоЗначению(Объект.КонтролироватьКачествоПоступившегоТовара); + Область.Область("КонтролироватьКачествоПоступившегоТовараФлаг").Картинка = Картинка; + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "КонтролироватьКачествоПоступившегоТовара"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(Область); + КонецЕсли; + + Если РазделВиден("СрокКонтроляКачества", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "СрокКонтроляКачества"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "СрокКонтроляКачестваСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "СрокКонтроляКачестваРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.СрокКонтроляКачества; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументЛево, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + КонецЕсли; + + #КонецОбласти + + #Область Цены + + Если ГлаваВидна("Цены", СтруктураВидимости) Тогда + + + ОбластьОписаниеЗаголовок = Макет.ПолучитьОбласть("ЦеныЗаголовок"); + ТабличныйДокументЛево.Вывести(ОбластьОписаниеЗаголовок); + + Если РазделВиден("ЦеноваяГруппа", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "ЦеноваяГруппа"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ЦеноваяГруппаСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ЦеноваяГруппаРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.ЦеноваяГруппа; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументЛево, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиПрайсЛистКомпании", СтруктураВидимости) Тогда + Область = Макет.ПолучитьОбласть("ПрайсЛистКомпанииСтрока"); + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ГиперссылкаПерейтиПрайсЛистКомпании"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(Область); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиПрайсЛистыПоставщиков", СтруктураВидимости) Тогда + Область = Макет.ПолучитьОбласть("ПрайсЛистыПоставщиковСтрока"); + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ГиперссылкаПерейтиПрайсЛистыПоставщиков"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(Область); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиИсторияИзмененияЦенКомпании", СтруктураВидимости) Тогда + Область = Макет.ПолучитьОбласть("ИсторияИзмененияЦенКомпанииСтрока"); + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ГиперссылкаПерейтиИсторияИзмененияЦенКомпании"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(Область); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиИсторияИзмененияЦенПоставщиков", СтруктураВидимости) Тогда + Область = Макет.ПолучитьОбласть("ИсторияИзмененияЦенПоставщиковСтрока"); + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ГиперссылкаПерейтиИсторияИзмененияЦенПоставщиков"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(Область); + КонецЕсли; + + КонецЕсли; + + #КонецОбласти + + #Область ПечатьЭтикетокИЦенников + + Если ГлаваВидна("ПечатьЭтикетокИЦенников", СтруктураВидимости) Тогда + + ВидНоменклатурыШаблоны = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.ВидНоменклатуры, "ШаблонЦенника, ШаблонЭтикетки"); + + ОбластьОписаниеЗаголовок = Макет.ПолучитьОбласть("ПечатьЭтикетокИЦенниковЗаголовок"); + ТабличныйДокументЛево.Вывести(ОбластьОписаниеЗаголовок); + + Область = Макет.ПолучитьОбласть("ИспользоватьИндивидуальныйШаблонЭтикеткиСтрока"); + Если Объект.ИспользоватьИндивидуальныйШаблонЭтикетки Тогда + Область.Параметры.ИспользоватьИндивидуальныйШаблонЭтикетки = НСтр("ru = 'Индивидуальный шаблон этикетки:'"); + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ИспользоватьИндивидуальныйШаблонЭтикетки"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(Область); + ОбластьЭтикетки = Макет.ПолучитьОбласть("ШаблонЭтикеткиСтрока"); + ОбластьЭтикетки.Параметры.ШаблонЭтикетки = Объект.ШаблонЭтикетки; + Если Не ДляПечати Тогда + ОбластьЭтикетки.Параметры.Расшифровка = "ШаблонЭтикетки"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(ОбластьЭтикетки); + Иначе + Область.Параметры.ИспользоватьИндивидуальныйШаблонЭтикетки = НСтр("ru = 'Используется общий для вида шаблон этикетки'"); + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ИспользоватьИндивидуальныйШаблонЭтикетки"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(Область); + ОбластьЭтикетки = Макет.ПолучитьОбласть("ШаблонЭтикеткиСтрока"); + Если ЗначениеЗаполнено(ВидНоменклатурыШаблоны.ШаблонЭтикетки) Тогда + ОбластьЭтикетки.Параметры.ШаблонЭтикетки = ВидНоменклатурыШаблоны.ШаблонЭтикетки; + Иначе + ОбластьЭтикетки.Параметры.ШаблонЭтикетки = НСтр("ru = '<не указан>'"); + КонецЕсли; + Если Не ДляПечати Тогда + ОбластьЭтикетки.Параметры.Расшифровка = "ШаблонЭтикетки"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(ОбластьЭтикетки); + КонецЕсли; + + Область = Макет.ПолучитьОбласть("ИспользоватьИндивидуальныйШаблонЦенникаСтрока"); + Если Объект.ИспользоватьИндивидуальныйШаблонЦенника Тогда + Область.Параметры.ИспользоватьИндивидуальныйШаблонЦенника = НСтр("ru = 'Индивидуальный шаблон ценника:'"); + Область.Параметры.Расшифровка = "ИспользоватьИндивидуальныйШаблонЦенника"; + ТабличныйДокументЛево.Вывести(Область); + ОбластьЦенника = Макет.ПолучитьОбласть("ШаблонЦенникаСтрока"); + ОбластьЦенника.Параметры.ШаблонЦенника = Объект.ШаблонЦенника; + Если Не ДляПечати Тогда + ОбластьЦенника.Параметры.Расшифровка = "ШаблонЦенника"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(ОбластьЦенника); + Иначе + Область.Параметры.ИспользоватьИндивидуальныйШаблонЦенника = НСтр("ru = 'Используется общий для вида шаблон ценника'"); + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ИспользоватьИндивидуальныйШаблонЦенника"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(Область); + ОбластьЦенника = Макет.ПолучитьОбласть("ШаблонЦенникаСтрока"); + Если ЗначениеЗаполнено(ВидНоменклатурыШаблоны.ШаблонЦенника) Тогда + ОбластьЦенника.Параметры.ШаблонЦенника = ВидНоменклатурыШаблоны.ШаблонЦенника; + Иначе + ОбластьЦенника.Параметры.ШаблонЦенника = НСтр("ru = '<не указан>'"); + КонецЕсли; + Если Не ДляПечати Тогда + ОбластьЦенника.Параметры.Расшифровка = "ШаблонЦенника"; + КонецЕсли; + ТабличныйДокументЛево.Вывести(ОбластьЦенника); + КонецЕсли; + + КонецЕсли; + + #КонецОбласти + + ТабличныйДокументКолонки.Присоединить(ТабличныйДокументЛево); + + #КонецОбласти + + #Область ТабличныйДокументПраво + + ТабличныйДокументПраво = Новый ТабличныйДокумент; + + + #Область ОсновныеПараметрыУчета + + Если ГлаваВидна("ОсновныеПараметрыУчета", СтруктураВидимости) Тогда + + ОбластьЗаголовок = Макет.ПолучитьОбласть("ОсновныеПараметрыУчетаЗаголовок"); + ТабличныйДокументПраво.Вывести(ОбластьЗаголовок); + + Если РазделВиден("Родитель", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "Родитель"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "РодительСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "РодительРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.Родитель; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("ГруппаДоступа", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "ГруппаДоступа"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ГруппаДоступаСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ГруппаДоступаРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.ГруппаДоступа; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("ВидНоменклатуры", СтруктураВидимости) Или РазделВиден("ВидНоменклатурыПереключатель", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "ВидНоменклатуры"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ВидНоменклатурыСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ВидНоменклатурыРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.ВидНоменклатуры; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("ТипНоменклатуры", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "ТипНоменклатуры"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ТипНоменклатурыСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ТипНоменклатурыРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.ТипНоменклатуры; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиСоставНабора", СтруктураВидимости) Тогда + Область = Макет.ПолучитьОбласть("ГиперссылкаПерейтиСоставНабораСтрока"); + Если СтруктураЗаголовков.Свойство("ГиперссылкаПерейтиСоставНабора", Заголовок) Тогда + Область.Параметры.ГиперссылкаПерейтиСоставНабора = Строка(Заголовок); + Если РазделВиден("ГиперссылкаПерейтиСоставНабораВнимание", СтруктураВидимости) Тогда + Область.Область("ГиперссылкаПерейтиСоставНабораВнимание").Картинка = БиблиотекаКартинок.Внимание16; + КонецЕсли; + КонецЕсли; + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ГиперссылкаПерейтиСоставНабора"; + КонецЕсли; + ТабличныйДокументПраво.Вывести(Область); + КонецЕсли; + + Если РазделВиден("ИспользованиеХарактеристик", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "ИспользованиеХарактеристик"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ИспользованиеХарактеристикСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ИспользованиеХарактеристикРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.ИспользованиеХарактеристик; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиХарактеристикиНоменклатуры", СтруктураВидимости) Тогда + Область = Макет.ПолучитьОбласть("ГиперссылкаПерейтиХарактеристикиНоменклатурыСтрока"); + Если СтруктураЗаголовков.Свойство("ГиперссылкаПерейтиХарактеристикиНоменклатуры", Заголовок) Тогда + Область.Параметры.ГиперссылкаПерейтиХарактеристикиНоменклатуры = Строка(Заголовок); + КонецЕсли; + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ГиперссылкаПерейтиХарактеристикиНоменклатуры"; + КонецЕсли; + ТабличныйДокументПраво.Вывести(Область); + КонецЕсли; + + + Если РазделВиден("НастройкаИспользованияСерий", СтруктураВидимости) Тогда + НастройкаИспользованияСерий = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.ВидНоменклатуры, "НастройкаИспользованияСерий"); + Если Не ЗначениеЗаполнено(НастройкаИспользованияСерий) Тогда + НастройкаИспользованияСерийСтрока = НСтр("ru = 'Не используются'"); + Иначе + НастройкаИспользованияСерийСтрока = Строка(НастройкаИспользованияСерий); + КонецЕсли; + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "НастройкаИспользованияСерий"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "НастройкаИспользованияСерийСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "НастройкаИспользованияСерийРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = НастройкаИспользованияСерийСтрока; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("ВариантОформленияПродажи", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "ВариантОформленияПродажи"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ВариантОформленияПродажиСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ВариантОформленияПродажиРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.ВариантОформленияПродажи; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("СтавкаНДС", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "СтавкаНДС"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "СтавкаНДССтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "СтавкаНДСРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.СтавкаНДС; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиСтавкиНДСНоменклатуры", СтруктураВидимости) Тогда + Область = Макет.ПолучитьОбласть("ГиперссылкаПерейтиСтавкиНДСНоменклатурыСтрока"); + Если СтруктураЗаголовков.Свойство("ГиперссылкаПерейтиСтавкиНДСНоменклатуры", Заголовок) Тогда + Область.Параметры.ГиперссылкаПерейтиСтавкиНДСНоменклатуры = Строка(Заголовок); + КонецЕсли; + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ГиперссылкаПерейтиСтавкиНДСНоменклатуры"; + КонецЕсли; + ТабличныйДокументПраво.Вывести(Область); + КонецЕсли; + + Если Справочники.Номенклатура.РазделВиден("КодТНВЭД", СтруктураВидимости) Тогда + + СтрокаТНВЭД = ""; + + Если ЗначениеЗаполнено(Объект.КодТНВЭД) Тогда + Шаблон = НСтр("ru = '%Код% (%Наименование%)'"); + Наименование = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.КодТНВЭД, "Наименование"); + + СтрокаТНВЭД = СтрЗаменить(Шаблон, "%Код%", Объект.КодТНВЭД); + СтрокаТНВЭД = СтрЗаменить(СтрокаТНВЭД, "%Наименование%", Наименование); + КонецЕсли; + + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "КодТНВЭД"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "КодТНВЭДСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "КодТНВЭДРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = СтрокаТНВЭД; + Справочники.Номенклатура.ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати,ПараметрыВыводаРаздела); + + КонецЕсли; + + Если РазделВиден("Качество", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "Качество"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "КачествоСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "КачествоРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.Качество; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиТоварыДругогоКачества", СтруктураВидимости) Тогда + Область = Макет.ПолучитьОбласть("ГиперссылкаПерейтиТоварыДругогоКачестваСтрока"); + Если СтруктураЗаголовков.Свойство("ГиперссылкаПерейтиТоварыДругогоКачества", Заголовок) Тогда + Область.Параметры.ГиперссылкаПерейтиТоварыДругогоКачества = Строка(Заголовок); + КонецЕсли; + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ГиперссылкаПерейтиТоварыДругогоКачества"; + КонецЕсли; + ТабличныйДокументПраво.Вывести(Область); + КонецЕсли; + КонецЕсли; + + #КонецОбласти + + #Область ЕдиницыИзмеренияИОбластьХранения + + Если ГлаваВидна("ЕдиницыИзмеренияИОбластьХранения", СтруктураВидимости) Тогда + + ОбластьЗаголовок = Макет.ПолучитьОбласть("ЕдиницыИзмеренияИОбластьХраненияЗаголовок"); + ТабличныйДокументПраво.Вывести(ОбластьЗаголовок); + + Если РазделВиден("ИспользоватьУпаковки", СтруктураВидимости) Тогда + Если Объект.ИспользоватьУпаковки Тогда + Если Объект.НаборУпаковок = Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры Тогда + Набор = НСтр("ru = 'Индивидуальный набор'"); + Иначе + Набор = Объект.НаборУпаковок; + КонецЕсли; + + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "ИспользоватьУпаковки"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ИспользоватьУпаковкиСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ИспользоватьУпаковкиРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Набор; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + Иначе + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "ИспользоватьУпаковки"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ИспользоватьУпаковкиСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ИспользоватьУпаковкиРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = НСтр("ru = 'не используются'"); + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиУпаковкиНоменклатуры", СтруктураВидимости) Тогда + Область = Макет.ПолучитьОбласть("ГиперссылкаПерейтиУпаковкиНоменклатурыСтрока"); + Если СтруктураЗаголовков.Свойство("ГиперссылкаПерейтиУпаковкиНоменклатуры", Заголовок) Тогда + Область.Параметры.ГиперссылкаПерейтиУпаковкиНоменклатуры = Строка(Заголовок); + Если РазделВиден("ГиперссылкаПерейтиУпаковкиНоменклатурыВнимание", СтруктураВидимости) Тогда + Область.Область("ГиперссылкаПерейтиУпаковкиНоменклатурыВнимание").Картинка = БиблиотекаКартинок.Внимание16; + КонецЕсли; + КонецЕсли; + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ГиперссылкаПерейтиУпаковкиНоменклатуры"; + КонецЕсли; + ТабличныйДокументПраво.Вывести(Область); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиУпаковкиНабора", СтруктураВидимости) Тогда + Область = Макет.ПолучитьОбласть("ГиперссылкаПерейтиУпаковкиНабораСтрока"); + Если СтруктураЗаголовков.Свойство("ГиперссылкаПерейтиУпаковкиНабора", Заголовок) Тогда + Область.Параметры.ГиперссылкаПерейтиУпаковкиНабора = Строка(Заголовок); + Если РазделВиден("ГиперссылкаПерейтиУпаковкиНабораВнимание", СтруктураВидимости) Тогда + Область.Область("ГиперссылкаПерейтиУпаковкиНабораВнимание").Картинка = БиблиотекаКартинок.Внимание16; + КонецЕсли; + КонецЕсли; + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ГиперссылкаПерейтиУпаковкиНабора"; + КонецЕсли; + ТабличныйДокументПраво.Вывести(Область); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиПрогнозыРасходаУпаковок", СтруктураВидимости) Тогда + Область = Макет.ПолучитьОбласть("ГиперссылкаПерейтиПрогнозыРасходаУпаковокСтрока"); + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ГиперссылкаПерейтиПрогнозыРасходаУпаковок"; + КонецЕсли; + ТабличныйДокументПраво.Вывести(Область); + КонецЕсли; + + Если РазделВиден("ЕдиницаИзмерения", СтруктураВидимости) Тогда + + СтрокаЗаполнения = НСтр("ru = '%ЕдиницаИзмерения%%Тара%'"); + Если ЗначениеЗаполнено(Объект.ЕдиницаИзмерения) Тогда + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%ЕдиницаИзмерения%", Объект.ЕдиницаИзмерения); + Иначе + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%ЕдиницаИзмерения%", НСтр("ru = '<не указана>'")); + КонецЕсли; + + Если Объект.ПоставляетсяВМногооборотнойТаре Тогда + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%Тара%", НСтр("ru = ', поставляется в таре'")); + Иначе + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%Тара%", ""); + КонецЕсли; + + СтруктураЗаголовков.Свойство("ЕдиницаИзмерения", Заголовок); + + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "ЕдиницаИзмерения"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ЕдиницаИзмеренияСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ЕдиницаИзмеренияРеквизит"; + ПараметрыВыводаРаздела.ТекстЗаголовкаРеквизита = Заголовок; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = СтрокаЗаполнения; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + + КонецЕсли; + + Если РазделВиден("НоменклатураМногооборотнаяТара", СтруктураВидимости) Тогда + + СтрокаЗаполнения = НоменклатураКлиентСервер.ПредставлениеНоменклатуры( + Объект.НоменклатураМногооборотнаяТара, + Объект.ХарактеристикаМногооборотнаяТара); + + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "НоменклатураМногооборотнаяТара"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "НоменклатураМногооборотнаяТараСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "НоменклатураМногооборотнаяТараРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = СтрокаЗаполнения; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + + КонецЕсли; + + Если РазделВиден("ЕдиницаДляОтчетов", СтруктураВидимости) Тогда + + СтрокаЗаполнения = НСтр("ru = '<не указана>'"); + + Если ЗначениеЗаполнено(Объект.ЕдиницаДляОтчетов) Тогда + Если Объект.ЕдиницаДляОтчетов <> Объект.ЕдиницаИзмерения Тогда + СтрокаЗаполнения = НСтр("ru = '%ЕдиницаДляОтчетов%, содержит %Количество% %ЕдиницаИзмерения%'"); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%Количество%", Объект.КоэффициентЕдиницыДляОтчетов); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%ЕдиницаИзмерения%", Объект.ЕдиницаИзмерения); + Иначе + СтрокаЗаполнения = НСтр("ru = '%ЕдиницаДляОтчетов%'"); + КонецЕсли; + + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%ЕдиницаДляОтчетов%", Объект.ЕдиницаДляОтчетов); + КонецЕсли; + + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "ЕдиницаДляОтчетов"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ЕдиницаДляОтчетовСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ЕдиницаДляОтчетовРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = СтрокаЗаполнения; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + + КонецЕсли; + + Если РазделВиден("Вес", СтруктураВидимости) Тогда + + Если Объект.ВесИспользовать Тогда + СтрокаЗаполнения = НСтр("ru = '%Количество1% %ЕдиницаИзмерения% весит %Количество2% %Единица%, %МожноУказыватьВДокументах%'"); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%Количество1%", Объект.ВесЗнаменатель); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%Количество2%", Объект.ВесЧислитель); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%ЕдиницаИзмерения%", Объект.ЕдиницаИзмерения); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%Единица%", Объект.ВесЕдиницаИзмерения); + Если Объект.ВесМожноУказыватьВДокументах Тогда + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%МожноУказыватьВДокументах%", НСтр("ru = 'можно указывать количество в %ЕдиницаИзмерения% в документах'")); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%ЕдиницаИзмерения%", Объект.ВесЕдиницаИзмерения); + Иначе + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%МожноУказыватьВДокументах%", НСтр("ru = 'указан справочно'")); + КонецЕсли; + Иначе + СтрокаЗаполнения = НСтр("ru = '<не измеряется>'"); + КонецЕсли; + + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "Вес"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ВесСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ВесРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = СтрокаЗаполнения; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + + КонецЕсли; + + + Если РазделВиден("Объем", СтруктураВидимости) Тогда + + Если Объект.ОбъемИспользовать Тогда + СтрокаЗаполнения = НСтр("ru = '%Количество1% %ЕдиницаИзмерения% занимает объем %Количество2% %Единица%, %МожноУказыватьВДокументах%'"); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%Количество1%", Объект.ОбъемЗнаменатель); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%Количество2%", Объект.ОбъемЧислитель); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%ЕдиницаИзмерения%", Объект.ЕдиницаИзмерения); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%Единица%", Объект.ОбъемЕдиницаИзмерения); + Если Объект.ОбъемМожноУказыватьВДокументах Тогда + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%МожноУказыватьВДокументах%", НСтр("ru = 'можно указывать количество в %ЕдиницаИзмерения% в документах'")); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%ЕдиницаИзмерения%", Объект.ОбъемЕдиницаИзмерения); + Иначе + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%МожноУказыватьВДокументах%", НСтр("ru = 'указан справочно'")); + КонецЕсли; + Иначе + СтрокаЗаполнения = НСтр("ru = '<не измеряется>'"); + КонецЕсли; + + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "Объем"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ОбъемСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ОбъемРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = СтрокаЗаполнения; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + + КонецЕсли; + + + Если РазделВиден("Длина", СтруктураВидимости) Тогда + + Если Объект.ДлинаИспользовать Тогда + СтрокаЗаполнения = НСтр("ru = '%Количество1% %ЕдиницаИзмерения% имеет длину %Количество2% %Единица%, %МожноУказыватьВДокументах%'"); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%Количество1%", Объект.ДлинаЗнаменатель); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%Количество2%", Объект.ДлинаЧислитель); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%ЕдиницаИзмерения%", Объект.ЕдиницаИзмерения); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%Единица%", Объект.ДлинаЕдиницаИзмерения); + Если Объект.ДлинаМожноУказыватьВДокументах Тогда + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%МожноУказыватьВДокументах%", НСтр("ru = 'можно указывать количество в %ЕдиницаИзмерения% в документах'")); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%ЕдиницаИзмерения%", Объект.ДлинаЕдиницаИзмерения); + Иначе + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%МожноУказыватьВДокументах%", НСтр("ru = 'указана справочно'")); + КонецЕсли; + Иначе + СтрокаЗаполнения = НСтр("ru = '<не измеряется>'"); + КонецЕсли; + + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "Длина"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ДлинаСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ДлинаРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = СтрокаЗаполнения; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + + КонецЕсли; + + Если РазделВиден("Площадь", СтруктураВидимости) Тогда + + Если Объект.ПлощадьИспользовать Тогда + СтрокаЗаполнения = НСтр("ru = '%Количество1% %ЕдиницаИзмерения% имеет площадь %Количество2% %Единица%, %МожноУказыватьВДокументах%'"); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%Количество1%", Объект.ПлощадьЗнаменатель); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%Количество2%", Объект.ПлощадьЧислитель); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%ЕдиницаИзмерения%", Объект.ЕдиницаИзмерения); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%Единица%", Объект.ПлощадьЕдиницаИзмерения); + Если Объект.ПлощадьМожноУказыватьВДокументах Тогда + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%МожноУказыватьВДокументах%", НСтр("ru = 'можно указывать количество в %ЕдиницаИзмерения% в документах'")); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%ЕдиницаИзмерения%", Объект.ПлощадьЕдиницаИзмерения); + Иначе + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%МожноУказыватьВДокументах%", НСтр("ru = 'указана справочно'")); + КонецЕсли; + Иначе + СтрокаЗаполнения = НСтр("ru = '<не измеряется>'"); + КонецЕсли; + + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "Площадь"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ПлощадьСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ПлощадьРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = СтрокаЗаполнения; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("СкладскаяГруппа", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "СкладскаяГруппа"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "СкладскаяГруппаСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "СкладскаяГруппаРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.СкладскаяГруппа; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиРазмещениеНоменклатуры", СтруктураВидимости) Тогда + Область = Макет.ПолучитьОбласть("ГиперссылкаПерейтиРазмещениеНоменклатурыСтрока"); + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ГиперссылкаПерейтиРазмещениеНоменклатуры"; + КонецЕсли; + ТабличныйДокументПраво.Вывести(Область); + КонецЕсли; + + Если РазделВиден("СрокГодности", СтруктураВидимости) Тогда + СтрокаЗаполнения = НСтр("ru = '%СрокГодности% %ЕдиницаИзмеренияСрокаГодности%'"); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%СрокГодности%", Объект.СрокГодности); + СтрокаЗаполнения = СтрЗаменить(СтрокаЗаполнения, "%ЕдиницаИзмеренияСрокаГодности%", Объект.ЕдиницаИзмеренияСрокаГодности); + + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "СрокГодности"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "СрокГодностиСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "СрокГодностиРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = СтрокаЗаполнения; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + КонецЕсли; + + #КонецОбласти + + #Область ФинансовыйУчет + + Если ГлаваВидна("ФинансовыйУчет", СтруктураВидимости) Тогда + + ОбластьЗаголовок = Макет.ПолучитьОбласть("ФинансовыйУчетЗаголовок"); + ТабличныйДокументПраво.Вывести(ОбластьЗаголовок); + + Если РазделВиден("ГруппаАналитическогоУчета", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "ГруппаАналитическогоУчета"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ГруппаАналитическогоУчетаСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ГруппаАналитическогоУчетаРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.ГруппаАналитическогоУчета; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("ГруппаФинансовогоУчета", СтруктураВидимости) Тогда + ПараметрыВыводаРаздела = ПараметрыВыводаРазделаСУчетомРазмераЗначений(); + ПараметрыВыводаРаздела.ИмяРаздела = "ГруппаФинансовогоУчета"; + ПараметрыВыводаРаздела.ИмяОбластиСтрока = "ГруппаФинансовогоУчетаСтрока"; + ПараметрыВыводаРаздела.ИмяПараметраРеквизит = "ГруппаФинансовогоУчетаРеквизит"; + ПараметрыВыводаРаздела.ТекстЗначенияРеквизита = Объект.ГруппаФинансовогоУчета; + ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокументПраво, Макет, ДляПечати, ПараметрыВыводаРаздела); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиРаспределениеПродажПоНаправлениямДеятельности", СтруктураВидимости) Тогда + Область = Макет.ПолучитьОбласть("ГиперссылкаПерейтиРаспределениеПродажПоНаправлениямДеятельностиСтрока"); + Если Не ДляПечати Тогда + Область.Параметры.Расшифровка = "ГиперссылкаПерейтиРаспределениеПродажПоНаправлениямДеятельности"; + КонецЕсли; + ТабличныйДокументПраво.Вывести(Область); + КонецЕсли; + + КонецЕсли; + + #КонецОбласти + + НоменклатураЛокализация.ВывестиГлавы(ТабличныйДокументПраво, Объект, НастройкиВидимостиИЗаголовков, ДляПечати); + + ТабличныйДокументКолонки.Присоединить(ТабличныйДокументПраво); + + #КонецОбласти + + ТабличныйДокументКарточка.Вывести(ТабличныйДокументКолонки); + + Возврат ТабличныйДокументКарточка; + +КонецФункции + +Функция ТекстЗначенияНеЗаполнен(ИмяРаздела) + + Если ИмяРаздела = "Наименование" Тогда + Возврат НСтр("ru = '<не указано>'"); + ИначеЕсли ИмяРаздела = "НаименованиеПолное" Тогда + Возврат НСтр("ru = '<не указано>'"); + ИначеЕсли ИмяРаздела = "Артикул" Тогда + Возврат НСтр("ru = '<не указан>'"); + ИначеЕсли ИмяРаздела = "Код" Тогда + Возврат НСтр("ru = '<не указан>'"); + ИначеЕсли ИмяРаздела = "Описание" Тогда + Возврат НСтр("ru = '<не указано>'"); + ИначеЕсли ИмяРаздела = "ФайлОписанияДляСайта" Тогда + Возврат НСтр("ru = '<не указан>'"); + ИначеЕсли ИмяРаздела = "ДополнительныеРеквизиты" Тогда + Возврат НСтр("ru = '<значение не задано>'"); + ИначеЕсли ИмяРаздела = "Производитель" Тогда + Возврат НСтр("ru = '<не указан>'"); + ИначеЕсли ИмяРаздела = "СтранаПроисхождения" Тогда + Возврат НСтр("ru = '<не указана>'"); + ИначеЕсли ИмяРаздела = "Марка" Тогда + Возврат НСтр("ru = '<не указана>'"); + ИначеЕсли ИмяРаздела = "Контрагент" Тогда + Возврат НСтр("ru = '<не указан>'"); + ИначеЕсли ИмяРаздела = "Принципал" Тогда + Возврат НСтр("ru = '<не указан>'"); + ИначеЕсли ИмяРаздела = "ТоварнаяКатегория" Тогда + Возврат НСтр("ru = '<не указана>'"); + ИначеЕсли ИмяРаздела = "КоллекцияНоменклатуры" Тогда + Возврат НСтр("ru = '<не указана>'"); + ИначеЕсли ИмяРаздела = "СезоннаяГруппа" Тогда + Возврат НСтр("ru = '<не указана>'"); + ИначеЕсли ИмяРаздела = "РейтингПродаж" Тогда + Возврат НСтр("ru = '<не указан>'"); + ИначеЕсли ИмяРаздела = "СпособОбеспеченияПотребностей" Тогда + Возврат НСтр("ru = '<не указан>'"); + ИначеЕсли ИмяРаздела = "СхемаОбеспечения" Тогда + Возврат НСтр("ru = '<не указана>'"); + ИначеЕсли ИмяРаздела = "СрокКонтроляКачества" Тогда + Возврат НСтр("ru = '0'"); + ИначеЕсли ИмяРаздела = "ЦеноваяГруппа" Тогда + Возврат НСтр("ru = '<не указана>'"); + ИначеЕсли ИмяРаздела = "Родитель" Тогда + Возврат НСтр("ru = '<не указана>'"); + ИначеЕсли ИмяРаздела = "ГруппаДоступа" Тогда + Возврат НСтр("ru = '<не указана>'"); + ИначеЕсли ИмяРаздела = "СкладскаяГруппа" Тогда + Возврат НСтр("ru = '<не указана>'"); + ИначеЕсли ИмяРаздела = "ГруппаАналитическогоУчета" Тогда + Возврат НСтр("ru = '<не указана>'"); + ИначеЕсли ИмяРаздела = "ГруппаФинансовогоУчета" Тогда + Возврат НСтр("ru = '<не указана>'"); + ИначеЕсли ИмяРаздела = "КодТНВЭД" Тогда + Возврат НСтр("ru = '<не указан>'"); + Иначе + Возврат НоменклатураЛокализация.ТекстЗначенияНеЗаполнен(ИмяРаздела); + КонецЕсли; + +КонецФункции + +// Параметры вывода раздела с учетом размера значений. +// +// Возвращаемое значение: +// Структура - Параметры вывода раздела с учетом размера значений: +// * ИмяРаздела - Строка - +// * ИмяОбластиСтрока - Строка - +// * ИмяПараметраРеквизит - Строка - +// * ТекстЗначенияРеквизита - +// * ТекстЗаголовкаРеквизита - +// * НовоеИмяРаздела - +Функция ПараметрыВыводаРазделаСУчетомРазмераЗначений() Экспорт + + ПараметрыВыводаРаздела = Новый Структура; + ПараметрыВыводаРаздела.Вставить("ИмяРаздела", ""); + ПараметрыВыводаРаздела.Вставить("ИмяОбластиСтрока", ""); + ПараметрыВыводаРаздела.Вставить("ИмяПараметраРеквизит", ""); + ПараметрыВыводаРаздела.Вставить("ТекстЗначенияРеквизита"); + ПараметрыВыводаРаздела.Вставить("ТекстЗаголовкаРеквизита"); + ПараметрыВыводаРаздела.Вставить("НовоеИмяРаздела"); + + Возврат ПараметрыВыводаРаздела; + +КонецФункции + +// Вывести раздел с учетом размера значений. +// +// Параметры: +// ТабличныйДокумент - ТабличныйДокумент - Табличный документ +// Макет - ТабличныйДокумент - Макет +// ДляПечати - Булево - Для печати +// ПараметрыВывода - См. ПараметрыВыводаРазделаСУчетомРазмераЗначений +Процедура ВывестиРазделСУчетомРазмераЗначений(ТабличныйДокумент, Макет, ДляПечати, ПараметрыВывода) Экспорт + + ОбластьСтрока = Макет.ПолучитьОбласть(ПараметрыВывода.ИмяОбластиСтрока); + + Если ПараметрыВывода.ТекстЗаголовкаРеквизита <> Неопределено Тогда + ОбластьСтрока.Параметры[ПараметрыВывода.ИмяПараметраРеквизит] = Строка(ПараметрыВывода.ТекстЗаголовкаРеквизита) + ":"; + КонецЕсли; + + Если ЗначениеЗаполнено(ПараметрыВывода.ТекстЗначенияРеквизита) Тогда + ОбластьСтрока.Параметры[ПараметрыВывода.ИмяРаздела] = ПараметрыВывода.ТекстЗначенияРеквизита; + Иначе + ОбластьСтрока.Параметры[ПараметрыВывода.ИмяРаздела] = ТекстЗначенияНеЗаполнен(ПараметрыВывода.ИмяРаздела); + КонецЕсли; + + Если Не ДляПечати Тогда + Если ПараметрыВывода.НовоеИмяРаздела = Неопределено Тогда + ОбластьСтрока.Параметры.Расшифровка = ПараметрыВывода.ИмяРаздела; + Иначе + ОбластьСтрока.Параметры.Расшифровка = ПараметрыВывода.НовоеИмяРаздела; + КонецЕсли; + КонецЕсли; + + ТабличныйДокумент.Вывести(ОбластьСтрока); + + КоличествоДополнительныхСтрок = 0; + + КоличествоДополнительныхСтрок = КоличествоДополнительныхСтрок( + ТабличныйДокумент, + ПараметрыВывода.ИмяРаздела, + ПараметрыВывода.ТекстЗначенияРеквизита, + ПараметрыВывода.ТекстЗаголовкаРеквизита); + + Счетчик = КоличествоДополнительныхСтрок; + + ОбластьДопСтрока = Макет.ПолучитьОбласть(ПолучитьИмяОбластиДопСтрокиПоИмениРаздела(ПараметрыВывода.ИмяРаздела)); + + Пока Счетчик > 0 Цикл + Счетчик = Счетчик - 1; + ТабличныйДокумент.Вывести(ОбластьДопСтрока); + КонецЦикла; + + ОбъединитьРазделСоСтрокамиНиже(ТабличныйДокумент, ПараметрыВывода.ИмяОбластиСтрока, КоличествоДополнительныхСтрок); + +КонецПроцедуры + +Процедура ОбъединитьРазделСоСтрокамиНиже(ТабличныйДокумент, ИмяОбласти, КоличествоДопСтрок) + + Если КоличествоДопСтрок = 0 Тогда + Возврат; + КонецЕсли; + + Область = ТабличныйДокумент.Область(ИмяОбласти); + Область.Разъединить(); + Область.Имя = Неопределено; + АдресОбласти = Область.Имя; + СтруктураАдреса = СтруктураАдреса(АдресОбласти); + + АдресКолонкиЗаголовкаНачало = СтруктураАдреса.АдресКолонкиНачало + 1; // + 1, т.к. слева колонка-отступ + АдресКолонкиЗаголовкаКонец = АдресКолонкиЗаголовкаНачало + 7; // +7, т.к. заголовок занимает 8 колонок + АдресКолонкиЗначенияНачало = АдресКолонкиЗаголовкаКонец + 1; + + // В левой колонке карточки разность должна быть равна 20, в правой - 21 + Если СтруктураАдреса.АдресКолонкиКонец - СтруктураАдреса.АдресКолонкиНачало = 20 Тогда + АдресКолонкиЗначенияКонец = СтруктураАдреса.АдресКолонкиКонец; + ИначеЕсли СтруктураАдреса.АдресКолонкиКонец - СтруктураАдреса.АдресКолонкиНачало = 21 Тогда + АдресКолонкиЗначенияКонец = СтруктураАдреса.АдресКолонкиКонец - 1; + КонецЕсли; + + АдресСтрокиНачало = СтруктураАдреса.АдресСтрокиНачало; + АдресСтрокиКонец = СтруктураАдреса.АдресСтрокиКонец; + + // Для заголовка + НовыйАдрес = "R" + АдресСтрокиНачало + "C" + АдресКолонкиЗаголовкаНачало + ":" + + "R" + (АдресСтрокиКонец + КоличествоДопСтрок) + "C" + АдресКолонкиЗаголовкаКонец; + Область = ТабличныйДокумент.Область(НовыйАдрес); + Область.Объединить(); + + // Для значения + НовыйАдрес = "R" + АдресСтрокиНачало + "C" + АдресКолонкиЗначенияНачало + ":" + + "R" + (АдресСтрокиКонец + КоличествоДопСтрок) + "C" + АдресКолонкиЗначенияКонец; + Область = ТабличныйДокумент.Область(НовыйАдрес); + Область.Объединить(); + +КонецПроцедуры + +Функция СтруктураАдреса(Адрес) + + МассивАдресОбласти = СтрРазделить(Адрес, ":"); + Если МассивАдресОбласти.Количество() <> 2 Тогда + // Это значит, что строка состоит из одной колонки, процедура объединения с такими не работает. + Возврат Неопределено; + КонецЕсли; + + АдресНачало = МассивАдресОбласти[0]; + МассивАдресНачало = СтрРазделить(АдресНачало, "C"); + АдресСтрокиНачало = СтрЗаменить(МассивАдресНачало[0], "R", ""); + АдресКолонкиНачало = МассивАдресНачало[1]; + + АдресКонец = МассивАдресОбласти[1]; + МассивАдресКонец = СтрРазделить(АдресКонец, "C"); + АдресСтрокиКонец = СтрЗаменить(МассивАдресКонец[0], "R", ""); + АдресКолонкиКонец = МассивАдресКонец[1]; + + СтруктураАдреса = Новый Структура; + СтруктураАдреса.Вставить("АдресСтрокиНачало", Число(АдресСтрокиНачало)); + СтруктураАдреса.Вставить("АдресКолонкиНачало", Число(АдресКолонкиНачало)); + СтруктураАдреса.Вставить("АдресСтрокиКонец", Число(АдресСтрокиКонец)); + СтруктураАдреса.Вставить("АдресКолонкиКонец", Число(АдресКолонкиКонец)); + + Возврат СтруктураАдреса; + +КонецФункции + +Функция ПолучитьИмяОбластиДопСтрокиПоИмениРаздела(ИмяРаздела) + + Если ИмяРаздела = "ДополнительныеРеквизиты" + Или ИмяРаздела = "Описание" + Или ИмяРаздела = "Производитель" + Или ИмяРаздела = "ПроизводительИмпортерКонтрагент" + Или ИмяРаздела = "СтранаПроисхождения" + Или ИмяРаздела = "Марка" + Или ИмяРаздела = "Принципал" + Или ИмяРаздела = "Контрагент" + Или ИмяРаздела = "ФайлОписанияДляСайта" + Или ИмяРаздела = "ВестиУчетСертификатовНоменклатуры" + Или ИмяРаздела = "ТоварнаяКатегория" + Или ИмяРаздела = "КоллекцияНоменклатуры" + Или ИмяРаздела = "СезоннаяГруппа" + Или ИмяРаздела = "РейтингПродаж" + Или ИмяРаздела = "ГиперссылкаПерейтиСегменты" + Или ИмяРаздела = "ГиперссылкаПерейтиСовместныеПродажи" + Или ИмяРаздела = "ОбособленнаяЗакупкаПродажа" + Или ИмяРаздела = "СпособОбеспеченияПотребностей" + Или ИмяРаздела = "СхемаОбеспечения" + Или ИмяРаздела = "ГиперссылкаПерейтиВариантыКомплектации" + Или ИмяРаздела = "ГиперссылкаПерейтиНастройкаПоддержанияЗапасов" + Или ИмяРаздела = "ГиперссылкаПерейтиНастройкаСпособовОбеспеченияПотребностей" + Или ИмяРаздела = "ГиперссылкаПерейтиПроизводство" + Или ИмяРаздела = "КонтролироватьКачествоПоступившегоТовара" + Или ИмяРаздела = "СрокКонтроляКачества" + Или ИмяРаздела = "ЦеноваяГруппа" + Или ИмяРаздела = "ГиперссылкаПерейтиПрайсЛистКомпании" + Или ИмяРаздела = "ГиперссылкаПерейтиПрайсЛистыПоставщиков" + Или ИмяРаздела = "ШаблонЭтикетки" + Или ИмяРаздела = "ШаблонЦенника" + Или ИмяРаздела = "ГруппаАналитическогоУчета" + Или ИмяРаздела = "ГруппаФинансовогоУчета" Тогда + Возврат "ДопСтрокаЛево"; + Иначе + Возврат "ДопСтрокаПраво"; + КонецЕсли; + +КонецФункции + +Функция КоличествоДополнительныхСтрок(ТабличныйДокумент, ИмяРаздела, ТекстЗаполненияЗначения, ТекстЗаполненияРеквизита) + + ШиринаКолонки = 2.38; + КоличествоКолонокВЗначенииРеквизита = 12; + ШиринаЗначенияРеквизита = КоличествоКолонокВЗначенииРеквизита * ШиринаКолонки; + ЧислоСтрокЗначения = КоличествоСтрок(ШиринаЗначенияРеквизита, ТекстЗаполненияЗначения); + + ЧислоСтрокСвойства = 0; + Если ЗначениеЗаполнено(ТекстЗаполненияРеквизита) Тогда + КоличествоКолонокВЗаголовкеРеквизита = 8; + ШиринаЗаголовкаРеквизита = ШиринаКолонки * КоличествоКолонокВЗаголовкеРеквизита; + ЧислоСтрокСвойства = КоличествоСтрок(ШиринаЗаголовкаРеквизита, ТекстЗаполненияРеквизита); + КонецЕсли; + + ЧислоСтрок = Макс(ЧислоСтрокЗначения, ЧислоСтрокСвойства); + + Если ЧислоСтрок = 0 Тогда + Возврат 0; + КонецЕсли; + + Возврат ЧислоСтрок - 1; + +КонецФункции + +Функция КоличествоСтрок(ШиринаОбласти, Строка) + + Если Не ЗначениеЗаполнено(Строка) Тогда + Возврат 0; + КонецЕсли; + + СредняяШиринаСимвола = 0.75; + + МассивСлов = СтрРазделить(Строка, " "); + + КоличествоСтрок = 1; // = 1, т.к. проверку на заполненность мы сделали выше, а значит одна строка нужна точно + ТекущаяСтрока = ""; + + Для Каждого Слово Из МассивСлов Цикл + + ТекущаяСтрока = ТекущаяСтрока + Слово + " "; + Если СтрДлина(ТекущаяСтрока) * СредняяШиринаСимвола > ШиринаОбласти Тогда + КоличествоСтрок = КоличествоСтрок + 1; + ТекущаяСтрока = Слово + " "; + КонецЕсли; + + КонецЦикла; + + Возврат КоличествоСтрок; + +КонецФункции + +Функция КартинкаФлагаПоЗначению(ЗначениеФлага) Экспорт + + Если ЗначениеФлага Тогда + Возврат БиблиотекаКартинок.ФлагУстановлен; + Иначе + Возврат БиблиотекаКартинок.ФлагНеУстановлен; + КонецЕсли; + +КонецФункции + +Функция РазделВиден(ИмяРаздела, СтруктураВидимости) Экспорт + + Видимость = Истина; + Если СтруктураВидимости.Свойство(ИмяРаздела) Тогда + Видимость = СтруктураВидимости[ИмяРаздела]; + КонецЕсли; + + Возврат Видимость; + +КонецФункции + +Функция ГлаваВидна(ИмяГлавы, СтруктураВидимости, КоличествоДопРеквизитов = 0) + + Если ИмяГлавы = "Описание" Тогда + Возврат Истина; + КонецЕсли; + + Если ИмяГлавы = "ДополнительныеРеквизиты" Тогда + Возврат КоличествоДопРеквизитов > 0 И ПолучитьФункциональнуюОпцию("ИспользоватьДополнительныеРеквизитыИСведения"); + КонецЕсли; + + Если ИмяГлавы = "СведенияОПроизводителе" Тогда + Возврат РазделВиден("Производитель", СтруктураВидимости) + Или РазделВиден("Марка", СтруктураВидимости) + Или РазделВиден("ПроизводительИмпортерКонтрагент", СтруктураВидимости) + Или РазделВиден("Принципал", СтруктураВидимости) + Или РазделВиден("Контрагент", СтруктураВидимости) + Или РазделВиден("ГиперссылкаПерейтиСоглашения", СтруктураВидимости); + КонецЕсли; + + Если ИмяГлавы = "ПланированиеИМаркетинг" Тогда + Возврат РазделВиден("ТоварнаяКатегория", СтруктураВидимости) + Или РазделВиден("КоллекцияНоменклатуры", СтруктураВидимости) + Или РазделВиден("СезоннаяГруппа", СтруктураВидимости) + Или РазделВиден("РейтингПродаж", СтруктураВидимости) + Или РазделВиден("ГиперссылкаПерейтиСегменты", СтруктураВидимости) + Или РазделВиден("ГиперссылкаПерейтиСовместныеПродажи", СтруктураВидимости); + КонецЕсли; + + Если ИмяГлавы = "ОбеспечениеИПроизводство" Тогда + Возврат РазделВиден("ОбособленнаяЗакупкаПродажа", СтруктураВидимости) + Или РазделВиден("СпособОбеспеченияПотребностей", СтруктураВидимости) + Или РазделВиден("СхемаОбеспечения", СтруктураВидимости) + Или РазделВиден("ГиперссылкаПерейтиВариантыКомплектации", СтруктураВидимости) + Или РазделВиден("ГиперссылкаПерейтиНастройкаПоддержанияЗапасов", СтруктураВидимости) + Или РазделВиден("ГиперссылкаПерейтиНастройкаСпособовОбеспеченияПотребностей", СтруктураВидимости) + Или РазделВиден("ГиперссылкаПерейтиНастройкаПередачиМатериаловВПроизводство", СтруктураВидимости) + Или РазделВиден("ГиперссылкаПерейтиПроизводство", СтруктураВидимости); + КонецЕсли; + + Если ИмяГлавы = "КонтрольКачества" Тогда + Возврат РазделВиден("КонтролироватьКачествоПоступившегоТовара", СтруктураВидимости) + Или РазделВиден("СрокКонтроляКачества", СтруктураВидимости); + КонецЕсли; + + Если ИмяГлавы = "Цены" Тогда + Возврат РазделВиден("ЦеноваяГруппа", СтруктураВидимости) + Или РазделВиден("ГиперссылкаПерейтиПрайсЛистКомпании", СтруктураВидимости) + Или РазделВиден("ГиперссылкаПерейтиПрайсЛистыПоставщиков", СтруктураВидимости); + КонецЕсли; + + Если ИмяГлавы = "ПечатьЭтикетокИЦенников" Тогда + Возврат РазделВиден("ШаблонЭтикетки", СтруктураВидимости) + Или РазделВиден("ШаблонЦенника", СтруктураВидимости); + КонецЕсли; + + Если ИмяГлавы = "ОсновныеПараметрыУчета" Тогда + Возврат Истина; + КонецЕсли; + + Если ИмяГлавы = "ЕдиницыИзмеренияИОбластьХранения" Тогда + Возврат Истина; + КонецЕсли; + + Если ИмяГлавы = "ФинансовыйУчет" Тогда + Возврат РазделВиден("ГруппаАналитическогоУчета", СтруктураВидимости) + Или РазделВиден("ГруппаФинансовогоУчета", СтруктураВидимости) + Или РазделВиден("ГиперссылкаПерейтиРаспределениеПродажПоНаправлениямДеятельности", СтруктураВидимости); + КонецЕсли; + + Возврат Ложь; + +КонецФункции + +Функция ПравоДоступаНаОбъектМетаданныхПоРеквизиту(Право, РеквизитОбъектМетаданных) Экспорт + + Если Пользователи.ЭтоПолноправныйПользователь() Тогда + Возврат Истина; + КонецЕсли; + + МассивтиповДляПроверки = РеквизитОбъектМетаданных.Тип.Типы(); + Для Каждого Тип Из МассивтиповДляПроверки Цикл + + Если ОбщегоНазначенияУТ.ЭтоПримитивныйТип(Тип) Тогда + Продолжить; + КонецЕсли; + + ОбъектМетаданных = Метаданные.НайтиПоТипу(Тип); + Если ОбъектМетаданных <> Неопределено + И Не ПравоДоступа(Право, ОбъектМетаданных) Тогда + Возврат Ложь; + КонецЕсли; + КонецЦикла; + + Возврат Истина; +КонецФункции + +// Возвращает признак видимости реквизита. +// +// Параметры: +// Реквизит - Строка, СтрокаТаблицыЗначений - описание реквизита. +// ИмяРеквизита - Строка - имя реквизита. +// РежимВидимостиПоказатьТолькоВажные - Булево - признак режима отображения важных реквизитов. +// СтрокаНастройки - СтрокаТаблицыЗначений - описание настроек реквизита. +// +// Возвращаемое значение: +// Булево - признак видимости реквизита. +// +Функция ВидимостьРеквизита(Реквизит, ИмяРеквизита, РежимВидимостиПоказатьТолькоВажные, СтрокаНастройки) Экспорт + + Если Не ТипЗнч(Реквизит) = Тип("Строка") Тогда + Возврат ПравоДоступаНаОбъектМетаданныхПоРеквизиту("Просмотр", Реквизит) + И (Не РежимВидимостиПоказатьТолькоВажные + Или СтрокаНастройки.ОтображатьПриСоздании) + Иначе + Возврат ПравоДоступа("Просмотр", Метаданные.Справочники.Номенклатура.Реквизиты[ИмяРеквизита]) + И ПравоДоступаНаОбъектМетаданныхПоРеквизиту("Просмотр", Метаданные.Справочники.Номенклатура.Реквизиты[ИмяРеквизита]) + И (Не РежимВидимостиПоказатьТолькоВажные + Или СтрокаНастройки.ОтображатьПриСоздании) + КонецЕсли; + +КонецФункции + +Функция ВидимостьДополнительногоРеквизита(Объект, ОписаниеСвойства, ДопРеквизиты, УсловияВидимостиРеквизитов) + + Видимость = Истина; + + УсловияЗависимостей = Неопределено; + ЗначенияРеквизитов = Новый Структура; + + ОтборСтрок = Новый Структура("Свойство", ОписаниеСвойства.Свойство); + СтрокиЗависимостей = УсловияВидимостиРеквизитов.НайтиСтроки(ОтборСтрок); + + Для Каждого СтрокаЗависимости Из СтрокиЗависимостей Цикл + Если ТипЗнч(СтрокаЗависимости.Реквизит) = Тип("Строка") Тогда + ПутьКРеквизиту = "Параметры.ОписаниеОбъекта." + СтрокаЗависимости.Реквизит; + Иначе + ДанныеДопРеквизита = ДопРеквизиты.Найти(СтрокаЗависимости.Реквизит, "Свойство"); + + Если ДанныеДопРеквизита = Неопределено Тогда + Продолжить; // Дополнительный реквизит не существует, условие игнорируется. + КонецЕсли; + + ПутьКРеквизиту = "Параметры.Форма." + ДанныеДопРеквизита.ИмяРеквизита; + + ЗначенияРеквизитов.Вставить(ДанныеДопРеквизита.ИмяРеквизита, ДанныеДопРеквизита.Значение); + КонецЕсли; + + ЗаполнитьУсловияЗависимостей(УсловияЗависимостей, СтрокаЗависимости, ПутьКРеквизиту); + КонецЦикла; + + Если УсловияЗависимостей <> Неопределено Тогда + Параметры = Новый Структура; + Параметры.Вставить("Форма", ЗначенияРеквизитов); + Параметры.Вставить("ЗначенияПараметров", УсловияЗависимостей.ЗначенияПараметров); + Параметры.Вставить("ОписаниеОбъекта", Объект); + + Попытка + Видимость = ОбщегоНазначения.ВычислитьВБезопасномРежиме(УсловияЗависимостей.КодУсловия, Параметры); + Исключение + Видимость = Истина; + + ИмяСобытия = НСтр("ru = 'Формирование карточки номеклатуры ""%1"". + |Не удалось вычислить условие видимости дополнительного реквизита ""%2""'", + ОбщегоНазначения.КодОсновногоЯзыка()); + ИмяСобытия = СтрШаблон(ИмяСобытия, Строка(Объект.Ссылка), ОписаниеСвойства.ПредставлениеРеквизита); + + ЗаписьЖурналаРегистрации(ИмяСобытия, + УровеньЖурналаРегистрации.Ошибка, + Метаданные.Справочники.Номенклатура, + Объект.Ссылка, + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + КонецЕсли; + + Возврат Видимость; + +КонецФункции + +Процедура ЗаполнитьУсловияЗависимостей(УсловияЗависимостей, ДанныеДопРеквизита, ПутьКРеквизиту) + + // Преобразование старого условия для обратной совместимости. + НовоеУсловие = ""; + УсловиеЧастями = СтрРазделить(ДанныеДопРеквизита.Условие, " "); + + Если УсловиеЧастями.Количество() > 0 Тогда + Для Каждого ЧастьУсловия Из УсловиеЧастями Цикл + НовоеУсловие = НовоеУсловие + ВРег(Лев(ЧастьУсловия, 1)) + Сред(ЧастьУсловия, 2); + КонецЦикла; + КонецЕсли; + + Если ЗначениеЗаполнено(НовоеУсловие) Тогда + ДанныеДопРеквизита.Условие = НовоеУсловие; + КонецЕсли; + + ШаблонУсловия = ""; + + Если ДанныеДопРеквизита.Условие = "Равно" Тогда + ШаблонУсловия = "%1 = %2"; + ИначеЕсли ДанныеДопРеквизита.Условие = "НеРавно" Тогда + ШаблонУсловия = "%1 <> %2"; + КонецЕсли; + + Если ДанныеДопРеквизита.Условие = "ВСписке" Тогда + ШаблонУсловия = "%2.НайтиПоЗначению(%1) <> Неопределено"; + ИначеЕсли ДанныеДопРеквизита.Условие = "НеВСписке" Тогда + ШаблонУсловия = "%2.НайтиПоЗначению(%1) = Неопределено"; + КонецЕсли; + + ПравоеЗначение = ""; + + Если ЗначениеЗаполнено(ШаблонУсловия) Тогда + ПравоеЗначение = "Параметры.ЗначенияПараметров[""%1""]"; + ПравоеЗначение = СтрШаблон(ПравоеЗначение, ПутьКРеквизиту); + КонецЕсли; + + Если ДанныеДопРеквизита.Условие = "Заполнено" Тогда + ШаблонУсловия = "ЗначениеЗаполнено(%1)"; + ИначеЕсли ДанныеДопРеквизита.Условие = "НеЗаполнено" Тогда + ШаблонУсловия = "Не ЗначениеЗаполнено(%1)"; + КонецЕсли; + + Если ЗначениеЗаполнено(ПравоеЗначение) Тогда + КодУсловия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонУсловия, + ПутьКРеквизиту, + ПравоеЗначение); + Иначе + КодУсловия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонУсловия, ПутьКРеквизиту); + КонецЕсли; + + УстановитьУсловиеЗависимости(УсловияЗависимостей, ДанныеДопРеквизита, ПутьКРеквизиту, КодУсловия); + +КонецПроцедуры + +Процедура УстановитьУсловиеЗависимости(УсловияЗависимостей, ДанныеДопРеквизита, ПутьКРеквизиту, КодУсловия) + + Условие = ДанныеДопРеквизита.Условие; + + Если УсловияЗависимостей = Неопределено Тогда + + ЗначенияПараметров = Новый Соответствие; + + Если Условие = "ВСписке" + Или Условие = "НеВСписке" Тогда + + Значение = Новый СписокЗначений; + Значение.Добавить(ДанныеДопРеквизита.Значение); + + Иначе + Значение = ДанныеДопРеквизита.Значение; + КонецЕсли; + + ЗначенияПараметров.Вставить(ПутьКРеквизиту, Значение); + + УсловияЗависимостей = Новый Структура; + УсловияЗависимостей.Вставить("КодУсловия", КодУсловия); + УсловияЗависимостей.Вставить("ЗначенияПараметров", ЗначенияПараметров); + + ИначеЕсли (Условие = "ВСписке" + Или Условие = "НеВСписке") + И ТипЗнч(УсловияЗависимостей.ЗначенияПараметров[ПутьКРеквизиту]) = Тип("СписокЗначений") Тогда + + ЗначенияРеквизита = УсловияЗависимостей.ЗначенияПараметров[ПутьКРеквизиту]; // СписокЗначений + ЗначенияРеквизита.Добавить(ДанныеДопРеквизита.Значение); + + Иначе + УсловияЗависимостей.КодУсловия = УсловияЗависимостей.КодУсловия + " И " + КодУсловия; + + Если Условие = "ВСписке" + Или Условие = "НеВСписке" Тогда + + Значение = Новый СписокЗначений; + Значение.Добавить(ДанныеДопРеквизита.Значение); + + Иначе + Значение = ДанныеДопРеквизита.Значение; + КонецЕсли; + + УсловияЗависимостей.ЗначенияПараметров.Вставить(ПутьКРеквизиту, Значение); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область ПодменюСоздатьНаОсновании + +// Определяет список команд создания на основании. +// +// Параметры: +// КомандыСозданияНаОсновании - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.КомандыСозданияНаОсновании +// Параметры - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.Параметры +// +Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт + + БизнесПроцессы.Задание.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании); + +КонецПроцедуры + +#КонецОбласти + +#Область ПодменюОтчеты + +// Определяет список команд отчетов. +// +// Параметры: +// КомандыОтчетов - См. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.КомандыОтчетов +// Параметры - См. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.Параметры +// +Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт + + КомандаОтчет = Отчеты.ОстаткиИДоступностьТоваров.ДобавитьКомандуОтчета(КомандыОтчетов);//СтрокаТаблицыЗначений + Если КомандаОтчет <> Неопределено Тогда + КомандаОтчет.Важность = "Важное"; + КомандаОтчет.РежимЗаписи = ""; + КонецЕсли; + + КомандаОтчет = Отчеты.ТоварыВЯчейках.ДобавитьКомандуОтчета(КомандыОтчетов); + Если КомандаОтчет <> Неопределено Тогда + КомандаОтчет.Важность = "Важное"; + КомандаОтчет.РежимЗаписи = ""; + КонецЕсли; + + КомандаОтчет = Отчеты.ABCXYZАнализНоменклатуры.ДобавитьКомандуОтчета(КомандыОтчетов); + Если КомандаОтчет <> Неопределено Тогда + КомандаОтчет.Порядок = 1; + КомандаОтчет.РежимЗаписи = ""; + КонецЕсли; + + КомандаОтчет = Отчеты.ВедомостьПоТоварамОрганизаций.ДобавитьКомандуОтчета(КомандыОтчетов); + Если КомандаОтчет <> Неопределено Тогда + КомандаОтчет.Порядок = 2; + КомандаОтчет.РежимЗаписи = ""; + КонецЕсли; + + КомандаОтчет = Отчеты.ВедомостьПоТоварамНаСкладах.ДобавитьКомандуДвиженияТовара(КомандыОтчетов); + Если КомандаОтчет <> Неопределено Тогда + КомандаОтчет.Порядок = 3; + КомандаОтчет.РежимЗаписи = ""; + КонецЕсли; + + КомандаОтчет = Отчеты.ТоварыВЯчейках.ДобавитьКомандуОтчетаДвиженияТовара(КомандыОтчетов); + Если КомандаОтчет <> Неопределено Тогда + КомандаОтчет.Порядок = 4; + КомандаОтчет.РежимЗаписи = ""; + КонецЕсли; + + КомандаОтчет = Отчеты.ВедомостьПоСериямНоменклатуры.ДобавитьКомандуОтчета(КомандыОтчетов); + Если КомандаОтчет <> Неопределено Тогда + КомандаОтчет.Порядок = 5; + КомандаОтчет.РежимЗаписи = ""; + КонецЕсли; + + + КомандаОтчет = Отчеты.ТоварыНаСкладахПоСрокамГодности.ДобавитьКомандуОтчета(КомандыОтчетов); + Если КомандаОтчет <> Неопределено Тогда + КомандаОтчет.РежимЗаписи = ""; + КонецЕсли; + + КомандаОтчет = Отчеты.ВыручкаИСебестоимостьПродаж.ДобавитьКомандуПродажиПоНоменклатуре(КомандыОтчетов); + Если КомандаОтчет <> Неопределено Тогда + КомандаОтчет.Важность = "СмТакже"; + КомандаОтчет.РежимЗаписи = ""; + КонецЕсли; + + КомандаОтчет = Отчеты.СостояниеАссортимента.ДобавитьКомандуОтчета(КомандыОтчетов); + Если КомандаОтчет <> Неопределено Тогда + КомандаОтчет.Важность = "СмТакже"; + КомандаОтчет.РежимЗаписи = ""; + КомандаОтчет.ФункциональныеОпции = "ИспользоватьАссортимент"; + КонецЕсли; + + //++ Локализация + + + //-- Локализация + +КонецПроцедуры + +#КонецОбласти + +#Область МеханизмыНастройкиРаботыСРеквизитамиВВидеНоменклатуры + +// Возвращает имена реквизитов, которые в настоящий момент отключены функциональными опциями. +// +// Возвращаемое значение: +// Массив из Строка - имена реквизитов. +// +Функция РеквизитыОтключенныеПоФО(ЭтоРеквизитыХарактеристик = Ложь) Экспорт + + РеквизитыОтключенныеПоФО = Новый Массив; + ИспользоватьПродажуАгентскихУслуг = ПолучитьФункциональнуюОпцию("ИспользоватьПродажуАгентскихУслуг"); + ИспользоватьПартнеровИКонтрагентов = ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровИКонтрагентов"); + + Если Не ИспользоватьПродажуАгентскихУслуг Тогда + РеквизитыОтключенныеПоФО.Добавить("Принципал"); + РеквизитыОтключенныеПоФО.Добавить("Контрагент"); + ИначеЕсли Не ИспользоватьПартнеровИКонтрагентов Тогда + РеквизитыОтключенныеПоФО.Добавить("Контрагент"); + КонецЕсли; + + Если ЭтоРеквизитыХарактеристик Тогда + Возврат РеквизитыОтключенныеПоФО; + КонецЕсли; + + ВыводитьКачество = ПолучитьФункциональнуюОпцию("ИспользоватьКачествоТоваров"); + ИспользоватьКонтрольКачестваТоваров = ПолучитьФункциональнуюОпцию("ИспользоватьКонтрольКачестваТоваров"); + ИспользоватьАдресноеХранение = ПолучитьФункциональнуюОпцию("ИспользоватьАдресноеХранение", Новый Структура); + ВыводитьЦеновуюГруппу = ПолучитьФункциональнуюОпцию("ИспользоватьЦеновыеГруппы"); + ВыводитьГруппуФинУчета = ПолучитьФункциональнуюОпцию("ИспользоватьГруппыФинансовогоУчета"); + ВыводитьАссортимент = ПолучитьФункциональнуюОпцию("ИспользоватьТоварныеКатегории"); + ВыводитьМногооборотнуюТару = ПолучитьФункциональнуюОпцию("ИспользоватьМногооборотнуюТару"); + ИспользоватьХарактеристики = ПолучитьФункциональнуюОпцию("ИспользоватьХарактеристикиНоменклатуры"); + ИспользоватьЕдиницыДляОтчетов = ПолучитьФункциональнуюОпцию("ИспользоватьЕдиницыИзмеренияДляОтчетов"); + ИспользоватьСезонныеКоэффициенты = ПолучитьФункциональнуюОпцию("ИспользоватьСезонныеКоэффициенты"); + ИспользоватьУправлениеКоллекциями = ПолучитьФункциональнуюОпцию("ИспользоватьУправлениеКоллекциями"); + ИспользоватьРейтингиПродажНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьРейтингиПродажНоменклатуры"); + ИспользоватьОбособленноеОбеспечениеЗаказов = ПолучитьФункциональнуюОпцию("ИспользоватьОбособленноеОбеспечениеЗаказов"); + ИспользоватьСертификатыНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьСертификатыНоменклатуры"); + ИспользоватьСпособыОбеспечения = ПолучитьФункциональнуюОпцию("ИспользоватьРасширенноеОбеспечениеПотребностей"); + ИспользоватьУпаковкиНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьУпаковкиНоменклатуры"); + ИспользоватьГруппыАналитическогоУчетаНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьГруппыАналитическогоУчетаНоменклатуры"); + ИспользоватьГруппыДоступаНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьГруппыДоступаНоменклатуры"); + ИспользоватьУчетНДС = ПолучитьФункциональнуюОпцию("ИспользоватьУчетНДС"); + ИспользоватьИмпортныеТовары = ПолучитьФункциональнуюОпцию("ИспользоватьИмпортныеТовары"); + + Если Не ВыводитьКачество Тогда + РеквизитыОтключенныеПоФО.Добавить("Качество"); + КонецЕсли; + + Если Не ИспользоватьАдресноеХранение Тогда + РеквизитыОтключенныеПоФО.Добавить("СкладскаяГруппа"); + КонецЕсли; + + Если Не ВыводитьЦеновуюГруппу Тогда + РеквизитыОтключенныеПоФО.Добавить("ЦеноваяГруппа"); + КонецЕсли; + + Если Не ВыводитьГруппуФинУчета Тогда + РеквизитыОтключенныеПоФО.Добавить("ГруппаФинансовогоУчета"); + КонецЕсли; + + Если Не ИспользоватьГруппыАналитическогоУчетаНоменклатуры Тогда + РеквизитыОтключенныеПоФО.Добавить("ГруппаАналитическогоУчета"); + КонецЕсли; + + Если Не ВыводитьАссортимент Тогда + РеквизитыОтключенныеПоФО.Добавить("ТоварнаяКатегория"); + КонецЕсли; + + Если Не ВыводитьМногооборотнуюТару Тогда + РеквизитыОтключенныеПоФО.Добавить("ПоставляетсяВМногооборотнойТаре"); + РеквизитыОтключенныеПоФО.Добавить("НоменклатураМногооборотнаяТара"); + РеквизитыОтключенныеПоФО.Добавить("ХарактеристикаМногооборотнаяТара"); + ИначеЕсли Не ИспользоватьХарактеристики Тогда + РеквизитыОтключенныеПоФО.Добавить("ХарактеристикаМногооборотнаяТара"); + КонецЕсли; + + Если Не ИспользоватьХарактеристики Тогда + РеквизитыОтключенныеПоФО.Добавить("ИспользованиеХарактеристик"); + КонецЕсли; + + Если Не ИспользоватьЕдиницыДляОтчетов Тогда + РеквизитыОтключенныеПоФО.Добавить("ЕдиницаДляОтчетов"); + КонецЕсли; + + Если Не ИспользоватьСезонныеКоэффициенты Тогда + РеквизитыОтключенныеПоФО.Добавить("СезоннаяГруппа"); + КонецЕсли; + + Если Не ИспользоватьУправлениеКоллекциями Тогда + РеквизитыОтключенныеПоФО.Добавить("КоллекцияНоменклатуры"); + КонецЕсли; + + Если Не ИспользоватьРейтингиПродажНоменклатуры Тогда + РеквизитыОтключенныеПоФО.Добавить("РейтингПродаж"); + КонецЕсли; + + Если Не ИспользоватьОбособленноеОбеспечениеЗаказов Тогда + РеквизитыОтключенныеПоФО.Добавить("ОбособленнаяЗакупкаПродажа"); + КонецЕсли; + + Если Не ИспользоватьСертификатыНоменклатуры Тогда + РеквизитыОтключенныеПоФО.Добавить("ВестиУчетСертификатовНоменклатуры"); + КонецЕсли; + + Если Не ИспользоватьСпособыОбеспечения Тогда + РеквизитыОтключенныеПоФО.Добавить("СхемаОбеспечения"); + РеквизитыОтключенныеПоФО.Добавить("СпособОбеспеченияПотребностей"); + КонецЕсли; + + Если Не ИспользоватьКонтрольКачестваТоваров Тогда + РеквизитыОтключенныеПоФО.Добавить("КонтролироватьКачествоПоступившегоТовара"); + РеквизитыОтключенныеПоФО.Добавить("СрокКонтроляКачества"); + КонецЕсли; + + Если Не ИспользоватьУпаковкиНоменклатуры Тогда + РеквизитыОтключенныеПоФО.Добавить("ИспользоватьУпаковки"); + КонецЕсли; + + Если Не ИспользоватьГруппыДоступаНоменклатуры Тогда + РеквизитыОтключенныеПоФО.Добавить("ГруппаДоступа"); + КонецЕсли; + + Если Не ИспользоватьУчетНДС Тогда + РеквизитыОтключенныеПоФО.Добавить("СтавкаНДС"); + КонецЕсли; + + НоменклатураЛокализация.РеквизитыОтключенныеПоФО(РеквизитыОтключенныеПоФО); + + Возврат РеквизитыОтключенныеПоФО; + +КонецФункции + +// Возвращает имена реквизитов, которые всегда отображаются при создании новой номенклатуры. +// +// Возвращаемое значение: +// Массив - элементы - Строка - имена реквизитов. +// +Функция ОбязательноОтображаемыеПриСозданииРеквизиты(ТипНоменклатуры, ОсобенностьУчетаИлиКлючВидовПродукции) + + ОбязательноОтображаемыеПриСозданииРеквизиты = Новый Массив; + + ОбязательноОтображаемыеПриСозданииРеквизиты.Добавить("НаименованиеПолное"); + ОбязательноОтображаемыеПриСозданииРеквизиты.Добавить("СтранаПроисхождения"); + ОбязательноОтображаемыеПриСозданииРеквизиты.Добавить("СтавкаНДС"); + ОбязательноОтображаемыеПриСозданииРеквизиты.Добавить("КодТНВЭД"); + + Если ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Услуга + И ОсобенностьУчетаИлиКлючВидовПродукции <> Перечисления.ОсобенностиУчетаНоменклатуры.ОрганизациейПродавцом Тогда + + ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ОбязательноОтображаемыеПриСозданииРеквизиты, РеквизитыАгентскихУслуг()); + + КонецЕсли; + + НоменклатураЛокализация.ОбязательноОтображаемыеПриСозданииРеквизиты(ОбязательноОтображаемыеПриСозданииРеквизиты, + ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции); + + Возврат ОбязательноОтображаемыеПриСозданииРеквизиты; + +КонецФункции + +// Возвращает имена реквизитов, которые не отображаются в таблице настроек. +// +// Возвращаемое значение: +// Массив из Строка - имена реквизитов. +// +Функция НеотображаемыеВТаблицеНастроекРеквизиты() Экспорт + + НеотображаемыеВТаблицеНастроекРеквизиты = Новый Массив; + + ОбщегоНазначенияКлиентСервер.ДополнитьМассив(НеотображаемыеВТаблицеНастроекРеквизиты, РеквизитыПризнаковОсобенностейУчета(Метаданные.Справочники.Номенклатура)); + + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("КодДляПоиска"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ИспользоватьИндивидуальныйШаблонЦенника"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ИспользоватьИндивидуальныйШаблонЭтикетки"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ИспользоватьУпаковки"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("НаборУпаковок"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ТипНоменклатуры"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ЕстьТоварыДругогоКачества"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ИспользованиеХарактеристик"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("НоменклатураМногооборотнаяТара"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ХарактеристикаМногооборотнаяТара"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ОсобенностьУчета"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ЕдиницаИзмеренияТНВЭД"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ЕдиницаИзмеренияСрокаГодности"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("КоэффициентЕдиницыДляОтчетов"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ВладелецХарактеристик"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ВладелецСерий"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ВладелецТоварныхКатегорий"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ГруппаДоступа"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ВариантОформленияПродажи"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("СрокКонтроляКачества"); + + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ВесЕдиницаИзмерения"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ВесЗнаменатель"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ВесМожноУказыватьВДокументах"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ВесЧислитель"); + + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ОбъемЕдиницаИзмерения"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ОбъемЗнаменатель"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ОбъемМожноУказыватьВДокументах"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ОбъемЧислитель"); + + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ДлинаЕдиницаИзмерения"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ДлинаЗнаменатель"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ДлинаМожноУказыватьВДокументах"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ДлинаЧислитель"); + + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ПлощадьЕдиницаИзмерения"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ПлощадьЗнаменатель"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ПлощадьМожноУказыватьВДокументах"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("ПлощадьЧислитель"); + НеотображаемыеВТаблицеНастроекРеквизиты.Добавить("УдалитьПодакцизныйТовар"); + + НоменклатураЛокализация.НеотображаемыеВТаблицеНастроекРеквизиты(НеотображаемыеВТаблицеНастроекРеквизиты); + + Возврат НеотображаемыеВТаблицеНастроекРеквизиты; + +КонецФункции + +// Возвращает имена реквизитов, которые не используются для контроля уникальности. +// +// Возвращаемое значение: +// Массив из Строка - имена реквизитов. +// +Функция НеиспользуемыеДляКонтроляУникальностиРеквизиты() Экспорт + + НеиспользуемыеДляКонтроляУникальностиРеквизиты = Новый Массив; + + НеиспользуемыеДляКонтроляУникальностиРеквизиты.Добавить("НаименованиеПолное"); + НеиспользуемыеДляКонтроляУникальностиРеквизиты.Добавить("Описание"); + НеиспользуемыеДляКонтроляУникальностиРеквизиты.Добавить("ФайлКартинки"); + НеиспользуемыеДляКонтроляУникальностиРеквизиты.Добавить("ШаблонЦенника"); + НеиспользуемыеДляКонтроляУникальностиРеквизиты.Добавить("ШаблонЭтикетки"); + НеиспользуемыеДляКонтроляУникальностиРеквизиты.Добавить("ФайлОписанияДляСайта"); + НеиспользуемыеДляКонтроляУникальностиРеквизиты.Добавить("ИспользоватьИндивидуальныйШаблонЦенника"); + НеиспользуемыеДляКонтроляУникальностиРеквизиты.Добавить("ИспользоватьИндивидуальныйШаблонЭтикетки"); + НеиспользуемыеДляКонтроляУникальностиРеквизиты.Добавить("СрокГодности"); + НеиспользуемыеДляКонтроляУникальностиРеквизиты.Добавить("ОбособленнаяЗакупкаПродажа"); + + НеиспользуемыеДляКонтроляУникальностиРеквизиты.Добавить("ВесИспользовать"); + НеиспользуемыеДляКонтроляУникальностиРеквизиты.Добавить("ОбъемИспользовать"); + НеиспользуемыеДляКонтроляУникальностиРеквизиты.Добавить("ПлощадьИспользовать"); + НеиспользуемыеДляКонтроляУникальностиРеквизиты.Добавить("ДлинаИспользовать"); + + НоменклатураЛокализация.НеиспользуемыеДляКонтроляУникальностиРеквизиты(НеиспользуемыеДляКонтроляУникальностиРеквизиты); + + Возврат НеиспользуемыеДляКонтроляУникальностиРеквизиты; + +КонецФункции + +// Возвращает типы значений. Реквизиты данных типов не проверяются на заполненность. +// +// Возвращаемое значение: +// Массив Из ОписаниеТипов - коллекция типов. +// +Функция НеиспользуемыеДляКонтроляЗаполненияИОтборовТипы() Экспорт + + НеиспользуемыеДляКонтроляЗаполненияИОтборовТипы = Новый Массив; + + НеиспользуемыеДляКонтроляЗаполненияИОтборовТипы.Добавить(Новый ОписаниеТипов("СправочникСсылка.НоменклатураПрисоединенныеФайлы")); + НеиспользуемыеДляКонтроляЗаполненияИОтборовТипы.Добавить(Новый ОписаниеТипов("СправочникСсылка.Файлы")); + НеиспользуемыеДляКонтроляЗаполненияИОтборовТипы.Добавить(Новый ОписаниеТипов("ХранилищеЗначения")); + НеиспользуемыеДляКонтроляЗаполненияИОтборовТипы.Добавить(Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(0))); + + НоменклатураЛокализация.НеиспользуемыеДляКонтроляЗаполненияИОтборовТипы(НеиспользуемыеДляКонтроляЗаполненияИОтборовТипы); + + Возврат НеиспользуемыеДляКонтроляЗаполненияИОтборовТипы; + +КонецФункции + +// Возвращает описание действий с реквизитами номенклатуры в форме номенклатуры в зависимости от типа номенклатуры. +// +// Параметры: +// ТипНоменклатуры - ПеречислениеСсылка.ТипыНоменклатуры - тип номенклатуры. +// ОсобенностьУчетаИлиКлючВидовПродукции - ПеречислениеСсылка.ОсобенностиУчетаНоменклатуры, +// СправочникСсылка.КлючиВидовПродукцииИС - особенность учета номенклатуры. +// ИспользованиеХарактеристик - ПеречислениеСсылка.ВариантыИспользованияХарактеристикНоменклатуры, Булево - вариант +// использования номенклатуры или признак использования характеристик. +// ИспользоватьСрокГодностиСерии - Булево - признак использования срока годности в сериях номенклатуры. +// ЭтоРеквизитыХарактеристик - Булево - признак принадлежности реквизитов справочнику ХарактеристикиНоменклатуры. +// +// Возвращаемое значение: +// ТаблицаЗначений - с колонками: +// * Реквизит - ОбъектМетаданныхРеквизит - реквизит справочника Номенклатура +// * ДействиеСРеквизитом - Строка - действие. +// +Функция ЗависимостьРеквизитовОтТипаНоменклатуры(ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции, + ИспользованиеХарактеристик, + ИспользоватьСрокГодностиСерии, + ЭтоРеквизитыХарактеристик) Экспорт + + Если ТипЗнч(ИспользованиеХарактеристик) = Тип("ПеречислениеСсылка.ВариантыИспользованияХарактеристикНоменклатуры") Тогда + ИспользоватьХарактеристики = ИспользованиеХарактеристик <> Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать; + Иначе + ИспользоватьХарактеристики = ИспользованиеХарактеристик; + КонецЕсли; + + ЭтоТовар = (ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар); + ЭтоНабор = (ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Набор); + ЭтоУслуга = (ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Услуга); + ЭтоРабота = (ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Работа); + ЭтоМногооборотнаяТара = (ТипНоменклатуры = Перечисления.ТипыНоменклатуры.МногооборотнаяТара); + + // Сформировать таблицу реквизитов для заполнения. + + ТаблицаРеквизитов = Новый ТаблицаЗначений; + ТаблицаРеквизитов.Колонки.Добавить("Реквизит"); + ТаблицаРеквизитов.Колонки.Добавить("Использование"); + + Если ЭтоРеквизитыХарактеристик Тогда + Реквизиты = Метаданные.Справочники.ХарактеристикиНоменклатуры.Реквизиты; + Иначе + Реквизиты = Метаданные.Справочники.Номенклатура.Реквизиты; + КонецЕсли; + + // Реквизиты, которые должны быть в номенклатуре только тогда, когда не используются характеристики. + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.Принципал; + НоваяСтрока.Использование = (ЭтоУслуга + Или ЭтоРабота) + И (ОсобенностьУчетаИлиКлючВидовПродукции = Перечисления.ОсобенностиУчетаНоменклатуры.ОрганизациейПоАгентскойСхеме + Или ОсобенностьУчетаИлиКлючВидовПродукции = Перечисления.ОсобенностиУчетаНоменклатуры.Партнером) + И (Не ИспользоватьХарактеристики + Или ЭтоРеквизитыХарактеристик); + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.Контрагент; + НоваяСтрока.Использование = (ЭтоУслуга + Или ЭтоРабота) + И ОсобенностьУчетаИлиКлючВидовПродукции = Перечисления.ОсобенностиУчетаНоменклатуры.Партнером + И (Не ИспользоватьХарактеристики + Или ЭтоРеквизитыХарактеристик); + + Если ЭтоРеквизитыХарактеристик Тогда + НоменклатураЛокализация.ЗависимостьРеквизитовОтТипаНоменклатуры(ТаблицаРеквизитов, + ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции, + ИспользованиеХарактеристик, + Истина); + ТаблицаРеквизитов.Индексы.Добавить("Реквизит"); + Возврат ТаблицаРеквизитов; + КонецЕсли; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.ВариантОформленияПродажи; + НоваяСтрока.Использование = (ПолучитьФункциональнуюОпцию("ИспользоватьАктыНаПередачуПрав") + И ЭтоТовар) + Или ЭтоРабота + Или ЭтоУслуга; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.СкладскаяГруппа; + НоваяСтрока.Использование = ЭтоТовар + Или ЭтоМногооборотнаяТара; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.Качество; + НоваяСтрока.Использование = ЭтоТовар + Или ЭтоМногооборотнаяТара; + + ЗависимостьРеквизитаМерыОтТипаНоменклатуры(ТаблицаРеквизитов, Реквизиты, ТипНоменклатуры, "Вес"); + ЗависимостьРеквизитаМерыОтТипаНоменклатуры(ТаблицаРеквизитов, Реквизиты, ТипНоменклатуры, "Объем"); + ЗависимостьРеквизитаМерыОтТипаНоменклатуры(ТаблицаРеквизитов, Реквизиты, ТипНоменклатуры, "Площадь"); + ЗависимостьРеквизитаМерыОтТипаНоменклатуры(ТаблицаРеквизитов, Реквизиты, ТипНоменклатуры, "Длина"); + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.ИспользоватьУпаковки; + НоваяСтрока.Использование = ЭтоТовар; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.НаборУпаковок; + НоваяСтрока.Использование = ЭтоТовар; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.ОбособленнаяЗакупкаПродажа; + НоваяСтрока.Использование = ЭтоТовар + Или ЭтоРабота; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.ПоставляетсяВМногооборотнойТаре; + НоваяСтрока.Использование = ЭтоТовар; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.НоменклатураМногооборотнаяТара; + НоваяСтрока.Использование = ЭтоТовар; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.ХарактеристикаМногооборотнаяТара; + НоваяСтрока.Использование = ЭтоТовар; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.ЕдиницаИзмерения; + НоваяСтрока.Использование = Истина; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.СрокГодности; + НоваяСтрока.Использование = (ЭтоТовар + Или ЭтоМногооборотнаяТара) + И ИспользоватьСрокГодностиСерии; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.ЕдиницаИзмеренияСрокаГодности; + НоваяСтрока.Использование = (ЭтоТовар + Или ЭтоМногооборотнаяТара) + И ИспользоватьСрокГодностиСерии; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.ГруппаФинансовогоУчета; + НоваяСтрока.Использование = Не ЭтоНабор; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.ВестиУчетСертификатовНоменклатуры; + НоваяСтрока.Использование = ЭтоТовар; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.СхемаОбеспечения; + НоваяСтрока.Использование = ЭтоТовар + Или ЭтоМногооборотнаяТара; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.СпособОбеспеченияПотребностей; + НоваяСтрока.Использование = ЭтоРабота; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.КонтролироватьКачествоПоступившегоТовара; + НоваяСтрока.Использование = ЭтоТовар + Или ЭтоМногооборотнаяТара; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.СрокКонтроляКачества; + НоваяСтрока.Использование = ЭтоТовар + Или ЭтоМногооборотнаяТара; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.КодТНВЭД; + НоваяСтрока.Использование = Не (ЭтоРабота + Или ЭтоУслуга); + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты.СтранаПроисхождения; + НоваяСтрока.Использование = ЭтоТовар + Или ЭтоМногооборотнаяТара; + + НоменклатураЛокализация.ЗависимостьРеквизитовОтТипаНоменклатуры(ТаблицаРеквизитов, + ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции, + ИспользованиеХарактеристик, + Ложь); + + ТаблицаРеквизитов.Индексы.Добавить("Реквизит"); + + Возврат ТаблицаРеквизитов; + +КонецФункции + +// Функция - Значение свойств реквизита +// +// Возвращаемое значение: +// Структура - содержит следующие свйоства: +// * Имя - Строка - имя реквизита. +// * Представление - Строка - представление реквизита. +// * Тип - ОписаниеТипов - тип реквизита. +// * ОбязательныйДляЗаполнения - Булево - признак обязательности заполнения реквизита. +// * ОбязательныйДляОтображенияПриСоздании - Булево - признак обязательности отоюражения реквизита при создании элемента справочника. +// * РекомендуемыйДляКонтроляУникальности - Булево - признак необходимости участия реквизита в проверке контроля уникальности элемента справочника. +// * Использование - Булево - признак использования реквизита. +// +Функция ЗначениеСвойствРеквизита() Экспорт + + Результат = Новый Структура; + Результат.Вставить("Имя"); + Результат.Вставить("Представление"); + Результат.Вставить("Тип"); + Результат.Вставить("Использование"); + Результат.Вставить("ОбязательныйДляЗаполнения"); + Результат.Вставить("ОбязательныйДляОтображенияПриСоздании", Ложь); + Результат.Вставить("РекомендуемыйДляКонтроляУникальности", Ложь); + + Возврат Результат; + +КонецФункции + +// Для вызова в методе ЗначениеНастроекПовтИсп.ВсеРеквизитыНоменклатуры +// Возвращает свойства реквизитов номенклатуры с учетом настроек сделанных +// в метаданных и доопределенных в модулях менеджера номенклатуры. +// +// Параметры: +// ТипНоменклатуры - ПеречислениеСсылка.ТипыНоменклатуры - тип номенклатуры. +// ОсобенностьУчетаИлиКлючВидовПродукции - ПеречислениеСсылка.ОсобенностиУчетаНоменклатуры, +// СправочникСсылка.КлючиВидовПродукцииИС - особенность учета номенклатуры. +// ИспользованиеХарактеристик - ПеречислениеСсылка.ВариантыИспользованияХарактеристикНоменклатуры, Булево - вариант +// использования номенклатуры или признак использования характеристик. +// ИспользоватьСрокГодностиСерии - Булево - признак использования срока годности в сериях номенклатуры. +// +// Возвращаемое значение: +// ФиксированнаяСтруктура - содержит: +// * Ключ - Строка - имя реквизита. +// * Значение - см. ЗначениеСвойствРеквизита. +// +Функция ВсеРеквизиты(ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции, + ИспользованиеХарактеристик, + ИспользоватьСрокГодностиСерии) Экспорт + + ЭтоТовар = (ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар); + ЭтоМногооборотнаяТара = (ТипНоменклатуры = Перечисления.ТипыНоменклатуры.МногооборотнаяТара); + + ОбязательноОтображаемыеПриСозданииРеквизиты = ОбязательноОтображаемыеПриСозданииРеквизиты(ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции); + РекомендуемыеДляКонтроляУникальностиРеквизиты = РекомендуемыеДляКонтроляУникальностиРеквизиты(ТипНоменклатуры, ОсобенностьУчетаИлиКлючВидовПродукции); + + НастройкиРеквизитовПоТипу = ЗависимостьРеквизитовОтТипаНоменклатуры(ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции, + ИспользованиеХарактеристик, + ИспользоватьСрокГодностиСерии, + Ложь); + + РеквизитыОтключенныеПоФО = РеквизитыОтключенныеПоФО(); + РеквизитыСПереопределеннойОбязательностьюЗаполнения = РеквизитыСПереопределеннойОбязательностьюЗаполнения(ТипНоменклатуры, ОсобенностьУчетаИлиКлючВидовПродукции, Неопределено); + + ВсеРеквизиты = Новый Структура; + + Для Каждого Реквизит Из Метаданные.Справочники.Номенклатура.Реквизиты Цикл + + ЗначениеСвойств = ЗначениеСвойствРеквизита(); + + ЗначениеСвойств.Имя = Реквизит.Имя; + ПредставлениеРеквизита = ""; + + СтрокаНастройки = НастройкиРеквизитовПоТипу.Найти(Реквизит, "Реквизит"); + + Если СтрокаНастройки = Неопределено Тогда + ЗначениеСвойств.Использование = РеквизитыОтключенныеПоФО.Найти(Реквизит.Имя) = Неопределено; + Иначе + ЗначениеСвойств.Использование = СтрокаНастройки.Использование + И РеквизитыОтключенныеПоФО.Найти(Реквизит.Имя) = Неопределено; + КонецЕсли; + + Если Реквизит.Имя = "ЕдиницаИзмерения" Тогда + Если ЭтоТовар + Или ЭтоМногооборотнаяТара Тогда + ПредставлениеРеквизита = НСтр("ru = 'Единица хранения'"); + Иначе + ПредставлениеРеквизита = НСтр("ru = 'Единица измерения'"); + КонецЕсли; + Иначе + ПредставлениеРеквизита = Реквизит.Синоним; + Если Не ЗначениеЗаполнено(ПредставлениеРеквизита) Тогда + ПредставлениеРеквизита = Реквизит.Имя; + КонецЕсли; + КонецЕсли; + + ЗначениеСвойств.Представление = ПредставлениеРеквизита; + + ОбязательныйДляЗаполнения = РеквизитыСПереопределеннойОбязательностьюЗаполнения.Получить(Реквизит.Имя); + + Если ОбязательныйДляЗаполнения = Неопределено Тогда + ОбязательныйДляЗаполнения = (Реквизит.ПроверкаЗаполнения = ПроверкаЗаполнения.ВыдаватьОшибку); + КонецЕсли; + + ЗначениеСвойств.ОбязательныйДляЗаполнения = ЗначениеСвойств.Использование + И ОбязательныйДляЗаполнения; + ЗначениеСвойств.Тип = Реквизит.Тип; + + ЗначениеСвойств.ОбязательныйДляОтображенияПриСоздании = ЗначениеСвойств.Использование + И (ОбязательноОтображаемыеПриСозданииРеквизиты.Найти(Реквизит.Имя) <> Неопределено + Или ЗначениеСвойств.ОбязательныйДляЗаполнения); + ЗначениеСвойств.РекомендуемыйДляКонтроляУникальности = ЗначениеСвойств.Использование + И РекомендуемыеДляКонтроляУникальностиРеквизиты.Найти(Реквизит.Имя) <> Неопределено; + + ВсеРеквизиты.Вставить(Реквизит.Имя, Новый ФиксированнаяСтруктура(ЗначениеСвойств)); + КонецЦикла; + + ДополнитьВсеРеквизитыРеквизитамиФормы(ВсеРеквизиты); + + Возврат Новый ФиксированнаяСтруктура(ВсеРеквизиты); + +КонецФункции + +// Параметры: +// Форма - ФормаКлиентскогоПриложения - +// +Процедура НастроитьФормуПоТаблицеНастроек(Форма) Экспорт + + СтруктураПоиска = Новый Структура("Свойство"); + ЕстьОписаниеДопРеквизитов = ПолучитьФункциональнуюОпцию("ИспользоватьДополнительныеРеквизитыИСведения") + И ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Форма, "Свойства_ОписаниеДополнительныхРеквизитов"); + ИспользоватьНеуникальныеШтрихкодыНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьНеуникальныеШтрихкодыНоменклатуры"); + + Для Каждого СтрокаТаблицыРеквизитов Из Форма.ТаблицаНастроекРеквизитов Цикл + + Если СтрокаТаблицыРеквизитов.ЭтоДопРеквизит Тогда + + Если Не ЕстьОписаниеДопРеквизитов Тогда + Продолжить; + КонецЕсли; + + СтруктураПоиска.Свойство = СтрокаТаблицыРеквизитов.Свойство; + НайденныеСтроки = Форма.Свойства_ОписаниеДополнительныхРеквизитов.НайтиСтроки(СтруктураПоиска); + + Если НайденныеСтроки.Количество() = 0 Тогда + Продолжить; + КонецЕсли; + + ИмяЭлементаФормы = НайденныеСтроки[0].ИмяРеквизитаЗначение; + + Иначе + + ИмяЭлементаФормы = СтрокаТаблицыРеквизитов.ИмяРеквизита; + + КонецЕсли; + + Если Форма.Элементы.Найти(ИмяЭлементаФормы) = Неопределено Тогда + Продолжить; + КонецЕсли; + + СтрокаТаблицыРеквизитов.ПутьКДанным = ИмяЭлементаФормы; + + Элемент = Форма.Элементы[ИмяЭлементаФормы]; + + Если Элемент.Вид = ВидПоляФормы.ПолеВвода Тогда + Форма.Элементы[ИмяЭлементаФормы].АвтоОтметкаНезаполненного = СтрокаТаблицыРеквизитов.ЗаполнятьОбязательно; + + Если Не СтрокаТаблицыРеквизитов.ЗаполнятьОбязательно + И Форма.Элементы[ИмяЭлементаФормы].ОтметкаНезаполненного Тогда + + Форма.Элементы[ИмяЭлементаФормы].ОтметкаНезаполненного = Ложь; + + КонецЕсли; + КонецЕсли; + + Если СтрокаТаблицыРеквизитов.Уникален + Или (ИмяЭлементаФормы = "Штрихкод" + И Не ИспользоватьНеуникальныеШтрихкодыНоменклатуры) Тогда + + Элемент.ЦветФона = ЦветаСтиля.ЦветФонаВыделения; + + ИначеЕсли Элемент.Вид = ВидПоляФормы.ПолеВвода Тогда + Элемент.ЦветФона = Новый Цвет; + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +Функция РеквизитыСПереопределеннойОбязательностьюЗаполнения(ТипНоменклатуры, ОсобенностьУчетаИлиКлючВидовПродукции, Объект) Экспорт + + РеквизитыСПереопределеннойОбязательностьюЗаполнения = Новый Соответствие; + + ЗапрашиваемыеРеквизитыВидаНоменклатуры = "ШаблонРабочегоНаименованияНоменклатуры, ИспользоватьСрокГодностиСерии, + |ИспользованиеХарактеристик"; + + Если Объект = Неопределено Тогда + РеквизитыВидаНоменклатуры = ОбщегоНазначенияУТ.ЗначенияРеквизитовОбъектаПоУмолчанию(Справочники.ВидыНоменклатуры.ПустаяСсылка(), + ЗапрашиваемыеРеквизитыВидаНоменклатуры); + Иначе + РеквизитыВидаНоменклатуры = ОбщегоНазначенияУТ.ЗначенияРеквизитовОбъектаПоУмолчанию(Объект.ВидНоменклатуры, + ЗапрашиваемыеРеквизитыВидаНоменклатуры); + КонецЕсли; + + Если Объект = Неопределено Тогда + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить("Наименование", Истина); + Иначе + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить("Наименование", Не ЗначениеЗаполнено(РеквизитыВидаНоменклатуры.ШаблонРабочегоНаименованияНоменклатуры)); + КонецЕсли; + + Если Объект = Неопределено Тогда + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить("ШаблонЦенника", Ложь); + Иначе + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить("ШаблонЦенника", Объект.ИспользоватьИндивидуальныйШаблонЦенника); + КонецЕсли; + + Если Объект = Неопределено Тогда + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить("ШаблонЭтикетки", Ложь); + Иначе + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить("ШаблонЭтикетки", Объект.ИспользоватьИндивидуальныйШаблонЭтикетки); + КонецЕсли; + + Если Объект = Неопределено Тогда + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить("НаборУпаковок", Ложь); + Иначе + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить("НаборУпаковок", Объект.ИспользоватьУпаковки); + КонецЕсли; + + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить("ГруппаДоступа", Справочники.ГруппыДоступаНоменклатуры.ИспользуютсяГруппыДоступа()); + + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить("ЕдиницаИзмерения", ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар + Или ТипНоменклатуры = Перечисления.ТипыНоменклатуры.МногооборотнаяТара + Или ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Набор); + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить("Принципал", ОсобенностьУчетаИлиКлючВидовПродукции = Перечисления.ОсобенностиУчетаНоменклатуры.ОрганизациейПоАгентскойСхеме + Или ОсобенностьУчетаИлиКлючВидовПродукции = Перечисления.ОсобенностиУчетаНоменклатуры.Партнером); + + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить("Контрагент", ОсобенностьУчетаИлиКлючВидовПродукции = Перечисления.ОсобенностиУчетаНоменклатуры.Партнером); + + Если Объект = Неопределено Тогда + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить("НоменклатураМногооборотнаяТара", Ложь); + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить("ХарактеристикаМногооборотнаяТара", Ложь); + Иначе + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить("НоменклатураМногооборотнаяТара", Объект.ПоставляетсяВМногооборотнойТаре); + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить("ХарактеристикаМногооборотнаяТара", + Объект.ПоставляетсяВМногооборотнойТаре + И Справочники.Номенклатура.ХарактеристикиИспользуются(Объект.НоменклатураМногооборотнаяТара)); + КонецЕсли; + + Если Объект = Неопределено Тогда + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить("ЕдиницаИзмеренияСрокаГодности", Ложь); + Иначе + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить("ЕдиницаИзмеренияСрокаГодности", РеквизитыВидаНоменклатуры.ИспользоватьСрокГодностиСерии); + КонецЕсли; + + ПереопределитьОбязательностьЗаполненияРеквизитовМеры(Объект, РеквизитыСПереопределеннойОбязательностьюЗаполнения, "Вес"); + ПереопределитьОбязательностьЗаполненияРеквизитовМеры(Объект, РеквизитыСПереопределеннойОбязательностьюЗаполнения, "Объем"); + ПереопределитьОбязательностьЗаполненияРеквизитовМеры(Объект, РеквизитыСПереопределеннойОбязательностьюЗаполнения, "Площадь"); + ПереопределитьОбязательностьЗаполненияРеквизитовМеры(Объект, РеквизитыСПереопределеннойОбязательностьюЗаполнения, "Длина"); + + НоменклатураЛокализация.РеквизитыСПереопределеннойОбязательностьюЗаполнения( + РеквизитыСПереопределеннойОбязательностьюЗаполнения, ТипНоменклатуры, ОсобенностьУчетаИлиКлючВидовПродукции, Объект); + + Если Объект <> Неопределено Тогда + + ИзменяемыеРеквизиты = Новый Массив; + ТаблицаНастроекРеквизитов = ЗависимостьРеквизитовОтТипаНоменклатуры(ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции, + РеквизитыВидаНоменклатуры.ИспользованиеХарактеристик, + РеквизитыВидаНоменклатуры.ИспользоватьСрокГодностиСерии, + Ложь); + + Для Каждого Реквизит из РеквизитыСПереопределеннойОбязательностьюЗаполнения Цикл + + Если Реквизит.Значение Тогда + Если Реквизит.Ключ = "Наименование" Тогда + Продолжить; + КонецЕсли; + + МетаданныеРеквизита = Метаданные.Справочники.Номенклатура.Реквизиты.Найти(Реквизит.Ключ); + НастройкаРеквизита = ТаблицаНастроекРеквизитов.Найти(МетаданныеРеквизита); + + Если ЗначениеЗаполнено(НастройкаРеквизита) + И Не НастройкаРеквизита.Использование Тогда + + ИзменяемыеРеквизиты.Добавить(Реквизит.Ключ); + + КонецЕсли; + КонецЕсли; + + КонецЦикла; + + Для Каждого ИмяРеквизита Из ИзменяемыеРеквизиты Цикл + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить(ИмяРеквизита, Ложь); + КонецЦикла; + + КонецЕсли; + + Возврат РеквизитыСПереопределеннойОбязательностьюЗаполнения; + +КонецФункции + +Функция РекомендуемыеДляКонтроляУникальностиРеквизиты(ТипНоменклатуры, ОсобенностьУчетаИлиКлючВидовПродукции) + + РекомендуемыеДляКонтроляУникальностиРеквизиты = Новый Массив; + + НоменклатураЛокализация.РекомендуемыеДляКонтроляУникальностиРеквизиты( + РекомендуемыеДляКонтроляУникальностиРеквизиты, ТипНоменклатуры, ОсобенностьУчетаИлиКлючВидовПродукции); + + Возврат РекомендуемыеДляКонтроляУникальностиРеквизиты; + +КонецФункции + +// Параметры: +// Форма - ФормаКлиентскогоПриложения - содержит в том числе: +// * Объект - СправочникОбъект.Номенклатура - +// +Процедура ПроверитьУникальностьЭлементаПоРеквизитам(Форма) Экспорт + + Форма.ТаблицаНайдено.Очистить(); + + ЭтоНоменклатура = ТипЗнч(Форма.Объект.Ссылка) = Тип("СправочникСсылка.Номенклатура"); + РеквизитыФормы = ?(ЭтоНоменклатура, РеквизитыФормыТаблицыНастроек(), Неопределено); + ОтборСтрок = Новый Структура("Уникален", Истина); + УникальныеРеквизиты = Форма.ТаблицаНастроекРеквизитов.НайтиСтроки(ОтборСтрок); + + Если РеквизитыФормы <> Неопределено Тогда + РеквизитыКонтроляУникальности = Новый Массив; + + Для Каждого РеквизитКонтроля Из УникальныеРеквизиты Цикл + Если РеквизитыФормы.Получить(РеквизитКонтроля.ИмяРеквизита) = Неопределено Тогда + РеквизитыКонтроляУникальности.Добавить(РеквизитКонтроля); + КонецЕсли; + КонецЦикла; + Иначе + РеквизитыКонтроляУникальности = УникальныеРеквизиты; + КонецЕсли; + + Если РеквизитыКонтроляУникальности.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + Запрос = Новый Запрос; + + ТекстЗапроса = + "ВЫБРАТЬ РАЗЛИЧНЫЕ + | ПроверяемыйСправочник.Ссылка КАК Ссылка, + | ИСТИНА КАК НайденоПоДопРеквизитам + |ИЗ + | Справочник.ИмяПроверяемогоСправочника КАК ПроверяемыйСправочник + | ,&ТекстЗапросаСоединенияСТЧДопРеквизитов + |ГДЕ + | &ТекстЗапросаУсловияПоРеквизитам"; + + ШаблонУсловияПоРеквизиту = + " + | ПроверяемыйСправочник.ИмяРеквизита = &ИмяРеквизита"; + + ШаблонУсловияПоДопРеквизиту = + " + | (УсловиеПоДопРеквизиту_СчетчикУсловий.Значение ЕСТЬ NULL + | И &ЗначениеПустое_СчетчикУсловий + | ИЛИ УсловиеПоДопРеквизиту_СчетчикУсловий.Свойство = &Свойство_СчетчикУсловий + | И УсловиеПоДопРеквизиту_СчетчикУсловий.Значение = &Значение_СчетчикУсловий)"; + + ШаблонТекстаСоединения = + " + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ИмяПроверяемогоСправочника.ДополнительныеРеквизиты КАК УсловиеПоДопРеквизиту_СчетчикУсловий + | ПО ПроверяемыйСправочник.Ссылка = УсловиеПоДопРеквизиту_СчетчикУсловий.Ссылка + | И УсловиеПоДопРеквизиту_СчетчикУсловий.Свойство = &Свойство_СчетчикУсловий"; + + СчетчикУсловий = 1; + ТекстыУсловий = Новый Массив; + + Если ЭтоНоменклатура Тогда + ТекстУсловия = + " + | НЕ ПроверяемыйСправочник.ЭтоГруппа + | И ПроверяемыйСправочник.ВидНоменклатуры В(&ВидыНоменклатуры)"; + ТекстыУсловий.Добавить(ТекстУсловия); + + Запрос.УстановитьПараметр("ВидыНоменклатуры", ВидыНоменклатурыИдентичныеПоНастройкамКонтроляУникальности(Форма.Объект)); + Иначе + ТекстУсловия = + " + | ПроверяемыйСправочник.Владелец = &Владелец"; + ТекстыУсловий.Добавить(ТекстУсловия); + + Запрос.УстановитьПараметр("Владелец", Форма.Объект.Владелец); + КонецЕсли; + + ТекстыСоединения = Новый Массив; + + Для Каждого СтрокаУсловия Из РеквизитыКонтроляУникальности Цикл + Если Не СтрокаУсловия.ЭтоДопРеквизит Тогда + ТекстУсловия = СтрЗаменить(ШаблонУсловияПоРеквизиту, "ИмяРеквизита", СтрокаУсловия.ИмяРеквизита); + ТекстыУсловий.Добавить(ТекстУсловия); + + Если ПустаяСтрока(СтрокаУсловия.ПутьКДанным) Тогда + ПутьКДанным = СтрокаУсловия.ИмяРеквизита; + Иначе + ПутьКДанным = СтрокаУсловия.ПутьКДанным; + КонецЕсли; + + Запрос.УстановитьПараметр(СтрокаУсловия.ИмяРеквизита, Форма.Объект[ПутьКДанным]); + Иначе + СчетчикУсловийСтрока = Формат(СчетчикУсловий,"ЧГ="); + + ТекстУсловия = ШаблонУсловияПоДопРеквизиту; + ТекстУсловия = СтрЗаменить(ТекстУсловия, "&Свойство_СчетчикУсловий", "&Свойство_" + СчетчикУсловийСтрока); + ТекстУсловия = СтрЗаменить(ТекстУсловия, "&Значение_СчетчикУсловий", "&Значение_" + СчетчикУсловийСтрока); + ТекстУсловия = СтрЗаменить(ТекстУсловия, "&ЗначениеПустое_СчетчикУсловий", "&ЗначениеПустое_" + СчетчикУсловийСтрока); + ТекстУсловия = СтрЗаменить(ТекстУсловия, "СчетчикУсловий", СчетчикУсловийСтрока); + ТекстыУсловий.Добавить(ТекстУсловия); + + Запрос.УстановитьПараметр("Свойство_" + СчетчикУсловий, СтрокаУсловия.Свойство); + Запрос.УстановитьПараметр("Значение_" + СчетчикУсловий, Форма[СтрокаУсловия.ПутьКДанным]); + Запрос.УстановитьПараметр("ЗначениеПустое_" + СчетчикУсловий, ?(ТипЗнч(Форма[СтрокаУсловия.ПутьКДанным]) = Тип("Булево") + И Не Форма[СтрокаУсловия.ПутьКДанным], + Истина, + Не ЗначениеЗаполнено(Форма[СтрокаУсловия.ПутьКДанным]))); + + ТекстСоединения = СтрЗаменить(ШаблонТекстаСоединения, "СчетчикУсловий", Формат(СчетчикУсловий,"ЧГ=")); + ТекстыСоединения.Добавить(ТекстСоединения); + + СчетчикУсловий = СчетчикУсловий + 1; + КонецЕсли; + КонецЦикла; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + ",&ТекстЗапросаСоединенияСТЧДопРеквизитов", + СтрСоединить(ТекстыСоединения)); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ТекстЗапросаУсловияПоРеквизитам", + СтрСоединить(ТекстыУсловий, Символы.ПС + "И" + Символы.НПП)); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "ИмяПроверяемогоСправочника", + ?(ЭтоНоменклатура, "Номенклатура", "ХарактеристикиНоменклатуры")); + + Запрос.Текст = ТекстЗапроса; + + Форма.ТаблицаНайдено.Загрузить(Запрос.Выполнить().Выгрузить()); + +КонецПроцедуры + +Функция ВидыНоменклатурыИдентичныеПоНастройкамКонтроляУникальности(Объект) + + ИдентичныеВидыНоменклатуры = Новый Массив; + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | РеквизитыДляКонтроля.ИмяРеквизита, + | РеквизитыДляКонтроля.ЭтоДопРеквизит, + | РеквизитыДляКонтроля.Свойство + |ИЗ + | Справочник.ВидыНоменклатуры.РеквизитыДляКонтроляНоменклатуры КАК РеквизитыДляКонтроля + |ГДЕ + | РеквизитыДляКонтроля.Уникален + | И РеквизитыДляКонтроля.Ссылка = &ВидНоменклатуры + | И НЕ (НЕ РеквизитыДляКонтроля.ЭтоДопРеквизит + | И РеквизитыДляКонтроля.ИмяРеквизита В (&ИсключаемыеРеквизиты)) + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | РеквизитыДляКонтроля.Ссылка КАК ВидНоменклатуры, + | РеквизитыДляКонтроля.ИмяРеквизита КАК ИмяРеквизита, + | РеквизитыДляКонтроля.ЭтоДопРеквизит КАК ЭтоДопРеквизит, + | РеквизитыДляКонтроля.Свойство КАК Свойство + |ИЗ + | Справочник.ВидыНоменклатуры.РеквизитыДляКонтроляНоменклатуры КАК РеквизитыДляКонтроля + |ГДЕ + | РеквизитыДляКонтроля.Уникален + | И РеквизитыДляКонтроля.Ссылка.ТипНоменклатуры = &ТипНоменклатуры + | И НЕ (НЕ РеквизитыДляКонтроля.ЭтоДопРеквизит + | И РеквизитыДляКонтроля.ИмяРеквизита В (&ИсключаемыеРеквизиты)) + | + |УПОРЯДОЧИТЬ ПО + | ВидНоменклатуры, + | ИмяРеквизита, + | ЭтоДопРеквизит, + | Свойство + | + |ИТОГИ ПО + | ВидНоменклатуры"; + + ИсключаемыеРеквизиты = Новый Массив; + ИсключаемыеРеквизиты.Добавить("ВидНоменклатуры"); + + РеквизитыФормы = РеквизитыФормыТаблицыНастроек(); + + Для Каждого КлючИЗначение Из РеквизитыФормы Цикл + ИсключаемыеРеквизиты.Добавить(КлючИЗначение.Ключ); + КонецЦикла; + + Запрос.УстановитьПараметр("ВидНоменклатуры", Объект.ВидНоменклатуры); + Запрос.УстановитьПараметр("ТипНоменклатуры", Объект.ТипНоменклатуры); + Запрос.УстановитьПараметр("ИсключаемыеРеквизиты", ИсключаемыеРеквизиты); + + РезультатыЗапроса = Запрос.ВыполнитьПакет(); + + ТаблицаРеквизитовТекВидаНоменклатуры = РезультатыЗапроса[0].Выгрузить(); + КолРеквизитовДляКонтроля = ТаблицаРеквизитовТекВидаНоменклатуры.Количество(); + + РеквизитыВидовНоменклатуры = РезультатыЗапроса[1]; // РезультатЗапроса + Отбор = Новый Структура("ИмяРеквизита, ЭтоДопРеквизит, Свойство"); + + ВыборкаПоВиду = РеквизитыВидовНоменклатуры.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); + + Пока ВыборкаПоВиду.Следующий() Цикл + СоответствуетУсловиям = Истина; + ВыборкаПоРеквизитам = ВыборкаПоВиду.Выбрать(); + КолРеквизитовВида = ВыборкаПоРеквизитам.Количество(); + + Если КолРеквизитовВида = 0 Тогда + Продолжить; + КонецЕсли; + + Если КолРеквизитовВида <> КолРеквизитовДляКонтроля Тогда + Продолжить; + КонецЕсли; + + Пока ВыборкаПоРеквизитам.Следующий() Цикл + ЗаполнитьЗначенияСвойств(Отбор, ВыборкаПоРеквизитам); + + Если ТаблицаРеквизитовТекВидаНоменклатуры.НайтиСтроки(Отбор).Количество() = 0 Тогда + СоответствуетУсловиям = Ложь; + КонецЕсли; + + Если Не СоответствуетУсловиям Тогда + Прервать; + КонецЕсли; + КонецЦикла; + + Если Не СоответствуетУсловиям Тогда + Продолжить; + КонецЕсли; + + ИдентичныеВидыНоменклатуры.Добавить(ВыборкаПоВиду.ВидНоменклатуры); + КонецЦикла; + + Возврат ИдентичныеВидыНоменклатуры; + +КонецФункции + +// Возвращает коллекция реквизитов формы справочника, используемых в настройках контроля. +// +// Возвращаемое значение: +// Соответствие Из КлючИЗначение - коллекция реквизитов формы справочника, где: +// * Ключ - Строка - имя реквизита. +// * Значение - Произвольный - значение реквизита по умолчанию. +// +Функция РеквизитыФормыТаблицыНастроек() Экспорт + + РеквизитыФормы = Новый Соответствие; + РеквизитыФормы.Вставить("Штрихкод", ""); + + Возврат РеквизитыФормы; + +КонецФункции + +#КонецОбласти + +#Область Прочее + +// Проверяет наличие прав у текущего пользователя на ввод информации по номенклатуре без контроля. +// +// Возвращаемое значение: +// Булево - наличие права ввода +// +Функция ДоступенВводБезКонтроля() Экспорт + + Возврат ПраваПользователяПовтИсп.ВводИнформацииПоНоменклатуреБезКонтроля(); + +КонецФункции + +// Проверяет уникальность наименования номенклатуры. +// +// Параметры: +// Объект - СправочникОбъект.Номенклатура - элемент справочника номенклатуры. +// +// Возвращаемое значение: +// Булево - признак уникальности наименования данного элемента справочника. +// +Функция РабочееНаименованиеУникально(Объект) Экспорт + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | Номенклатура.Ссылка КАК Номенклатура + |ИЗ + | Справочник.Номенклатура КАК Номенклатура + |ГДЕ + | Номенклатура.Ссылка <> &Ссылка + | И Номенклатура.Наименование = &Наименование + | И НЕ Номенклатура.ЭтоГруппа"; + + Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка); + Запрос.УстановитьПараметр("Наименование", Объект.Наименование); + + Возврат Запрос.Выполнить().Пустой(); + +КонецФункции + +Процедура ОтработатьЛогикуЗаполненияМеры(Номенклатура, МернаяЕдиницаХранения, ТипЕдиницы, Мера) Экспорт + + Если Мера <> "Вес" + И Мера <> "Длина" + И Мера <> "Площадь" + И Мера <> "Объем" Тогда + Возврат; + КонецЕсли; + + РеквизитыМеры = РеквизитыМеры(Мера); + + Если МернаяЕдиницаХранения + И ТипЕдиницы = Мера + И (Номенклатура.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар + Или Номенклатура.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.МногооборотнаяТара) Тогда + + Номенклатура[РеквизитыМеры.Использовать] = Истина; + Номенклатура[РеквизитыМеры.Знаменатель] = 1; + Номенклатура[РеквизитыМеры.Числитель] = 1; + Номенклатура[РеквизитыМеры.МожноУказыватьВДокументах] = Истина; + Номенклатура[РеквизитыМеры.ЕдиницаИзмерения] = Номенклатура.ЕдиницаИзмерения; + + КонецЕсли; + + Если Номенклатура.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Работа + Или Номенклатура.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Услуга + Или Номенклатура.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Набор + Или Номенклатура[РеквизитыМеры.Знаменатель] = 0 + Или Номенклатура[РеквизитыМеры.Числитель] = 0 + Или Не Номенклатура[РеквизитыМеры.Использовать] Тогда + + Номенклатура[РеквизитыМеры.ЕдиницаИзмерения] = Справочники.УпаковкиЕдиницыИзмерения.ПустаяСсылка(); + Номенклатура[РеквизитыМеры.Знаменатель] = 0; + Номенклатура[РеквизитыМеры.Числитель] = 0; + Номенклатура[РеквизитыМеры.МожноУказыватьВДокументах] = Ложь; + Номенклатура[РеквизитыМеры.Использовать] = Ложь; + Иначе + + Если Не ЗначениеЗаполнено(Номенклатура[РеквизитыМеры.ЕдиницаИзмерения]) Тогда + Номенклатура[РеквизитыМеры.ЕдиницаИзмерения] = НоменклатураСервер.ЕдиницаИзмеренияПоУмолчанию(Мера); + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +// Возвращает таблицу обязательных реквизитов. +// +// Параметры: +// ВидНоменклатуры - СправочникОбъект.ВидыНоменклатуры - элемент справочника виды номенклатуры. +// ТипНоменклатуры - ПеречислениеСсылка.ТипыНоменклатуры - тип номенклатуры. +// ОсобенностьУчетаИлиКлючВидовПродукции - ПеречислениеСсылка.ОсобенностиУчетаНоменклатуры, +// СправочникСсылка.КлючиВидовПродукцииИС - особенность учета номенклатуры. +// ИспользованиеХарактеристик - ПеречислениеСсылка.ВариантыИспользованияХарактеристикНоменклатуры, Булево - вариант +// использования номенклатуры или признак использования характеристик. +// ИспользоватьСрокГодностиСерии - Булево - признак использования срока годности в сериях номенклатуры. +// ВладелецРеквизитов - Строка - имя объекта владельца реквизитов. +// +// Возвращаемое значение: +// ТаблицаЗначений - таблица с обязательными для заполнения и выводимыми при создании реквизитами. +// +Функция ТаблицаНастроекРеквизитов(ВидНоменклатуры, + ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции, + ИспользованиеХарактеристик, + ИспользоватьСрокГодностиСерии, + ВладелецРеквизитов) Экспорт + + Запрос = Новый Запрос; + ТекстЗапроса = + "ВЫБРАТЬ + | ВсеРеквизитыНоменклатурыТаблица.Имя КАК Имя, + | ВсеРеквизитыНоменклатурыТаблица.Представление КАК Представление, + | ВсеРеквизитыНоменклатурыТаблица.ОбязательныйДляЗаполнения КАК ОбязательныйДляЗаполнения, + | ВсеРеквизитыНоменклатурыТаблица.ОбязательныйДляОтображенияПриСоздании КАК ОбязательныйДляОтображенияПриСоздании, + | ВсеРеквизитыНоменклатурыТаблица.Использование КАК Использование + |ПОМЕСТИТЬ ВсеРеквизитыНоменклатурыТаблица + |ИЗ + | &ВсеРеквизитыНоменклатурыТаблица КАК ВсеРеквизитыНоменклатурыТаблица + | + |ИНДЕКСИРОВАТЬ ПО + | Имя + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ВЫБОР + | КОГДА РеквизитыДляКонтроля.ЭтоДопРеквизит + | ТОГДА РеквизитыДляКонтроля.Свойство.Представление + | ИНАЧЕ РеквизитыДляКонтроля.ПредставлениеРеквизита + | КОНЕЦ КАК Представление, + | РеквизитыДляКонтроля.ЭтоДопРеквизит КАК ЭтоДопРеквизит, + | ВЫБОР + | КОГДА РеквизитыДляКонтроля.ЭтоДопРеквизит + | ТОГДА РеквизитыДляКонтроля.Свойство.Наименование + | ИНАЧЕ РеквизитыДляКонтроля.ИмяРеквизита + | КОНЕЦ КАК ИмяРеквизита, + | РеквизитыДляКонтроля.Свойство КАК Свойство, + | ВЫБОР + | КОГДА РеквизитыДляКонтроля.ЭтоДопРеквизит + | ТОГДА ЕСТЬNULL(ВТВсеДополнительныеРеквизиты.ЗаполнятьОбязательно, ЛОЖЬ) + | ИНАЧЕ РеквизитыДляКонтроля.ЗаполнятьОбязательно + | КОНЕЦ КАК ЗаполнятьОбязательно, + | РеквизитыДляКонтроля.Уникален КАК Уникален, + | ВЫБОР + | КОГДА ЕСТЬNULL(ВТВсеДополнительныеРеквизиты.ЗаполнятьОбязательно, ЛОЖЬ) + | ТОГДА ИСТИНА + | ИНАЧЕ РеквизитыДляКонтроля.ОтображатьПриСоздании + | КОНЕЦ КАК ОтображатьПриСоздании, + | РеквизитыДляКонтроля.ЭтоДопРеквизит КАК Использование, + | ЛОЖЬ КАК ЕстьРеквизитВМетаданных + |ПОМЕСТИТЬ РеквизитыДляКонтроляТаблица + |ИЗ + | #ИсточникРеквизитыДляКонтроля КАК РеквизитыДляКонтроля + | ЛЕВОЕ СОЕДИНЕНИЕ ВТВсеДополнительныеРеквизиты КАК ВТВсеДополнительныеРеквизиты + | ПО РеквизитыДляКонтроля.Свойство = ВТВсеДополнительныеРеквизиты.Свойство + |ГДЕ + | РеквизитыДляКонтроля.Ссылка = &ВидНоменклатуры + | И (РеквизитыДляКонтроля.ЭтоДопРеквизит + | И НЕ ВТВсеДополнительныеРеквизиты.Свойство ЕСТЬ NULL + | ИЛИ НЕ РеквизитыДляКонтроля.ЭтоДопРеквизит) + | + |ИНДЕКСИРОВАТЬ ПО + | ИмяРеквизита + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ВложенныйЗапрос.ЭтоДопРеквизит КАК ЭтоДопРеквизит, + | ВложенныйЗапрос.ИмяРеквизита КАК ИмяРеквизита, + | ВложенныйЗапрос.Свойство КАК Свойство, + | МАКСИМУМ(ВложенныйЗапрос.ЗаполнятьОбязательно) КАК ЗаполнятьОбязательно, + | МАКСИМУМ(ВложенныйЗапрос.Уникален) КАК Уникален, + | МАКСИМУМ(ВложенныйЗапрос.ОтображатьПриСоздании) КАК ОтображатьПриСоздании, + | МАКСИМУМ(ВложенныйЗапрос.Использование) КАК Использование, + | МАКСИМУМ(ВложенныйЗапрос.ЕстьРеквизитВМетаданных) КАК ЕстьРеквизитВМетаданных + |ПОМЕСТИТЬ ВТДляЗапроса + |ИЗ + | (ВЫБРАТЬ + | РеквизитыДляКонтроля.ЭтоДопРеквизит КАК ЭтоДопРеквизит, + | РеквизитыДляКонтроля.ИмяРеквизита КАК ИмяРеквизита, + | РеквизитыДляКонтроля.Свойство КАК Свойство, + | РеквизитыДляКонтроля.ЗаполнятьОбязательно КАК ЗаполнятьОбязательно, + | РеквизитыДляКонтроля.Уникален КАК Уникален, + | РеквизитыДляКонтроля.ОтображатьПриСоздании КАК ОтображатьПриСоздании, + | РеквизитыДляКонтроля.Использование КАК Использование, + | ЛОЖЬ КАК ЕстьРеквизитВМетаданных + | ИЗ + | РеквизитыДляКонтроляТаблица КАК РеквизитыДляКонтроля + | + | ОБЪЕДИНИТЬ ВСЕ + | + | ВЫБРАТЬ + | ЛОЖЬ, + | ВсеРеквизитыНоменклатурыТаблица.Имя, + | ЗНАЧЕНИЕ(ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ПустаяСсылка), + | ВсеРеквизитыНоменклатурыТаблица.ОбязательныйДляЗаполнения, + | ЛОЖЬ, + | ВсеРеквизитыНоменклатурыТаблица.ОбязательныйДляОтображенияПриСоздании, + | ВсеРеквизитыНоменклатурыТаблица.Использование, + | ИСТИНА + | ИЗ + | ВсеРеквизитыНоменклатурыТаблица КАК ВсеРеквизитыНоменклатурыТаблица) КАК ВложенныйЗапрос + | + |СГРУППИРОВАТЬ ПО + | ВложенныйЗапрос.ЭтоДопРеквизит, + | ВложенныйЗапрос.ИмяРеквизита, + | ВложенныйЗапрос.Свойство + | + |ИНДЕКСИРОВАТЬ ПО + | Свойство, + | ИмяРеквизита + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ВЫБОР + | КОГДА ВТДляЗапроса.ЕстьРеквизитВМетаданных + | ТОГДА ЕСТЬNULL(ВсеРеквизитыНоменклатурыТаблица.Представление, """") + | ИНАЧЕ ЕСТЬNULL(РеквизитыДляКонтроляТаблица.Представление, """") + | КОНЕЦ КАК Представление, + | ВТДляЗапроса.ЭтоДопРеквизит КАК ЭтоДопРеквизит, + | ВТДляЗапроса.ИмяРеквизита КАК ИмяРеквизита, + | ВТДляЗапроса.Свойство КАК Свойство, + | ВТДляЗапроса.ЗаполнятьОбязательно КАК ЗаполнятьОбязательно, + | ВТДляЗапроса.Уникален КАК Уникален, + | ВТДляЗапроса.ОтображатьПриСоздании КАК ОтображатьПриСоздании, + | ВТДляЗапроса.Использование КАК Использование, + | ВТДляЗапроса.Свойство.ТипЗначения КАК Тип, + | ЕСТЬNULL(ВТВсеДополнительныеРеквизиты.Набор, ЗНАЧЕНИЕ(Справочник.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка)) КАК Набор, + | ЕСТЬNULL(ВТВсеДополнительныеРеквизиты.ЭтоОбщийРеквизит, ЛОЖЬ) КАК ЭтоОбщийРеквизит, + | ЕСТЬNULL(ВТВсеДополнительныеРеквизиты.НаборСвойств, ЗНАЧЕНИЕ(Справочник.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка)) КАК НаборСвойств + |ИЗ + | ВТДляЗапроса КАК ВТДляЗапроса + | ЛЕВОЕ СОЕДИНЕНИЕ ВТВсеДополнительныеРеквизиты КАК ВТВсеДополнительныеРеквизиты + | ПО ВТДляЗапроса.Свойство = ВТВсеДополнительныеРеквизиты.Свойство + | + | ЛЕВОЕ СОЕДИНЕНИЕ ВсеРеквизитыНоменклатурыТаблица КАК ВсеРеквизитыНоменклатурыТаблица + | ПО ВТДляЗапроса.ИмяРеквизита = ВсеРеквизитыНоменклатурыТаблица.Имя + | И ВТДляЗапроса.ЕстьРеквизитВМетаданных = ИСТИНА + | + | ЛЕВОЕ СОЕДИНЕНИЕ РеквизитыДляКонтроляТаблица КАК РеквизитыДляКонтроляТаблица + | ПО ВТДляЗапроса.ИмяРеквизита = РеквизитыДляКонтроляТаблица.ИмяРеквизита + | И ВТДляЗапроса.ЕстьРеквизитВМетаданных = ЛОЖЬ + |ГДЕ + | (ВТДляЗапроса.ЭтоДопРеквизит + | ИЛИ ВТДляЗапроса.ЕстьРеквизитВМетаданных) + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | ВТВсеДополнительныеРеквизиты.Свойство.Представление КАК Представление, + | ИСТИНА КАК ЭтоДопРеквизит, + | ВТДляЗапроса.ИмяРеквизита КАК ИмяРеквизита, + | ВТВсеДополнительныеРеквизиты.Свойство КАК Свойство, + | ВТВсеДополнительныеРеквизиты.ЗаполнятьОбязательно КАК ЗаполнятьОбязательно, + | ЛОЖЬ КАК Уникален, + | ВТВсеДополнительныеРеквизиты.ЗаполнятьОбязательно КАК ОтображатьПриСоздании, + | ИСТИНА КАК Использование, + | ВТВсеДополнительныеРеквизиты.Тип КАК Тип, + | ВТВсеДополнительныеРеквизиты.Набор КАК Набор, + | ИСТИНА КАК ЭтоОбщийРеквизит, + | ВТВсеДополнительныеРеквизиты.НаборСвойств КАК НаборСвойств + |ИЗ + | ВТВсеДополнительныеРеквизиты КАК ВТВсеДополнительныеРеквизиты + | ЛЕВОЕ СОЕДИНЕНИЕ ВТДляЗапроса КАК ВТДляЗапроса + | ПО ВТДляЗапроса.Свойство = ВТВсеДополнительныеРеквизиты.Свойство + | + |ГДЕ + | ВТДляЗапроса.ЭтоДопРеквизит ЕСТЬ NULL"; + + МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; + + ВсеДополнительныеРеквизиты(ВидНоменклатуры, ВладелецРеквизитов, МенеджерВременныхТаблиц); + + Если ВладелецРеквизитов = "Номенклатура" Тогда + ВсеРеквизитыНоменклатурыТаблица = ЗначениеНастроекПовтИсп.ВсеРеквизитыНоменклатурыТаблица(ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции, + ИспользованиеХарактеристик, + ИспользоватьСрокГодностиСерии); + // + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ИсточникРеквизитыДляКонтроля", "Справочник.ВидыНоменклатуры.РеквизитыДляКонтроляНоменклатуры"); + Иначе + ВсеРеквизитыНоменклатурыТаблица = ЗначениеНастроекПовтИсп.ВсеРеквизитыХарактеристикНоменклатурыТаблица(ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции); + // + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ИсточникРеквизитыДляКонтроля", "Справочник.ВидыНоменклатуры.РеквизитыДляКонтроляХарактеристик"); + КонецЕсли; + + Запрос.Текст = ТекстЗапроса; + Запрос.УстановитьПараметр("ВидНоменклатуры", ВидНоменклатуры); + Запрос.УстановитьПараметр("ВсеРеквизитыНоменклатурыТаблица", ВсеРеквизитыНоменклатурыТаблица); + Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; + + Таблица = Запрос.Выполнить().Выгрузить(); + + Для Каждого СтрТабл Из Таблица Цикл + Если Не СтрТабл.ЭтоДопРеквизит Тогда + Если ВладелецРеквизитов = "Номенклатура" Тогда + ОписаниеРеквизита = РеквизитОписание(СтрТабл.ИмяРеквизита, + ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции, + ИспользованиеХарактеристик, + ИспользоватьСрокГодностиСерии); + Иначе + ОписаниеРеквизита = Справочники.ХарактеристикиНоменклатуры.РеквизитОписание(СтрТабл.ИмяРеквизита, + ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции); + КонецЕсли; + + СтрТабл.Тип = ОписаниеРеквизита.Тип; + СтрТабл.Представление = ОписаниеРеквизита.Представление; + СтрТабл.Использование = ОписаниеРеквизита.Использование; + + СтрТабл.ЗаполнятьОбязательно = СтрТабл.Использование + И (ОписаниеРеквизита.ОбязательныйДляЗаполнения + Или СтрТабл.ЗаполнятьОбязательно); + + СтрТабл.ОтображатьПриСоздании = СтрТабл.Использование + И (СтрТабл.ОтображатьПриСоздании + Или ОписаниеРеквизита.ОбязательныйДляОтображенияПриСоздании + Или СтрТабл.ЗаполнятьОбязательно + Или СтрТабл.Уникален); + Иначе + СтрТабл.ОтображатьПриСоздании = СтрТабл.ОтображатьПриСоздании + Или СтрТабл.ЗаполнятьОбязательно + Или СтрТабл.Уникален; + КонецЕсли; + КонецЦикла; + + Возврат Таблица; + +КонецФункции + +// Возвращает таблицу дополнительные реквизиты номенклатуры +// +// Параметры: +// ВидНоменклатуры - СправочникСсылка.ВидыНоменклатуры. +// НазначениеДопРеквизитов - Строка - Наименование типа объекта (Номенклатура, ХарактеристикиНоменклатуры, СерииНоменклатуры). +// МенеджерВременныхТаблиц - Неопределено, МенеджерВременныхТаблиц - +// +// Возвращаемое значение: +// ТаблицаЗначений - колонки: +// * ИмяРеквизита - Строка - наименование свойства +// * ПредставлениеРеквизита - Строка - заголовок свойства +// * ЭтоДопРеквизит - Булево - всегда ИСТИНА +// * ЭтоОбщийРеквизит - Булево - признак, что доп. реквизит входит в набор Справочник_Номенклатура_Общие +// * ЗаполнятьОбязательно - Булево +// * НаборСвойств - СправочникСсылка.НаборыДополнительныхРеквизитовИСведений - набор свойств, для которого был создан доп. реквизит +// * Тип - ОписаниеТипов +// +Функция ВсеДополнительныеРеквизиты(ВидНоменклатуры, НазначениеДопРеквизитов, МенеджерВременныхТаблиц = Неопределено) Экспорт + + Если Не ПолучитьФункциональнуюОпцию("ИспользоватьДополнительныеРеквизитыИСведения") Тогда + ТекстЗапроса = + "ВЫБРАТЬ + | ЗНАЧЕНИЕ(Справочник.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка) КАК Набор, + | """" КАК ИмяРеквизита, + | """" КАК ПредставлениеРеквизита, + | ЗНАЧЕНИЕ(ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ПустаяСсылка) КАК Свойство, + | ИСТИНА КАК ЭтоДопРеквизит, + | ЛОЖЬ КАК ЭтоОбщийРеквизит, + | ЛОЖЬ КАК ЗаполнятьОбязательно, + | ЛОЖЬ КАК ЗаполнятьОбязательноСУсловием, + | ЛОЖЬ КАК ВиденСУсловием, + | ЛОЖЬ КАК ДоступенСУсловием, + | ЗНАЧЕНИЕ(Справочник.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка) КАК НаборСвойств, + | ТИПЗНАЧЕНИЯ("""") КАК Тип + |ПОМЕСТИТЬ ВТВсеДополнительныеРеквизиты + | + |ГДЕ + | ЛОЖЬ"; + + Иначе + ТекстЗапроса = + "ВЫБРАТЬ РАЗЛИЧНЫЕ + | ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.Ссылка КАК Свойство + |ПОМЕСТИТЬ ЗаполнятьОбязательно + |ИЗ + | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ЗависимостиДополнительныхРеквизитов КАК ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов + | + |ГДЕ + | ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.Значение = &ВидНоменклатуры + | И ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.Реквизит = ""ВидНоменклатуры"" + | И ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.ЗависимоеСвойство ПОДОБНО ""ЗаполнятьОбязательно"" + | И ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.НаборСвойств = &НаборВида + | И ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.Условие = ""Равно"" + | И ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.Ссылка.ЗаполнятьОбязательно + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ РАЗЛИЧНЫЕ + | ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.Ссылка + |ИЗ + | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ЗависимостиДополнительныхРеквизитов КАК ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов + | + |ГДЕ + | ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.Значение = &ВидНоменклатуры + | И ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.Реквизит = ""ВидНоменклатуры"" + | И ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.ЗависимоеСвойство ПОДОБНО ""ЗаполнятьОбязательно"" + | И ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.НаборСвойств = &ОбщийНабор + | И ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.Условие = ""ВСписке"" + | И ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.Ссылка.ЗаполнятьОбязательно + | + |ИНДЕКСИРОВАТЬ ПО + | Свойство + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ РАЗЛИЧНЫЕ + | ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.Ссылка КАК Свойство + |ПОМЕСТИТЬ ЗаполнятьОбязательноСУсловием + |ИЗ + | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ЗависимостиДополнительныхРеквизитов КАК ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов + | + |ГДЕ + | ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.НаборСвойств В (&НаборВида, &ОбщийНабор) + | И ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.Реквизит <> ""ВидНоменклатуры"" + | И ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.ЗависимоеСвойство ПОДОБНО ""ЗаполнятьОбязательно"" + | И ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.Ссылка.ЗаполнятьОбязательно + | + |ИНДЕКСИРОВАТЬ ПО + | Свойство + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ РАЗЛИЧНЫЕ + | ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.Ссылка КАК Свойство + |ПОМЕСТИТЬ Виден + |ИЗ + | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ЗависимостиДополнительныхРеквизитов КАК ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов + | + |ГДЕ + | ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.НаборСвойств В (&НаборВида, &ОбщийНабор) + | И ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.ЗависимоеСвойство ПОДОБНО ""Виден"" + | + |ИНДЕКСИРОВАТЬ ПО + | Свойство + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ РАЗЛИЧНЫЕ + | ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.Ссылка КАК Свойство + |ПОМЕСТИТЬ Доступен + |ИЗ + | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ЗависимостиДополнительныхРеквизитов КАК ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов + | + |ГДЕ + | ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.НаборСвойств В (&НаборВида, &ОбщийНабор) + | И ДополнительныеРеквизитыИСведенияЗависимостиДополнительныхРеквизитов.ЗависимоеСвойство ПОДОБНО ""Доступен"" + | + |ИНДЕКСИРОВАТЬ ПО + | Свойство + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ДополнительныеРеквизиты.Ссылка КАК Набор, + | ДополнительныеРеквизиты.Свойство.Наименование КАК ИмяРеквизита, + | ДополнительныеРеквизиты.Свойство.Заголовок КАК ПредставлениеРеквизита, + | ДополнительныеРеквизиты.Свойство КАК Свойство, + | ИСТИНА КАК ЭтоДопРеквизит, + | ВЫБОР + | КОГДА ДополнительныеРеквизиты.Ссылка = &ОбщийНабор + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ КАК ЭтоОбщийРеквизит, + | НЕ ЗаполнятьОбязательно.Свойство ЕСТЬ NULL КАК ЗаполнятьОбязательно, + | НЕ ЗаполнятьОбязательноСУсловием.Свойство ЕСТЬ NULL КАК ЗаполнятьОбязательноСУсловием, + | НЕ Виден.Свойство ЕСТЬ NULL КАК ВиденСУсловием, + | НЕ Доступен.Свойство ЕСТЬ NULL КАК ДоступенСУсловием, + | ДополнительныеРеквизиты.Свойство.НаборСвойств КАК НаборСвойств, + | ДополнительныеРеквизиты.Свойство.ТипЗначения КАК Тип + |ПОМЕСТИТЬ ВТВсеДополнительныеРеквизиты + |ИЗ + | Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК ДополнительныеРеквизиты + | ЛЕВОЕ СОЕДИНЕНИЕ ЗаполнятьОбязательно КАК ЗаполнятьОбязательно + | ПО ДополнительныеРеквизиты.Свойство = ЗаполнятьОбязательно.Свойство + | ЛЕВОЕ СОЕДИНЕНИЕ Доступен КАК Доступен + | ПО ДополнительныеРеквизиты.Свойство = Доступен.Свойство + | ЛЕВОЕ СОЕДИНЕНИЕ Виден КАК Виден + | ПО ДополнительныеРеквизиты.Свойство = Виден.Свойство + | ЛЕВОЕ СОЕДИНЕНИЕ ЗаполнятьОбязательноСУсловием КАК ЗаполнятьОбязательноСУсловием + | ПО ДополнительныеРеквизиты.Свойство = ЗаполнятьОбязательноСУсловием.Свойство + | + |ГДЕ + | НЕ ДополнительныеРеквизиты.ПометкаУдаления + | И (ДополнительныеРеквизиты.Ссылка = &ОбщийНабор + | ИЛИ ДополнительныеРеквизиты.Ссылка = &НаборВида)"; + + Если НазначениеДопРеквизитов = "Номенклатура" Тогда + ОбщийНабор = "&Набор_Справочник_Номенклатура_Общие"; + НаборВида = "ВЫРАЗИТЬ(&ВидНоменклатуры КАК Справочник.ВидыНоменклатуры).НаборСвойств"; + ИначеЕсли НазначениеДопРеквизитов = "ХарактеристикиНоменклатуры" Тогда + ОбщийНабор = "&Набор_Справочник_ХарактеристикиНоменклатуры_Общие"; + НаборВида = "ВЫРАЗИТЬ(&ВидНоменклатуры КАК Справочник.ВидыНоменклатуры).НаборСвойствХарактеристик"; + ИначеЕсли НазначениеДопРеквизитов = "СерииНоменклатуры" Тогда + ОбщийНабор = "&Набор_Справочник_СерииНоменклатуры_Общие"; + НаборВида = "ВЫРАЗИТЬ(&ВидНоменклатуры КАК Справочник.ВидыНоменклатуры).НаборСвойствСерий"; + КонецЕсли; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ОбщийНабор", ОбщийНабор); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&НаборВида", НаборВида); + + КонецЕсли; + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("ВидНоменклатуры", ВидНоменклатуры); + Запрос.УстановитьПараметр("Набор_Справочник_Номенклатура_Общие", УправлениеСвойствами.НаборСвойствПоИмени("Справочник_Номенклатура_Общие")); + Запрос.УстановитьПараметр("Набор_Справочник_ХарактеристикиНоменклатуры_Общие", УправлениеСвойствами.НаборСвойствПоИмени("Справочник_ХарактеристикиНоменклатуры_Общие")); + Запрос.УстановитьПараметр("Набор_Справочник_СерииНоменклатуры_Общие", УправлениеСвойствами.НаборСвойствПоИмени("Справочник_СерииНоменклатуры_Общие")); + + + Если МенеджерВременныхТаблиц = Неопределено Тогда + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ПОМЕСТИТЬ ВТВсеДополнительныеРеквизиты", ""); + Запрос.Текст = ТекстЗапроса; + + Возврат Запрос.Выполнить().Выгрузить(); + Иначе + ТекстЗапроса = ТекстЗапроса + " + | + |ИНДЕКСИРОВАТЬ ПО + | Свойство"; + + Запрос.Текст = ТекстЗапроса; + Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; + Запрос.Выполнить(); + + Возврат Неопределено; + КонецЕсли; + +КонецФункции + +// Возвращает описание настроек реквизита номенклатуры. +// +// Параметры: +// Реквизит - ОбъектМетаданныхРеквизит - реквизит справочника Номенклатура. +// ТипНоменклатуры - ПеречислениеСсылка.ТипыНоменклатуры - тип номенклатуры. +// ОсобенностьУчетаИлиКлючВидовПродукции - ПеречислениеСсылка.ОсобенностиУчетаНоменклатуры, +// СправочникСсылка.КлючиВидовПродукцииИС - особенность учета номенклатуры. +// ИспользованиеХарактеристик - ПеречислениеСсылка.ВариантыИспользованияХарактеристикНоменклатуры, Булево - вариант +// использования номенклатуры или признак использования характеристик. +// ИспользоватьСрокГодностиСерии - Булево - признак использования срока годности в сериях номенклатуры. +// ЭтоРеквизитыХарактеристик - Булево - признак принадлежности реквизитов справочнику ХарактеристикиНоменклатуры. +// +// Возвращаемое значение: +// см. ЗначениеСвойствРеквизита. +// +Функция РеквизитОписание(Реквизит, + ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции, + ИспользованиеХарактеристик, + ИспользоватьСрокГодностиСерии) Экспорт + + Если ТипЗнч(Реквизит) = Тип("Строка") + Или ТипЗнч(Реквизит) = Тип("ОбъектМетаданных") Тогда + + ВсеРеквизитыНоменклатуры = ЗначениеНастроекПовтИсп.ВсеРеквизитыНоменклатуры(ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции, + ИспользованиеХарактеристик, + ИспользоватьСрокГодностиСерии); + + Если ТипЗнч(Реквизит) = Тип("Строка") Тогда + ИмяРеквизита = Реквизит; + Иначе + ИмяРеквизита = Реквизит.Имя; + КонецЕсли; + + Возврат ВсеРеквизитыНоменклатуры[ИмяРеквизита]; + ИначеЕсли ТипЗнч(Реквизит) = Тип("ФиксированнаяСтруктура") Тогда + Возврат Реквизит; + Иначе + ТекстИсключения = НСтр("ru = 'Неожиданный тип параметра Реквизит.'"); + ВызватьИсключение ТекстИсключения; + КонецЕсли; + +КонецФункции + +// Возвращаемое значение: +// ТаблицаЗначений - содержит: +// * Имя - Строка - описание реквизита +// * Представление - Строка - +// * Тип - ОписаниеТипов - +// * ОбязательныйДляЗаполнения - Булево - +// * ОбязательныйДляОтображенияПриСоздании - Булево - +// * РекомендуемыйДляКонтроляУникальности - Булево - +// * Использование - Булево - +// +Функция СтруктураОписанияРеквизитовВТаблицу(СтруктураОписаний) Экспорт + Таблица = Новый ТаблицаЗначений; // см. СтруктураОписанияРеквизитовВТаблицу + ПерваяСтрока = Истина; + + Для Каждого ОписаниеРеквизита Из СтруктураОписаний Цикл + + Если ПерваяСтрока Тогда + Для Каждого Свойство Из ОписаниеРеквизита.Значение Цикл + Если ТипЗнч(Свойство.Значение) = Тип("Строка") Тогда + Таблица.Колонки.Добавить(Свойство.Ключ, + Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(255, ДопустимаяДлина.Переменная))); + Иначе + МассивТипов = Новый Массив; + МассивТипов.Добавить(ТипЗнч(Свойство.Значение)); + Таблица.Колонки.Добавить(Свойство.Ключ,Новый ОписаниеТипов(МассивТипов)); + КонецЕсли; + КонецЦикла; + ПерваяСтрока = Ложь; + КонецЕсли; + + НоваяСтрока = Таблица.Добавить(); + НоваяСтрока.Имя = ОписаниеРеквизита.Ключ; + ЗаполнитьЗначенияСвойств(НоваяСтрока, ОписаниеРеквизита.Значение); + КонецЦикла; + + Возврат Таблица; +КонецФункции + +Функция НепроверяемыеРеквизиты(Объект) Экспорт + + МассивНепроверяемыхРеквизитов = Новый Массив; + + ОсобенностьУчетаИлиКлючВидовПродукции = НоменклатураЛокализация.ОсобенностьУчетаИлиКлючВидовПродукции(Объект); + + РеквизитыСПереопределеннойОбязательностьюЗаполнения = РеквизитыСПереопределеннойОбязательностьюЗаполнения( + Объект.ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции, + Объект); + + Для Каждого КлючЗначение Из РеквизитыСПереопределеннойОбязательностьюЗаполнения Цикл + + Если Не КлючЗначение.Значение Тогда + МассивНепроверяемыхРеквизитов.Добавить(КлючЗначение.Ключ); + КонецЕсли; + + КонецЦикла; + + Возврат МассивНепроверяемыхРеквизитов; + +КонецФункции + +// Возвращает имена реквизитов номенклатуры, используемых только для агентских услуг. +// +// Возвращаемое значение: +// Массив из Строка - имена реквизитов. +// +Функция РеквизитыАгентскихУслуг() + + МассивАгентскихРеквизитов = Новый Массив; + + МассивАгентскихРеквизитов.Добавить("Принципал"); + МассивАгентскихРеквизитов.Добавить("Контрагент"); + + Возврат МассивАгентскихРеквизитов; + +КонецФункции + +Функция РеквизитыПризнаковОсобенностейУчета(МетаданныеОбъекта) Экспорт + + РеквизитыПризнаковОсобенностейУчета = Новый Массив; + + ОсобенностиУчета = Новый Массив; + ОсобенностиУчета.Добавить(Перечисления.ОсобенностиУчетаНоменклатуры.СодержитДрагоценныеМатериалы); + + ОбщегоНазначенияКлиентСервер.ДополнитьМассив( + ОсобенностиУчета, + Перечисления.ОсобенностиУчетаНоменклатуры.ОсобенностиУчетаУслуг()); + + Для Каждого ЗначениеПеречисления Из ОсобенностиУчета Цикл + + ИмяЗначенияПеречисления = ОбщегоНазначения.ИмяЗначенияПеречисления(ЗначениеПеречисления); + + Если МетаданныеОбъекта.Реквизиты.Найти(ИмяЗначенияПеречисления) <> Неопределено Тогда + РеквизитыПризнаковОсобенностейУчета.Добавить(ИмяЗначенияПеречисления); + КонецЕсли; + + КонецЦикла; + + Возврат РеквизитыПризнаковОсобенностейУчета; + +КонецФункции + +// Возвращает структуру с видимостью элементов. +// Параметры: +// ПереданныйОбъект - СправочникОбъект.Номенклатура - элемент справочника номенклатуры +// РежимВидимостиПоказатьТолькоВажные - Булево - признак отображения основных реквизитов. +// РежимПроверкиИспользованияРеквизитов - Булево - признак проверки использования реквизитов. +// +// Возвращаемое значение: +// Структура - структура видимости элементов. Ключ - имя элемента, значения - видимость. +// +Функция ИспользованиеЭлементов(ПереданныйОбъект, РежимВидимостиПоказатьТолькоВажные, РежимПроверкиИспользованияРеквизитов) Экспорт + + ИменаРеквизитовВидаНоменклатуры = "ИспользоватьСерии, НастройкаИспользованияСерий, ИспользоватьСрокГодностиСерии," + + "ШаблонЭтикетки, ШаблонЦенника"; + Если ТипЗнч(ПереданныйОбъект.Ссылка) = Тип("СправочникСсылка.ВидыНоменклатуры") Тогда + Объект = ОбщегоНазначенияУТ.СтруктураСоСвойствамиОбъектаМетаданных(Метаданные.Справочники.Номенклатура); + ЗаполнитьЗначенияСвойств(Объект, ПереданныйОбъект); + РеквизитыВидаНоменклатуры = Новый Структура(ИменаРеквизитовВидаНоменклатуры); + ЗаполнитьЗначенияСвойств(РеквизитыВидаНоменклатуры, ПереданныйОбъект); + Объект.ВидНоменклатуры = ПереданныйОбъект.Ссылка; + Иначе + Объект = ПереданныйОбъект; + РеквизитыВидаНоменклатуры = ОбщегоНазначенияУТ.ЗначенияРеквизитовОбъектаПоУмолчанию(Объект.ВидНоменклатуры, + ИменаРеквизитовВидаНоменклатуры); + КонецЕсли; + + ИспользованиеЭлементов = Новый Структура; + + АвторизованВнешнийПользователь = ОбщегоНазначенияУТКлиентСервер.АвторизованВнешнийПользователь(); + + #Область ФункциональныеОпции + + ИспользоватьМногооборотнуюТару = ПолучитьФункциональнуюОпцию("ИспользоватьМногооборотнуюТару"); + ИспользоватьХарактеристикиНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьХарактеристикиНоменклатуры"); + ИспользоватьНесколькоВидовНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоВидовНоменклатуры"); + ИспользоватьСерииНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьСерииНоменклатуры"); + ИспользоватьСборкуРазборку = ПолучитьФункциональнуюОпцию("ИспользоватьСборкуРазборку"); + ИспользоватьСертификатыНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьСертификатыНоменклатуры"); + ИспользоватьСегментыНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьСегментыНоменклатуры"); + ИспользоватьПроизводство = ПолучитьФункциональнуюОпцию("ИспользоватьПроизводство"); + ИспользоватьАдресноеХранение = ПолучитьФункциональнуюОпцию("ИспользоватьАдресноеХранение"); + ИспользоватьДополнительныеРеквизитыИСведения = ПолучитьФункциональнуюОпцию("ИспользоватьДополнительныеРеквизитыИСведения"); + ИспользоватьАдресноеХранениеСправочно = ПолучитьФункциональнуюОпцию("ИспользоватьАдресноеХранениеСправочно"); + ИспользоватьКомиссиюПриЗакупках = ПолучитьФункциональнуюОпцию("ИспользоватьКомиссиюПриЗакупках"); + ИспользоватьНесколькоОрганизаций = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоОрганизаций"); + ИспользоватьНоменклатуруПродаваемуюСовместно = ПолучитьФункциональнуюОпцию("ИспользоватьНоменклатуруПродаваемуюСовместно"); + ИспользоватьПрогнозРасходаУпаковок = ПолучитьФункциональнуюОпцию("ИспользоватьПрогнозРасходаУпаковок"); + ФормироватьФинансовыйРезультат = ПолучитьФункциональнуюОпцию("ФормироватьФинансовыйРезультат"); + ИспользоватьРасширенноеОбеспечениеПотребностей = ПолучитьФункциональнуюОпцию("ИспользоватьРасширенноеОбеспечениеПотребностей"); + ИспользоватьСоглашенияСПоставщиками = ПолучитьФункциональнуюОпцию("ИспользоватьСоглашенияСПоставщиками"); + ИспользоватьКонтрольКачестваТоваров = ПолучитьФункциональнуюОпцию("ИспользоватьКонтрольКачестваТоваров"); + ИспользоватьУчетНДС = ПолучитьФункциональнуюОпцию("ИспользоватьУчетНДС"); + ИспользоватьПодакцизныеТовары = ПолучитьФункциональнуюОпцию("ИспользоватьПодакцизныеТовары"); + #КонецОбласти + + #Область ПризнакиТипаНоменклатуры + ЭтоТовар = (Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар); + ЭтоМногооборотнаяТара = (Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.МногооборотнаяТара); + ЭтоРабота = (Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Работа); + ЭтоУслуга = (Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Услуга); + ЭтоНабор = (Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Набор); + #КонецОбласти + + #Область НастройкаПоВидуНоменклатуры + + ОсобенностьУчетаИлиКлючВидовПродукции = НоменклатураЛокализация.ОсобенностьУчетаИлиКлючВидовПродукции(ПереданныйОбъект); + + НастройкиРеквизитовПоВидуНоменклатуры = ТаблицаНастроекРеквизитов(Объект.ВидНоменклатуры, + Объект.ТипНоменклатуры, + ОсобенностьУчетаИлиКлючВидовПродукции, + Объект.ИспользованиеХарактеристик, + РеквизитыВидаНоменклатуры.ИспользоватьСрокГодностиСерии, + "Номенклатура"); + + РеквизитыФормы = РеквизитыФормыТаблицыНастроек(); + + Для Каждого СтрТабл Из НастройкиРеквизитовПоВидуНоменклатуры Цикл + ИмяРеквизита = СтрТабл.ИмяРеквизита; + Если СтрТабл.ЭтоДопРеквизит Тогда + Если Не РежимПроверкиИспользованияРеквизитов Тогда + + ИмяЭлементаФормы = "ДополнительныйРеквизитЗначение_" + + СтрЗаменить(?(СтрТабл.ЭтоОбщийРеквизит, + ВРег(Строка(СтрТабл.Набор.УникальныйИдентификатор())), + ВРег(Строка(СтрТабл.НаборСвойств.УникальныйИдентификатор()))), + "-", + "x") + + "_" + + СтрЗаменить(ВРег(Строка(СтрТабл.Свойство.УникальныйИдентификатор())), "-", "x"); + + ИспользованиеЭлементов.Вставить(ИмяЭлементаФормы, СтрТабл.Использование + И ВидимостьРеквизита(СтрТабл, + ИмяРеквизита, + РежимВидимостиПоказатьТолькоВажные, + СтрТабл)); + КонецЕсли; + Иначе + Если (ИмяРеквизита = "ВариантОформленияПродажи" + Или ИмяРеквизита = "Качество" + Или ИмяРеквизита = "ИспользованиеХарактеристик") + И РежимПроверкиИспользованияРеквизитов Тогда + + ИспользованиеЭлементов.Вставить(ИмяРеквизита, Истина); + + Иначе + Реквизит = ?(РеквизитыФормы.Получить(ИмяРеквизита) = Неопределено, ИмяРеквизита, СтрТабл); + + ИспользованиеЭлементов.Вставить(ИмяРеквизита, СтрТабл.Использование + И (РежимПроверкиИспользованияРеквизитов + Или ВидимостьРеквизита(Реквизит, + ИмяРеквизита, + РежимВидимостиПоказатьТолькоВажные, + СтрТабл))); + КонецЕсли; + КонецЕсли; + КонецЦикла; + + #КонецОбласти + + #Область ШапкаФормы + + Если Не РежимПроверкиИспользованияРеквизитов Тогда + ИспользованиеЭлементов.Вставить("ЗаполнитьРабочееНаименованиеПоШаблону", ЗначениеЗаполнено(Объект.ВидНоменклатуры)); + ИспользованиеЭлементов.Вставить("ЗаполнитьНаименованиеДляПечатиПоШаблону", ЗначениеЗаполнено(Объект.ВидНоменклатуры)); + + ГиперссылкаПерейтиШтрихкодыНоменклатурыВидимость = ПравоДоступа("Просмотр", + Метаданные.РегистрыСведений.ШтрихкодыНоменклатуры) + И Не РежимВидимостиПоказатьТолькоВажные + И ЗначениеЗаполнено(Объект.Ссылка); + + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствамиВидимость = ПравоДоступа("Просмотр", + Метаданные.РегистрыСведений.НоменклатураСегмента) + И Не ОбщегоНазначенияУТКлиентСервер.АвторизованВнешнийПользователь() + И Не РежимВидимостиПоказатьТолькоВажные; + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиШтрихкодыНоменклатуры", + ГиперссылкаПерейтиШтрихкодыНоменклатурыВидимость); + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами", + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствамиВидимость); + КонецЕсли; + #КонецОбласти + + #Область Описание + + Если Не РежимПроверкиИспользованияРеквизитов Тогда + ГиперссылкаПерейтиФайлыВидимость = ПравоДоступа("Просмотр", Метаданные.Справочники.НоменклатураПрисоединенныеФайлы) + И Не РежимВидимостиПоказатьТолькоВажные; + + ВидимостьКомандФайлаКартинки = ИспользованиеЭлементов.ФайлКартинки; + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиФайлы", ГиперссылкаПерейтиФайлыВидимость); + + ИспользованиеЭлементов.Вставить("ДобавитьИзображение", ВидимостьКомандФайлаКартинки); + ИспользованиеЭлементов.Вставить("ОчиститьИзображение", ВидимостьКомандФайлаКартинки); + ИспользованиеЭлементов.Вставить("ИзменитьИзображение", ЗначениеЗаполнено(Объект.Ссылка)); + ИспользованиеЭлементов.Вставить("ПросмотретьИзображение", ЗначениеЗаполнено(Объект.Ссылка)); + ИспользованиеЭлементов.Вставить("ВыбратьКартинкуИзПрисоединенныхФайлов", ЗначениеЗаполнено(Объект.Ссылка)); + + ГиперссылкаПерейтиСертификатыНоменклатурыВидимость = ИспользоватьСертификатыНоменклатуры + И Объект.ВестиУчетСертификатовНоменклатуры + И Не РежимВидимостиПоказатьТолькоВажные + И ПравоДоступа("Просмотр", Метаданные.РегистрыСведений.ОбластиДействияСертификатовНоменклатуры); + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиСертификатыНоменклатуры", + ГиперссылкаПерейтиСертификатыНоменклатурыВидимость); + КонецЕсли; + + #КонецОбласти + + #Область СведенияОПроизводителе + + Если Не РежимПроверкиИспользованияРеквизитов Тогда + ГиперссылкаПерейтиСоглашенияВидимость = + Не РежимВидимостиПоказатьТолькоВажные + И ОсобенностьУчетаИлиКлючВидовПродукции = Перечисления.ОсобенностиУчетаНоменклатуры.Партнером + И ПравоДоступа("Просмотр", Метаданные.Справочники.СоглашенияСПоставщиками) + И ИспользоватьСоглашенияСПоставщиками; + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиСоглашения", ГиперссылкаПерейтиСоглашенияВидимость); + КонецЕсли; + + #КонецОбласти + + #Область ПланированиеИМаркетинг + + ИспользованиеЭлементов.Вставить("ТоварнаяКатегория", ЗначениеЗаполнено(Объект.ВидНоменклатуры) + И Не РежимВидимостиПоказатьТолькоВажные + Или РежимПроверкиИспользованияРеквизитов); + + Если Не РежимПроверкиИспользованияРеквизитов Тогда + ГиперссылкаПерейтиСовместныеПродажиВидимость = ИспользоватьНоменклатуруПродаваемуюСовместно + И Не ЭтоНабор + И Не ЭтоМногооборотнаяТара + И ПравоДоступа("Просмотр", Метаданные.РегистрыСведений.НоменклатураПродаваемаяСовместно) + И Не РежимВидимостиПоказатьТолькоВажные; + + ГиперссылкаПерейтиСегментыВидимость = ИспользоватьСегментыНоменклатуры + И ПравоДоступа("Просмотр", Метаданные.РегистрыСведений.НоменклатураСегмента) + И Не РежимВидимостиПоказатьТолькоВажные + И Не АвторизованВнешнийПользователь; + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиСовместныеПродажи", ГиперссылкаПерейтиСовместныеПродажиВидимость); + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиСегменты", ГиперссылкаПерейтиСегментыВидимость); + КонецЕсли; + + #КонецОбласти + + #Область ОбеспечениеИПроизводство + + Если Не РежимПроверкиИспользованияРеквизитов Тогда + ГиперссылкаПерейтиВариантыКомплектацииВидимость = ИспользоватьСборкуРазборку + И Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар + И ПравоДоступа("Просмотр", Метаданные.Справочники.ВариантыКомплектацииНоменклатуры) + И Не РежимВидимостиПоказатьТолькоВажные; + + ГиперссылкаПерейтиНастройкаСпособовОбеспеченияПотребностейВидимость = + ИспользоватьРасширенноеОбеспечениеПотребностей + И (Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар + Или Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.МногооборотнаяТара) + И Не РежимВидимостиПоказатьТолькоВажные + И ПравоДоступа("Просмотр", Метаданные.Обработки.НастройкаСпособовОбеспеченияПотребностей); + + ГиперссылкаПерейтиНастройкаПоддержанияЗапасовВидимость = ИспользоватьРасширенноеОбеспечениеПотребностей + И (Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар + Или Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.МногооборотнаяТара) + И Не РежимВидимостиПоказатьТолькоВажные + И ПравоДоступа("Просмотр", Метаданные.Обработки.НастройкаПоддержанияЗапасов); + + ГиперссылкаПерейтиНастройкаПередачиМатериаловВПроизводствоВидимость = Ложь; + //++ Устарело_Производство21 + + + //-- Устарело_Производство21 + + ГиперссылкаПерейтиПроизводствоВидимость = Ложь; + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиВариантыКомплектации", ГиперссылкаПерейтиВариантыКомплектацииВидимость); + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиНастройкаПоддержанияЗапасов", + ГиперссылкаПерейтиНастройкаПоддержанияЗапасовВидимость); + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиНастройкаСпособовОбеспеченияПотребностей", + ГиперссылкаПерейтиНастройкаСпособовОбеспеченияПотребностейВидимость); + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиНастройкаПередачиМатериаловВПроизводство", + ГиперссылкаПерейтиНастройкаПередачиМатериаловВПроизводствоВидимость); + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиПроизводство", ГиперссылкаПерейтиПроизводствоВидимость); + КонецЕсли; + + #КонецОбласти + + #Область КонтрольКачества + + Если Не РежимПроверкиИспользованияРеквизитов Тогда + ВидимостьЭлемента = Объект.КонтролироватьКачествоПоступившегоТовара + И ИспользованиеЭлементов.КонтролироватьКачествоПоступившегоТовара; + ИспользованиеЭлементов.Вставить("СрокКонтроляКачества", ВидимостьЭлемента); + ВидимостьЭлемента = ВидимостьЭлемента И ИспользоватьКонтрольКачестваТоваров; + ИспользованиеЭлементов.Вставить("ОтступСрокКонтроляКачестваКартинка", ВидимостьЭлемента); + ИспользованиеЭлементов.Вставить("НадписьСрокКонтроляДней", ВидимостьЭлемента); + КонецЕсли; + + #КонецОбласти + + #Область Цены + + Если Не РежимПроверкиИспользованияРеквизитов Тогда + ГиперссылкаПерейтиПрайсЛистКомпанииВидимость = Не РежимВидимостиПоказатьТолькоВажные + И ПравоДоступа("Просмотр", Метаданные.Обработки.ПрайсЛист); + + ГиперссылкаПерейтиПрайсЛистыПоставщиковВидимость = Не ЭтоНабор + И Не РежимВидимостиПоказатьТолькоВажные + И ПравоДоступа("Просмотр", Метаданные.Обработки.ПрайсЛистПоставщика); + + ГиперссылкаПерейтиИсторияИзмененияЦенКомпанииВидимость = Не РежимВидимостиПоказатьТолькоВажные + И ПравоДоступа("Просмотр", Метаданные.РегистрыСведений.ЦеныНоменклатуры) + И Не АвторизованВнешнийПользователь; + + ГиперссылкаПерейтиИсторияИзмененияЦенПоставщиковВидимость = Не ЭтоНабор + И Не РежимВидимостиПоказатьТолькоВажные + И ПравоДоступа("Просмотр", Метаданные.РегистрыСведений.ЦеныНоменклатурыПоставщиков); + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиПрайсЛистКомпании", ГиперссылкаПерейтиПрайсЛистКомпанииВидимость); + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиПрайсЛистыПоставщиков", + ГиперссылкаПерейтиПрайсЛистыПоставщиковВидимость); + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиИсторияИзмененияЦенКомпании", + ГиперссылкаПерейтиИсторияИзмененияЦенКомпанииВидимость); + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиИсторияИзмененияЦенПоставщиков", + ГиперссылкаПерейтиИсторияИзмененияЦенПоставщиковВидимость); + КонецЕсли; + + #КонецОбласти + + #Область ПечатьЭтикетокИЦенников + + Если Не РежимПроверкиИспользованияРеквизитов Тогда + ВидимостьШаблонЭтикетки = ИспользованиеЭлементов.ШаблонЭтикетки; + + ВидимостьШаблонЦенника = ИспользованиеЭлементов.ШаблонЦенника; + + ИспользованиеЭлементов.Вставить("ИспользоватьОбщийШаблонЭтикетки", ВидимостьШаблонЭтикетки); + ИспользованиеЭлементов.Вставить("ИспользоватьИндивидуальныйШаблонЭтикетки", ВидимостьШаблонЭтикетки); + ИспользованиеЭлементов.Вставить("ШаблонЭтикетки", ВидимостьШаблонЭтикетки); + ИспользованиеЭлементов.Вставить("ВидНоменклатурыШаблонЭтикетки", ЗначениеЗаполнено(РеквизитыВидаНоменклатуры.ШаблонЭтикетки) + И ВидимостьШаблонЭтикетки + И Не Объект.ИспользоватьИндивидуальныйШаблонЭтикетки); + ИспользованиеЭлементов.Вставить("ВидНоменклатурыШаблонЭтикеткиНеУказан", Не ЗначениеЗаполнено(РеквизитыВидаНоменклатуры.ШаблонЭтикетки) + И ВидимостьШаблонЭтикетки + И Не Объект.ИспользоватьИндивидуальныйШаблонЭтикетки); + + ИспользованиеЭлементов.Вставить("ИспользоватьОбщийШаблонЦенника", ВидимостьШаблонЦенника); + ИспользованиеЭлементов.Вставить("ИспользоватьИндивидуальныйШаблонЦенника", ВидимостьШаблонЦенника); + ИспользованиеЭлементов.Вставить("ШаблонЦенника", ВидимостьШаблонЦенника); + ИспользованиеЭлементов.Вставить("ВидНоменклатурыШаблонЦенника", ЗначениеЗаполнено(РеквизитыВидаНоменклатуры.ШаблонЦенника) + И ВидимостьШаблонЦенника + И Не Объект.ИспользоватьИндивидуальныйШаблонЦенника); + ИспользованиеЭлементов.Вставить("ВидНоменклатурыШаблонЦенникаНеУказан", Не ЗначениеЗаполнено(РеквизитыВидаНоменклатуры.ШаблонЦенника) + И ВидимостьШаблонЦенника + И Не Объект.ИспользоватьИндивидуальныйШаблонЦенника); + + КонецЕсли; + #КонецОбласти + + #Область ОсновныеПараметрыУчета + + Если Не РежимПроверкиИспользованияРеквизитов Тогда + ВидНоменклатурыВидимость = ИспользоватьНесколькоВидовНоменклатуры И Не РежимВидимостиПоказатьТолькоВажные; + ВидНоменклатурыПереключательВидимость = Не ИспользоватьНесколькоВидовНоменклатуры И Не РежимВидимостиПоказатьТолькоВажные; + ВидНоменклатурыОбязательныеПоляВидимость = ИспользоватьНесколькоВидовНоменклатуры И РежимВидимостиПоказатьТолькоВажные; + ВидНоменклатурыПереключательОбязательныеПоляВидимость = Не ИспользоватьНесколькоВидовНоменклатуры И РежимВидимостиПоказатьТолькоВажные; + ТипНоменклатурыВидимость = ИспользоватьНесколькоВидовНоменклатуры И Не РежимВидимостиПоказатьТолькоВажные; + + ИспользованиеЭлементов.Вставить("ВидНоменклатуры", ВидНоменклатурыВидимость); + ИспользованиеЭлементов.Вставить("ВидНоменклатурыПереключатель", ВидНоменклатурыПереключательВидимость); + ИспользованиеЭлементов.Вставить("ВидНоменклатурыОбязательныеПоля", ВидНоменклатурыОбязательныеПоляВидимость); + ИспользованиеЭлементов.Вставить("ВидНоменклатурыПереключательОбязательныеПоля", ВидНоменклатурыПереключательОбязательныеПоляВидимость); + ИспользованиеЭлементов.Вставить("ТипНоменклатуры", ТипНоменклатурыВидимость); + + ИспользованиеХарактеристикВидимость = ИспользованиеЭлементов.ИспользованиеХарактеристик + И Не РежимВидимостиПоказатьТолькоВажные; + + ИспользованиеЭлементов.Вставить("ИспользованиеХарактеристик", ИспользованиеХарактеристикВидимость); + + ГиперссылкаПерейтиХарактеристикиНоменклатурыВидимость = ИспользованиеХарактеристикВидимость + И ПравоДоступа("Просмотр", Метаданные.Справочники.ХарактеристикиНоменклатуры) + И Объект.ИспользованиеХарактеристик <> Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать; + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиХарактеристикиНоменклатуры", + ГиперссылкаПерейтиХарактеристикиНоменклатурыВидимость); + + НастройкаИспользованияСерийВидимость = ИспользоватьСерииНоменклатуры + И (ЭтоТовар + Или ЭтоМногооборотнаяТара) + И Не РежимВидимостиПоказатьТолькоВажные; + + ГиперссылкаПерейтиТоварыДругогоКачестваВидимость = ИспользованиеЭлементов.Качество + И ПравоДоступа("Просмотр", Метаданные.РегистрыСведений.ТоварыДругогоКачества) + И Не РежимВидимостиПоказатьТолькоВажные; + + ГиперссылкаПерейтиСтавкиНДСНоменклатуры = ИспользоватьУчетНДС + И ПравоДоступа("Просмотр", Метаданные.РегистрыСведений.СтавкиНДСНоменклатуры) + И Не РежимВидимостиПоказатьТолькоВажные; + + ИспользованиеЭлементов.Вставить("НастройкаИспользованияСерий", НастройкаИспользованияСерийВидимость); + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиСоставНабора", + ПравоДоступа("Просмотр", Метаданные.Справочники.ВариантыКомплектацииНоменклатуры) + И Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Набор + И Не РежимВидимостиПоказатьТолькоВажные); + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиТоварыДругогоКачества", + ГиперссылкаПерейтиТоварыДругогоКачестваВидимость); + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиСтавкиНДСНоменклатуры", + ГиперссылкаПерейтиСтавкиНДСНоменклатуры); + КонецЕсли; + + #КонецОбласти + + #Область ЕдиницыИзмеренияИУсловияХранения + ВидимостьНастроекУпаковок = ИспользованиеЭлементов.ИспользоватьУпаковки + И Объект.ИспользоватьУпаковки + И (Не РежимВидимостиПоказатьТолькоВажные + Или РежимПроверкиИспользованияРеквизитов); + + ЕдиницаДляОтчетовВидимость = ИспользованиеЭлементов.ЕдиницаДляОтчетов + И (РежимПроверкиИспользованияРеквизитов + Или Не РежимВидимостиПоказатьТолькоВажные + И ПравоДоступа("Просмотр", Метаданные.Справочники.Номенклатура.Реквизиты.ЕдиницаДляОтчетов) + И ПравоДоступаНаОбъектМетаданныхПоРеквизиту("Просмотр", + Метаданные.Справочники.Номенклатура.Реквизиты.ЕдиницаДляОтчетов)); + + КоэффициентЕдиницыДляОтчетовВидимость = ЕдиницаДляОтчетовВидимость + И ЗначениеЗаполнено(Объект.ЕдиницаДляОтчетов) + И Объект.ЕдиницаДляОтчетов <> Объект.ЕдиницаИзмерения + И (Не РежимВидимостиПоказатьТолькоВажные + Или РежимПроверкиИспользованияРеквизитов); + + ИспользованиеЭлементов.Вставить("ЕдиницаДляОтчетов", ЕдиницаДляОтчетовВидимость); + ИспользованиеЭлементов.Вставить("КоэффициентЕдиницыДляОтчетов", КоэффициентЕдиницыДляОтчетовВидимость); + ИспользованиеЭлементов.Вставить("ЕдиницаИзмеренияСрокаГодности", ИспользованиеЭлементов.СрокГодности); + ИспользованиеЭлементов.Вставить("НаборУпаковок", ВидимостьНастроекУпаковок + И (Объект.НаборУпаковок <> Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры + Или РежимПроверкиИспользованияРеквизитов)); + + ПоставляетсяВМногооборотнойТареВидимость = ИспользоватьМногооборотнуюТару + И ЭтоТовар + И ЗначениеЗаполнено(Объект.ЕдиницаИзмерения) + И Не Объект.ИспользоватьУпаковки + И Не Справочники.УпаковкиЕдиницыИзмерения.ЭтоМернаяЕдиница(Объект.ЕдиницаИзмерения) + И (РежимПроверкиИспользованияРеквизитов + Или Не РежимВидимостиПоказатьТолькоВажные + И ПравоДоступа("Просмотр", Метаданные.Справочники.Номенклатура.Реквизиты.ПоставляетсяВМногооборотнойТаре)); + + НоменклатураМногооборотнаяТараВидимость = ПоставляетсяВМногооборотнойТареВидимость + И Объект.ПоставляетсяВМногооборотнойТаре; + + ХарактеристикаМногооборотнаяТараВидимость = НоменклатураМногооборотнаяТараВидимость + И ЗначениеЗаполнено(Объект.НоменклатураМногооборотнаяТара) + И ХарактеристикиИспользуются(Объект.НоменклатураМногооборотнаяТара); + + ИспользованиеЭлементов.Вставить("ПоставляетсяВМногооборотнойТаре", ПоставляетсяВМногооборотнойТареВидимость); + ИспользованиеЭлементов.Вставить("НоменклатураМногооборотнаяТара", НоменклатураМногооборотнаяТараВидимость); + ИспользованиеЭлементов.Вставить("ХарактеристикаМногооборотнаяТара", ХарактеристикаМногооборотнаяТараВидимость); + + Если Не РежимПроверкиИспользованияРеквизитов Тогда + + НастройкиОбщегоНабораУпаковокВидимость = ВидимостьНастроекУпаковок + И Объект.НаборУпаковок <> Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры; + + // Реквизиты с настройкой видимости по интерфейсу и зависящие от связанных полей. + ИспользованиеЭлементов.Вставить("НаборУпаковокОбщий", НастройкиОбщегоНабораУпаковокВидимость + И ПравоДоступа("Просмотр", Метаданные.Справочники.Номенклатура.Реквизиты.НаборУпаковок) + И ПравоДоступаНаОбъектМетаданныхПоРеквизиту("Просмотр", Метаданные.Справочники.Номенклатура.Реквизиты.НаборУпаковок)); + + ЕдиницаДляОтчетовЕдиницаИзмеренияНадписьВидимость = КоэффициентЕдиницыДляОтчетовВидимость + И Объект.ЕдиницаДляОтчетов <> Объект.ЕдиницаИзмерения + И Не РежимВидимостиПоказатьТолькоВажные; + ИспользованиеЭлементов.Вставить("ЕдиницаДляОтчетовЕдиницаИзмеренияНадпись", ЕдиницаДляОтчетовЕдиницаИзмеренияНадписьВидимость); + + ТараОтступВидимость = ПоставляетсяВМногооборотнойТареВидимость + И Объект.ПоставляетсяВМногооборотнойТаре; + ИспользованиеЭлементов.Вставить("ТараОтступ", ТараОтступВидимость); + + ГиперссылкаПерейтиРазмещениеНоменклатурыВидимость = + (ЭтоТовар + Или ЭтоМногооборотнаяТара) + И Не РежимВидимостиПоказатьТолькоВажные + И ИспользоватьАдресноеХранениеСправочно + И ПравоДоступа("Просмотр", Метаданные.РегистрыСведений.РазмещениеНоменклатурыПоСкладскимЯчейкам); + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиРазмещениеНоменклатуры", + ГиперссылкаПерейтиРазмещениеНоменклатурыВидимость); + + ГиперссылкаПерейтиУпаковкиНоменклатурыВидимость = ВидимостьНастроекУпаковок + И Объект.НаборУпаковок = Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры + И ПравоДоступа("Просмотр", Метаданные.Справочники.УпаковкиЕдиницыИзмерения); + + ГиперссылкаПерейтиПрогнозыРасходаУпаковокВидимость = ВидимостьНастроекУпаковок + И ИспользоватьПрогнозРасходаУпаковок + И ПравоДоступа("Просмотр", Метаданные.Справочники.УпаковкиЕдиницыИзмерения) + И ПравоДоступа("Просмотр", Метаданные.РегистрыСведений.ПрогнозыРасходаУпаковок) + И ПравоДоступа("Просмотр", Метаданные.РегистрыСведений.НастройкиАдресныхСкладов); + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиУпаковкиНабора", НастройкиОбщегоНабораУпаковокВидимость + И ПравоДоступа("Просмотр", Метаданные.Справочники.УпаковкиЕдиницыИзмерения)); + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиУпаковкиНоменклатуры", ГиперссылкаПерейтиУпаковкиНоменклатурыВидимость); + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиПрогнозыРасходаУпаковок", + ГиперссылкаПерейтиПрогнозыРасходаУпаковокВидимость); + + ИспользованиеЭлементов.Вставить("НаборУпаковокОтступ", ВидимостьНастроекУпаковок); + ИспользованиеЭлементов.Вставить("ИспользованиеУпаковокИндивидуальныйНабор", ВидимостьНастроекУпаковок); + ИспользованиеЭлементов.Вставить("ИспользованиеУпаковокОбщийНабор", ВидимостьНастроекУпаковок); + КонецЕсли; + + #КонецОбласти + + #Область ФинансовыйУчет + + Если Не РежимПроверкиИспользованияРеквизитов Тогда + ГиперссылкаПерейтиРаспределениеПродажПоНаправлениямДеятельности = + (ЭтоТовар + Или ЭтоМногооборотнаяТара + Или ЭтоУслуга + Или ЭтоРабота) + И ФормироватьФинансовыйРезультат + И ПравоДоступа("Просмотр", Метаданные.РегистрыСведений.НастройкаРаспределенияПоНаправлениямДеятельности) + И Не РежимВидимостиПоказатьТолькоВажные; + + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиРаспределениеПродажПоНаправлениямДеятельности", + ГиперссылкаПерейтиРаспределениеПродажПоНаправлениямДеятельности); + КонецЕсли; + + #КонецОбласти + + #Область ПрочиеЭлементы + Если Не РежимПроверкиИспользованияРеквизитов Тогда + ИспользованиеЭлементов.Вставить("ПроверитьУникальность", + РежимВидимостиПоказатьТолькоВажные + И Константы.КонтролироватьУникальностьНоменклатурыПоСочетаниюЗначенийРеквизитов.Получить() + И Не ЗначениеЗаполнено(Объект.Ссылка)); + КонецЕсли; + #КонецОбласти + + #Область Отчеты + + Если Не РежимПроверкиИспользованияРеквизитов Тогда + ИспользованиеЭлементов.Вставить("ВедомостьПоТоварамОрганизаций", (ЭтоТовар + Или ЭтоМногооборотнаяТара + Или ЭтоРабота) + И (ИспользоватьНесколькоОрганизаций + Или ИспользоватьКомиссиюПриЗакупках) + И ПравоДоступа("Просмотр", Метаданные.Отчеты.ВедомостьПоТоварамОрганизаций)); + + ИспользованиеЭлементов.Вставить("ВедомостьПоСериямНоменклатуры", (ЭтоТовар + Или ЭтоМногооборотнаяТара) + И РеквизитыВидаНоменклатуры.ИспользоватьСерии + И ПравоДоступа("Просмотр", Метаданные.Отчеты.ВедомостьПоСериямНоменклатуры)); + + ИспользованиеЭлементов.Вставить("ВедомостьПоТоварамНаСкладах", (ЭтоТовар + Или ЭтоМногооборотнаяТара) + И ПравоДоступа("Просмотр", Метаданные.Отчеты.ВедомостьПоТоварамНаСкладах)); + + ИспользованиеЭлементов.Вставить("ТоварыВЯчейках", (ЭтоТовар + Или ЭтоМногооборотнаяТара) + И ИспользоватьАдресноеХранение + И ПравоДоступа("Просмотр", Метаданные.Отчеты.ВедомостьПоТоварамНаСкладах)); + + ИспользованиеЭлементов.Вставить("ОстаткиИДоступностьТоваров", (ЭтоТовар + Или ЭтоМногооборотнаяТара) + И ПравоДоступа("Просмотр", Метаданные.Отчеты.ОстаткиИДоступностьТоваров)); + + ИспользованиеЭлементов.Вставить("ТоварыНаСкладахПоСрокамГодности", (ЭтоТовар + Или ЭтоМногооборотнаяТара) + И РеквизитыВидаНоменклатуры.ИспользоватьСерии + И РеквизитыВидаНоменклатуры.ИспользоватьСрокГодностиСерии + И ПравоДоступа("Просмотр", Метаданные.Отчеты.ТоварыНаСкладахПоСрокамГодности)); + + ИспользованиеЭлементов.Вставить("ВыручкаИСебестоимостьПродаж", + ПравоДоступа("Просмотр", Метаданные.Отчеты.ВыручкаИСебестоимостьПродаж)); + + ИспользованиеЭлементов.Вставить("СостояниеАссортимента", + ПравоДоступа("Просмотр", Метаданные.Отчеты.СостояниеАссортимента)); + КонецЕсли; + #КонецОбласти + + #Область ГруппаАкциза + + Если Не РежимПроверкиИспользованияРеквизитов Тогда + + Если ЭтоТовар Тогда + ТаблицаКатегорий = УчетПодакцизныхТоваров.ПодакцизныеКатегорииТовара(Объект.Ссылка); + ЕстьКатегория = ЗначениеЗаполнено(ТаблицаКатегорий) + И ЗначениеЗаполнено(ТаблицаКатегорий[0].КатегорияПодакцизногоТовара); + Если ЕстьКатегория Тогда + ЕстьИстория = Истина; + Иначе + ТаблицаИсторииКатегорий = УчетПодакцизныхТоваров.ПолучитьИсториюКатегорийНоменклатуры(Объект.Ссылка); + ЕстьИстория = + ЗначениеЗаполнено(ТаблицаИсторииКатегорий) + И (ЗначениеЗаполнено(ТаблицаИсторииКатегорий[0].КатегорияПодакцизногоТовара) + Или ТаблицаИсторииКатегорий.Количество() > 1); + КонецЕсли; + Иначе + ЕстьКатегория = Ложь; + ЕстьИстория = Ложь; + КонецЕсли; + + ИспользованиеЭлементов.Вставить("ГруппаКатегорий", ЭтоТовар И ИспользоватьПодакцизныеТовары); + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиТекущаяПодакцизнаяКатегорияНоменклатуры", ЭтоТовар + И ИспользоватьПодакцизныеТовары); + ИспользованиеЭлементов.Вставить("ГиперссылкаПерейтиПодакцизныеКатегорииНоменклатуры", ЭтоТовар + И ИспользоватьПодакцизныеТовары + И ЕстьИстория); + ИспользованиеЭлементов.Вставить("ГруппаОписаниеПодакцизнойКатегории", ЭтоТовар + И ИспользоватьПодакцизныеТовары + И ЕстьКатегория); + + КонецЕсли; + #КонецОбласти + + НоменклатураЛокализация.ИспользованиеЭлементов(ИспользованиеЭлементов, Объект, РежимВидимостиПоказатьТолькоВажные, РежимПроверкиИспользованияРеквизитов); + + Возврат ИспользованиеЭлементов; + +КонецФункции + +// Возвращает структуру с заголовками элементов. +// Параметры: +// Объект - СправочникОбъект.Номенклатура - элемент справочника номенклатуры +// СтруктураВидимостиЭлементов - Структура - структура видимости элементов. +// +// Возвращаемое значение: +// Структура - структура заголовков элементов, ключ - имя элемента, значения - заголовок, содержит: +// * ЕдиницаИзмерения - Строка +// * ГруппаАгентскиеУслуги - Строка +// * ДекорацияЗаголовокОбеспечение - Строка +// * ГиперссылкаПерейтиВариантыКомплектации - Строка +// * ГиперссылкаПерейтиТоварыДругогоКачества - Строка +// * ГиперссылкаПерейтиШтрихкодыНоменклатуры - Строка +// * ГиперссылкаПерейтиСоставНабора - Строка +// * ГиперссылкаПерейтиСоставНабораВнимание - Строка +// * ГиперссылкаПерейтиХарактеристикиНоменклатуры- Строка +// * ГиперссылкаПерейтиУпаковкиНоменклатуры - Строка +// * ГиперссылкаПерейтиУпаковкиНабора - Строка +// * ГиперссылкаПерейтиУпаковкиНоменклатурыВнимание - Строка +// * ГиперссылкаПерейтиУпаковкиНабораВнимание - Строка +// * ГиперссылкаПерейтиСертификатыНоменклатурыВнимание - Строка +// * ГиперссылкаПерейтиСертификатыНоменклатуры - Строка +// * ГиперссылкаПерейтиДрагоценныеМатериалы - Строка +// * ГиперссылкаПерейтиФайлы - Строка +// * ГиперссылкаПерейтиСегменты - Строка +// * ГиперссылкаПерейтиСоглашения - Строка +// * ГиперссылкаПерейтиСтавкиНДСНоменклатуры - Строка +// * ГиперссылкаПерейтиПодакцизныеКатегорииНоменклатуры - Строка +// * ГиперссылкаПерейтиТекущаяПодакцизнаяКатегорияНоменклатуры - Строка +// * ОписаниеПодакцизнойКатегории - Строка +// +Функция ЗаголовкиЭлементов(Объект, ВидимостьЭлементов) + + ЗаголовкиЭлементов = Новый Структура; + + #Область ПризнакиТипаНоменклатуры + + ЭтоТовар = (Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар); + ЭтоМногооборотнаяТара = (Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.МногооборотнаяТара); + ЭтоРабота = (Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Работа); + ЭтоУслуга = (Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Услуга); + ЭтоНабор = (Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Набор); + + #КонецОбласти + + ИспользуютсяХарактеристики = Объект.ИспользованиеХарактеристик <> Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать; + + ЗаголовкиЭлементов.Вставить("ЕдиницаИзмерения", ?(ЭтоТовар Или ЭтоМногооборотнаяТара, + НСтр("ru = 'Единица хранения'"), + НСтр("ru = 'Единица измерения'"))); + + Если ЭтоРабота Тогда + ЗаголовкиЭлементов.Вставить("ГруппаАгентскиеУслуги", НСтр("ru='Работа выполняется по агентскому договору'")); + Иначе + ЗаголовкиЭлементов.Вставить("ГруппаАгентскиеУслуги", НСтр("ru='Услуга реализуется по агентскому договору'")); + КонецЕсли; + + Если Не ПолучитьФункциональнуюОпцию("ИспользоватьПроизводство") Тогда + ЗаголовкиЭлементов.Вставить("ДекорацияЗаголовокОбеспечение", НСтр("ru='Обеспечение'")); + Иначе + ЗаголовкиЭлементов.Вставить("ДекорацияЗаголовокОбеспечение", НСтр("ru='Обеспечение и производство'")); + КонецЕсли; + + #Область ЗаголовкиГиперссылок + + КартинкаПредупреждение = БиблиотекаКартинок.ПредупреждениеСНачалаСтроки; + + ТекстыЗапроса = Новый СписокЗначений; + + Если РазделВиден("ГиперссылкаПерейтиТоварыДругогоКачества", ВидимостьЭлементов) Тогда + ТекстЗапроса = + "ВЫБРАТЬ + | ТоварыДругогоКачества.Номенклатура КАК Номенклатура, + | ТоварыДругогоКачества.НоменклатураБрак КАК НоменклатураБрак, + | ТоварыДругогоКачества.ГрадацияКачества КАК ГрадацияКачества + |ИЗ + | РегистрСведений.ТоварыДругогоКачества КАК ТоварыДругогоКачества + |ГДЕ + | ТоварыДругогоКачества.Номенклатура = &Номенклатура"; + ТекстыЗапроса.Добавить(ТекстЗапроса, "ГиперссылкаПерейтиТоварыДругогоКачества"); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиШтрихкодыНоменклатуры", ВидимостьЭлементов) Тогда + ТекстЗапроса = + "ВЫБРАТЬ + | ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод, + | ШтрихкодыНоменклатуры.Номенклатура КАК Номенклатура, + | ШтрихкодыНоменклатуры.Характеристика КАК Характеристика, + | ШтрихкодыНоменклатуры.Упаковка КАК Упаковка + |ИЗ + | РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры + |ГДЕ + | ШтрихкодыНоменклатуры.Номенклатура = &Номенклатура"; + ТекстыЗапроса.Добавить(ТекстЗапроса, "ГиперссылкаПерейтиШтрихкодыНоменклатуры"); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиСоставНабора", ВидимостьЭлементов) Тогда + ТекстЗапроса = + "ВЫБРАТЬ + | ВариантыКомплектацииНоменклатурыТовары.НомерСтроки КАК НомерСтроки + |ИЗ + | Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК ВариантыКомплектацииНоменклатурыТовары + |ГДЕ + | НЕ &ИспользуютсяХарактеристики + | И ВариантыКомплектацииНоменклатурыТовары.Ссылка = &ВариантКомплектацииНоменклатуры + | И НЕ ВариантыКомплектацииНоменклатурыТовары.Ссылка.ПометкаУдаления + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | ВариантыКомплектацииНоменклатуры.Ссылка КАК Ссылка + |ИЗ + | Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры + |ГДЕ + | &ИспользуютсяХарактеристики + | И ВариантыКомплектацииНоменклатуры.Владелец = &Номенклатура + | И НЕ ВариантыКомплектацииНоменклатуры.Ссылка.ПометкаУдаления"; + ТекстыЗапроса.Добавить(ТекстЗапроса, "ГиперссылкаПерейтиСоставНабора"); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиВариантыКомплектации", ВидимостьЭлементов) Тогда + ТекстЗапроса = + "ВЫБРАТЬ + | ВариантыКомплектацииНоменклатуры.Ссылка КАК Ссылка + |ИЗ + | Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры + |ГДЕ + | ВариантыКомплектацииНоменклатуры.Владелец = &Номенклатура + | И НЕ ВариантыКомплектацииНоменклатуры.ПометкаУдаления"; + ТекстыЗапроса.Добавить(ТекстЗапроса, "ГиперссылкаПерейтиВариантыКомплектации"); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиХарактеристикиНоменклатуры", ВидимостьЭлементов) Тогда + ТекстЗапроса = + "ВЫБРАТЬ + | ХарактеристикиНоменклатуры.Ссылка КАК Ссылка + |ИЗ + | Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры + |ГДЕ + | ХарактеристикиНоменклатуры.Владелец = &ВладелецХарактеристики + | И НЕ ХарактеристикиНоменклатуры.ПометкаУдаления"; + ТекстыЗапроса.Добавить(ТекстЗапроса, "ГиперссылкаПерейтиХарактеристикиНоменклатуры"); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиУпаковкиНоменклатуры", ВидимостьЭлементов) + Или РазделВиден("ГиперссылкаПерейтиУпаковкиНабора", ВидимостьЭлементов) Тогда + ТекстЗапроса = + "ВЫБРАТЬ + | УпаковкиЕдиницыИзмерения.Ссылка КАК Ссылка + |ИЗ + | Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиЕдиницыИзмерения + |ГДЕ + | УпаковкиЕдиницыИзмерения.Владелец = &ВладелецУпаковки + | И НЕ УпаковкиЕдиницыИзмерения.ПометкаУдаления"; + ТекстыЗапроса.Добавить(ТекстЗапроса, "ГиперссылкаПерейтиУпаковкиНоменклатурыИЛИГиперссылкаПерейтиУпаковкиНабора"); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиСертификатыНоменклатуры", ВидимостьЭлементов) Тогда + ТекстЗапроса = + "ВЫБРАТЬ + | ОбластиДействияСертификатовНоменклатуры.СертификатНоменклатуры КАК СертификатНоменклатуры + |ИЗ + | РегистрСведений.ОбластиДействияСертификатовНоменклатуры КАК ОбластиДействияСертификатовНоменклатуры + |ГДЕ + | ОбластиДействияСертификатовНоменклатуры.ВидНоменклатуры = &ВидНоменклатуры + | И (ОбластиДействияСертификатовНоменклатуры.Номенклатура = &Номенклатура + | ИЛИ ОбластиДействияСертификатовНоменклатуры.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) + | И НЕ ОбластиДействияСертификатовНоменклатуры.СертификатНоменклатуры.ПометкаУдаления + | И ОбластиДействияСертификатовНоменклатуры.СертификатНоменклатуры.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСертификатовНоменклатуры.Действующий)"; + ТекстыЗапроса.Добавить(ТекстЗапроса, "ГиперссылкаПерейтиСертификатыНоменклатуры"); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиФайлы", ВидимостьЭлементов) Тогда + ТекстЗапроса = + "ВЫБРАТЬ + | НоменклатураПрисоединенныеФайлы.Ссылка КАК Ссылка + |ИЗ + | Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы + |ГДЕ + | НоменклатураПрисоединенныеФайлы.ВладелецФайла = &Номенклатура + | И НЕ НоменклатураПрисоединенныеФайлы.ПометкаУдаления"; + ТекстыЗапроса.Добавить(ТекстЗапроса, "ГиперссылкаПерейтиФайлы"); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиСегменты", ВидимостьЭлементов) Тогда + ТекстЗапроса = + "ВЫБРАТЬ РАЗЛИЧНЫЕ + | НоменклатураСегмента.Сегмент КАК Сегмент + |ИЗ + | РегистрСведений.НоменклатураСегмента КАК НоменклатураСегмента + |ГДЕ + | НоменклатураСегмента.Номенклатура = &Номенклатура"; + ТекстыЗапроса.Добавить(ТекстЗапроса, "ГиперссылкаПерейтиСегменты"); + + ТекстЗапроса = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | СегментыНоменклатуры.Ссылка КАК Сегмент, + | СегментыНоменклатуры.Ответственный КАК Ответственный, + | СегментыНоменклатуры.СпособФормирования КАК СпособФормирования + |ИЗ + | Справочник.СегментыНоменклатуры КАК СегментыНоменклатуры + |ГДЕ + | НЕ СегментыНоменклатуры.ЭтоГруппа + | И НЕ СегментыНоменклатуры.ПометкаУдаления + | И СегментыНоменклатуры.СпособФормирования = ЗНАЧЕНИЕ(Перечисление.СпособыФормированияСегментов.ФормироватьДинамически)"; + ТекстыЗапроса.Добавить(ТекстЗапроса, "ГиперссылкаПерейтиСегментыФормироватьДинамически"); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиСоглашения", ВидимостьЭлементов) Тогда + + ТекстЗапроса = + "ВЫБРАТЬ + | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СоглашенияСПоставщиками.Ссылка) КАК КоличествоСоглашений + |ПОМЕСТИТЬ КоличествоСоглашенийУслуги + |ИЗ + | Справочник.СоглашенияСПоставщиками КАК СоглашенияСПоставщиками + |ГДЕ + | НЕ &ИспользуютсяХарактеристики + | И СоглашенияСПоставщиками.Партнер = &Партнер + | И (СоглашенияСПоставщиками.Контрагент = &Контрагент + | ИЛИ (НЕ &ИспользуютсяКонтрагенты + | ИЛИ СоглашенияСПоставщиками.Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка))) + | И СоглашенияСПоставщиками.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Действует) + | И СоглашенияСПоставщиками.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОказаниеАгентскихУслуг) + | И (СоглашенияСПоставщиками.ДатаНачалаДействия = ДАТАВРЕМЯ(1, 1, 1) + | ИЛИ СоглашенияСПоставщиками.ДатаНачалаДействия <= &ТекущаяДата) + | И (СоглашенияСПоставщиками.ДатаОкончанияДействия = ДАТАВРЕМЯ(1, 1, 1) + | ИЛИ СоглашенияСПоставщиками.ДатаОкончанияДействия >= &ТекущаяДата) + | + |ИМЕЮЩИЕ + | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СоглашенияСПоставщиками.Ссылка) > 0"; + + ТекстыЗапроса.Добавить(ТекстЗапроса, "КоличествоСоглашенийУслуги"); + + ТекстЗапроса = + "ВЫБРАТЬ РАЗЛИЧНЫЕ + | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СоглашенияСПоставщиками.Ссылка) КАК КоличествоСоглашений, + | МАКСИМУМ(НЕ ТЧАгентскиеУслуги.Ссылка ЕСТЬ NULL + | ИЛИ НЕ СоглашенияСПоставщиками.ИспользоватьУказанныеАгентскиеУслуги) КАК ЕстьСоглашенияПоНоменклатуре + |ПОМЕСТИТЬ СоглашенияУслуги + |ИЗ + | Справочник.СоглашенияСПоставщиками КАК СоглашенияСПоставщиками + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СоглашенияСПоставщиками.АгентскиеУслуги КАК ТЧАгентскиеУслуги + | ПО СоглашенияСПоставщиками.Ссылка = ТЧАгентскиеУслуги.Ссылка + | И ТЧАгентскиеУслуги.Номенклатура = &Номенклатура + |ГДЕ + | НЕ &ИспользуютсяХарактеристики + | И СоглашенияСПоставщиками.Партнер = &Партнер + | И (СоглашенияСПоставщиками.Контрагент = &Контрагент + | ИЛИ (НЕ &ИспользуютсяКонтрагенты + | ИЛИ СоглашенияСПоставщиками.Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка))) + | И СоглашенияСПоставщиками.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Действует) + | И СоглашенияСПоставщиками.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОказаниеАгентскихУслуг) + | И (СоглашенияСПоставщиками.ДатаНачалаДействия = ДАТАВРЕМЯ(1, 1, 1) + | ИЛИ СоглашенияСПоставщиками.ДатаНачалаДействия <= &ТекущаяДата) + | И (СоглашенияСПоставщиками.ДатаОкончанияДействия = ДАТАВРЕМЯ(1, 1, 1) + | ИЛИ СоглашенияСПоставщиками.ДатаОкончанияДействия >= &ТекущаяДата) + | И (НЕ ТЧАгентскиеУслуги.Ссылка ЕСТЬ NULL + | ИЛИ НЕ СоглашенияСПоставщиками.ИспользоватьУказанныеАгентскиеУслуги) + | + |ИМЕЮЩИЕ + | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СоглашенияСПоставщиками.Ссылка) > 0"; + + ТекстыЗапроса.Добавить(ТекстЗапроса, "СоглашенияУслуги"); + + ТекстЗапроса = + "ВЫБРАТЬ + | ЕСТЬNULL(СоглашенияУслуги.КоличествоСоглашений, КоличествоСоглашенийУслуги.КоличествоСоглашений) КАК КоличествоСоглашений, + | ЕСТЬNULL(СоглашенияУслуги.ЕстьСоглашенияПоНоменклатуре, ЛОЖЬ) КАК ЕстьСоглашенияПоНоменклатуре + |ИЗ + | КоличествоСоглашенийУслуги КАК КоличествоСоглашенийУслуги + | ПОЛНОЕ СОЕДИНЕНИЕ СоглашенияУслуги КАК СоглашенияУслуги + | ПО ИСТИНА"; + + ТекстыЗапроса.Добавить(ТекстЗапроса, "ГиперссылкаПерейтиСоглашенияНеИспользуютсяХарактеристики"); + + ТекстЗапроса = + "ВЫБРАТЬ + | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СоглашенияСПоставщиками.Ссылка) КАК КоличествоСоглашений, + | ЕСТЬNULL(МАКСИМУМ(НЕ ТЧАгентскиеУслуги.Ссылка ЕСТЬ NULL + | ИЛИ НЕ СоглашенияСПоставщиками.ИспользоватьУказанныеАгентскиеУслуги), + | ЛОЖЬ) КАК ЕстьСоглашенияПоНоменклатуре + |ИЗ + | Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СоглашенияСПоставщиками КАК СоглашенияСПоставщиками + | ПО ХарактеристикиНоменклатуры.Принципал = СоглашенияСПоставщиками.Партнер + | И (ХарактеристикиНоменклатуры.Контрагент = СоглашенияСПоставщиками.Контрагент + | ИЛИ СоглашенияСПоставщиками.Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)) + | + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СоглашенияСПоставщиками.АгентскиеУслуги КАК ТЧАгентскиеУслуги + | ПО СоглашенияСПоставщиками.Ссылка = ТЧАгентскиеУслуги.Ссылка + | И ТЧАгентскиеУслуги.Номенклатура = &Номенклатура + | И ТЧАгентскиеУслуги.Характеристика = ХарактеристикиНоменклатуры.Ссылка + |ГДЕ + | &ИспользуютсяХарактеристики + | И ЕСТЬNULL(ХарактеристикиНоменклатуры.Владелец, НЕОПРЕДЕЛЕНО) = &ВладелецХарактеристики + | И НЕ ЕСТЬNULL(ХарактеристикиНоменклатуры.ПометкаУдаления, ЛОЖЬ) + | И СоглашенияСПоставщиками.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Действует) + | И СоглашенияСПоставщиками.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОказаниеАгентскихУслуг) + | И (СоглашенияСПоставщиками.ДатаНачалаДействия = ДАТАВРЕМЯ(1, 1, 1) + | ИЛИ СоглашенияСПоставщиками.ДатаНачалаДействия <= &ТекущаяДата) + | И (СоглашенияСПоставщиками.ДатаОкончанияДействия = ДАТАВРЕМЯ(1, 1, 1) + | ИЛИ СоглашенияСПоставщиками.ДатаОкончанияДействия >= &ТекущаяДата) + | И (НЕ ТЧАгентскиеУслуги.Ссылка ЕСТЬ NULL + | ИЛИ НЕ СоглашенияСПоставщиками.ИспользоватьУказанныеАгентскиеУслуги)"; + + ТекстыЗапроса.Добавить(ТекстЗапроса, "ГиперссылкаПерейтиСоглашенияИспользуютсяХарактеристики"); + + КонецЕсли; + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("Номенклатура", Объект.Ссылка); + Запрос.УстановитьПараметр("Партнер", Объект.Принципал); + Запрос.УстановитьПараметр("Контрагент", Объект.Контрагент); + Запрос.УстановитьПараметр("ИспользуютсяКонтрагенты", ЗначениеЗаполнено(Объект.Контрагент)); + Запрос.УстановитьПараметр("ВидНоменклатуры", Объект.ВидНоменклатуры); + Запрос.УстановитьПараметр("ТекущаяДата", НачалоДня(ТекущаяДатаСеанса())); + Запрос.УстановитьПараметр("ИспользуютсяХарактеристики", ИспользуютсяХарактеристики); + + Если РазделВиден("ГиперссылкаПерейтиСоставНабора", ВидимостьЭлементов) Тогда + ВариантКомплектацииНоменклатуры = НаборыВызовСервера.ВариантКомплектацииНоменклатурыПоУмолчанию( + Объект.Ссылка, + Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка()); + Запрос.УстановитьПараметр("ВариантКомплектацииНоменклатуры", ВариантКомплектацииНоменклатуры); + Иначе + Запрос.УстановитьПараметр("ВариантКомплектацииНоменклатуры", Справочники.ВариантыКомплектацииНоменклатуры.ПустаяСсылка()); + КонецЕсли; + + Запрос.УстановитьПараметр("ВариантКомплектацииНоменклатуры", ВариантКомплектацииНоменклатуры); + + Если Объект.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры Тогда + ВладелецХарактеристики = Объект.Ссылка; + ИначеЕсли Объект.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры Тогда + ВладелецХарактеристики = Объект.ВидНоменклатуры; + ИначеЕсли Объект.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры Тогда + ВладелецХарактеристики = Объект.ВладелецХарактеристик; + КонецЕсли; + Запрос.УстановитьПараметр("ВладелецХарактеристики", ВладелецХарактеристики); + + Если Объект.НаборУпаковок = Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры Тогда + ВладелецУпаковки = Объект.Ссылка; + Иначе + ВладелецУпаковки = Объект.НаборУпаковок; + КонецЕсли; + Запрос.УстановитьПараметр("ВладелецУпаковки", ВладелецУпаковки); + + УстановитьПривилегированныйРежим(Истина); + Таблицы = ОбщегоНазначенияУТ.ВыгрузитьРезультатыЗапроса(Запрос, ТекстыЗапроса,,Истина); + УстановитьПривилегированныйРежим(Ложь); + + Если РазделВиден("ГиперссылкаПерейтиТоварыДругогоКачества", ВидимостьЭлементов) Тогда + Количество = Таблицы.ГиперссылкаПерейтиТоварыДругогоКачества.Количество(); + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(НСтр("ru = 'Товары другого качества'") + + " (" + Количество + ")",,,,"ТоварыДругогоКачестваКоличество"); + ЗаголовкиЭлементов.Вставить("ГиперссылкаПерейтиТоварыДругогоКачества", ЗаголовокГиперссылки); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами", ВидимостьЭлементов) Тогда + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(НСтр("ru = 'Номенклатура с аналогичными свойствами'"), + , + , + , + "НоменклатураСАналогичнымиСвойствами"); + ЗаголовкиЭлементов.Вставить("ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами", ЗаголовокГиперссылки); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиШтрихкодыНоменклатуры", ВидимостьЭлементов) Тогда + Количество = Таблицы.ГиперссылкаПерейтиШтрихкодыНоменклатуры.Количество(); + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(НСтр("ru = 'Штрихкоды'") + " (" + Количество + ")",,,,"ШтрихкодыНоменклатурыКоличество"); + ЗаголовкиЭлементов.Вставить("ГиперссылкаПерейтиШтрихкодыНоменклатуры", ЗаголовокГиперссылки); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиСоставНабора", ВидимостьЭлементов) Тогда + Количество = Таблицы.ГиперссылкаПерейтиСоставНабора.Количество(); + Если Количество <> 0 Тогда + ИмяГиперссылки = ?(ИспользуютсяХарактеристики, "НастроитьНабор", "СоставНабора"); + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(НСтр("ru = 'Состав набора'") + " (" + Количество + ")",,,,ИмяГиперссылки); + Иначе + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(Новый ФорматированнаяСтрока(НСтр("ru = 'Настроить набор'"),,,,"НастроитьНабор"), + Новый ФорматированнаяСтрока(" ", КартинкаПредупреждение)); + КонецЕсли; + ЗаголовкиЭлементов.Вставить("ГиперссылкаПерейтиСоставНабора", ЗаголовокГиперссылки); + ВидимостьЭлементов.Вставить("ГиперссылкаПерейтиСоставНабораВнимание", Количество = 0); + ИначеЕсли РазделВиден("ГиперссылкаПерейтиВариантыКомплектации", ВидимостьЭлементов) Тогда + Количество = Таблицы.ГиперссылкаПерейтиВариантыКомплектации.Количество(); + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(НСтр("ru = 'Варианты комплектации'") + " (" + Количество + ")",,,,"ВариантыКомплектации"); + ЗаголовкиЭлементов.Вставить("ГиперссылкаПерейтиВариантыКомплектации", ЗаголовокГиперссылки); + ВидимостьЭлементов.Вставить("ГиперссылкаПерейтиСоставНабораВнимание", Ложь); + Иначе + ВидимостьЭлементов.Вставить("ГиперссылкаПерейтиСоставНабораВнимание", Ложь); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиХарактеристикиНоменклатуры", ВидимостьЭлементов) Тогда + КоличествоХарактеристик = Таблицы.ГиперссылкаПерейтиХарактеристикиНоменклатуры.Количество(); + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(НСтр("ru = 'Список'") + " (" + КоличествоХарактеристик + ")",,,,"ХарактеристикиНоменклатуры"); + ЗаголовкиЭлементов.Вставить("ГиперссылкаПерейтиХарактеристикиНоменклатуры", ЗаголовокГиперссылки); + Иначе + КоличествоХарактеристик = 0; + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиУпаковкиНоменклатуры", ВидимостьЭлементов) + Или РазделВиден("ГиперссылкаПерейтиУпаковкиНабора", ВидимостьЭлементов) Тогда + Количество = Таблицы.ГиперссылкаПерейтиУпаковкиНоменклатурыИЛИГиперссылкаПерейтиУпаковкиНабора.Количество(); + Если Количество <> 0 Тогда + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(НСтр("ru = 'Список'") + " (" + Количество + ")",,,,"УпаковкиНоменклатуры"); + ВидимостьЭлементов.Вставить("ГиперссылкаПерейтиУпаковкиНоменклатурыВнимание", Ложь); + Иначе + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока( + Новый ФорматированнаяСтрока(НСтр("ru = 'Список'") + " (" + Количество + ")",,,,"УпаковкиНоменклатуры")); + ВидимостьЭлементов.Вставить("ГиперссылкаПерейтиУпаковкиНоменклатурыВнимание", + Объект.НаборУпаковок = Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры); + КонецЕсли; + ЗаголовкиЭлементов.Вставить("ГиперссылкаПерейтиУпаковкиНоменклатуры", ЗаголовокГиперссылки); + Если Количество <> 0 Тогда + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(НСтр("ru = 'Список'") + " (" + Количество + ")",,,,"УпаковкиНабора"); + ВидимостьЭлементов.Вставить("ГиперссылкаПерейтиУпаковкиНабораВнимание", Ложь); + Иначе + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока( + Новый ФорматированнаяСтрока(НСтр("ru = 'Список'") + " (" + Количество + ")",,,,"УпаковкиНабора")); + ВидимостьЭлементов.Вставить("ГиперссылкаПерейтиУпаковкиНабораВнимание", + Объект.НаборУпаковок <> Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры); + КонецЕсли; + ЗаголовкиЭлементов.Вставить("ГиперссылкаПерейтиУпаковкиНабора", ЗаголовокГиперссылки); + Иначе + ВидимостьЭлементов.Вставить("ГиперссылкаПерейтиУпаковкиНоменклатурыВнимание", Ложь); + ВидимостьЭлементов.Вставить("ГиперссылкаПерейтиУпаковкиНабораВнимание", Ложь); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиСертификатыНоменклатуры", ВидимостьЭлементов) Тогда + Количество = Таблицы.ГиперссылкаПерейтиСертификатыНоменклатуры.Количество(); + Если Количество <> 0 Тогда + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(НСтр("ru = 'Список'") + " (" + Количество + ")",,,,"СертификатыНоменклатуры"); + ВидимостьЭлементов.Вставить("ГиперссылкаПерейтиСертификатыНоменклатурыВнимание", Ложь); + Иначе + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока( + Новый ФорматированнаяСтрока(НСтр("ru = 'Список'") + " (" + Количество + ")",,,,"СертификатыНоменклатуры")); + ВидимостьЭлементов.Вставить("ГиперссылкаПерейтиСертификатыНоменклатурыВнимание", Истина); + КонецЕсли; + ЗаголовкиЭлементов.Вставить("ГиперссылкаПерейтиСертификатыНоменклатуры", ЗаголовокГиперссылки); + Иначе + ВидимостьЭлементов.Вставить("ГиперссылкаПерейтиСертификатыНоменклатурыВнимание", Ложь); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиДрагоценныеМатериалы", ВидимостьЭлементов) Тогда + Количество = Объект.ДрагоценныеМатериалы.Количество(); + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(НСтр("ru = 'Содержание драгоценных материалов'") + + " (" + Количество + ")",,,,"ДрагоценныеМатериалы"); + ЗаголовкиЭлементов.Вставить("ГиперссылкаПерейтиДрагоценныеМатериалы", ЗаголовокГиперссылки); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиФайлы", ВидимостьЭлементов) Тогда + Количество = Таблицы.ГиперссылкаПерейтиФайлы.Количество(); + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(НСтр("ru = 'Файлы'") + " (" + Количество + ")",,,,"Файлы"); + ЗаголовкиЭлементов.Вставить("ГиперссылкаПерейтиФайлы", ЗаголовокГиперссылки); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиСегменты", ВидимостьЭлементов) Тогда + Сегменты = Таблицы.ГиперссылкаПерейтиСегменты.ВыгрузитьКолонку("Сегмент"); + + ЕстьДинамическиеСегменты = Таблицы.ГиперссылкаПерейтиСегментыФормироватьДинамически.Количество() > 0; + ТекстДинамическиеСегменты = ?(ЕстьДинамическиеСегменты, НСтр("ru = ', без учета формируемых динамически'"), ""); + + Количество = Сегменты.Количество(); + Если Количество = 1 Тогда + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(НСтр("ru = 'Сегмент'") + " " + Сегменты[0] + ТекстДинамическиеСегменты,,,,"Сегменты"); + Иначе + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(НСтр("ru = 'Сегменты'") + " (" + Количество + ТекстДинамическиеСегменты + ")",,,,"Сегменты"); + КонецЕсли; + ЗаголовкиЭлементов.Вставить("ГиперссылкаПерейтиСегменты", ЗаголовокГиперссылки); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиСоглашения", ВидимостьЭлементов) Тогда + + ТаблицаПоСоглашениям = ?(ИспользуютсяХарактеристики, + Таблицы.ГиперссылкаПерейтиСоглашенияИспользуютсяХарактеристики, + Таблицы.ГиперссылкаПерейтиСоглашенияНеИспользуютсяХарактеристики); + КоличествоСоглашений = ?(ТаблицаПоСоглашениям.Количество() > 0, + ТаблицаПоСоглашениям[0].КоличествоСоглашений, + 0); + ЕстьСоглашенияПоНоменклатуре = ?(ТаблицаПоСоглашениям.Количество() > 0, + ТаблицаПоСоглашениям[0].ЕстьСоглашенияПоНоменклатуре, + Ложь); + + Если ПравоДоступа("Добавление", Метаданные.Справочники.СоглашенияСПоставщиками) Тогда + + Если КоличествоСоглашений = 0 + И Не ЕстьСоглашенияПоНоменклатуре Тогда + + Если ИспользуютсяХарактеристики Тогда + СтрокаЗаголовкаГиперссылки = НСтр("ru = 'Характеристики не выбраны в соглашениях'"); + ГиперссылкаСоглашения = "СписокСоглашенийПоХарактеристикам"; + Иначе + СтрокаЗаголовкаГиперссылки = НСтр("ru = 'Создать соглашение'"); + ГиперссылкаСоглашения = "СоглашенияСоздать"; + КонецЕсли; + + Иначе + + Если ЕстьСоглашенияПоНоменклатуре Тогда + + СтрокаСоглашений = СтрокаСЧислом(";%1 соглашении;;%1 соглашениях;%1 соглашениях;%1 соглашениях", + КоличествоСоглашений, + ВидЧисловогоЗначения.Количественное, + "L=ru"); + + СтрокаЗаголовкаГиперссылки = НСтр("ru = 'Выбрана в %КоличествоСоглашений%'"); + СтрокаЗаголовкаГиперссылки = СтрЗаменить(СтрокаЗаголовкаГиперссылки, "%КоличествоСоглашений%", СтрокаСоглашений); + Иначе + СтрокаЗаголовкаГиперссылки = НСтр("ru = 'Выбрать в существующем соглашении'"); + КонецЕсли; + + Если ИспользуютсяХарактеристики Тогда + ГиперссылкаСоглашения = "СписокСоглашенийПоХарактеристикам"; + Иначе + ГиперссылкаСоглашения = ?(ЕстьСоглашенияПоНоменклатуре, "СписокСоглашенийПоНоменклатуре", "СоглашенияВыбрать"); + КонецЕсли; + + КонецЕсли; + + Иначе + + Если КоличествоСоглашений = 0 Тогда + Если ИспользуютсяХарактеристики Тогда + СтрокаЗаголовкаГиперссылки = НСтр("ru = 'Характеристики не выбраны в соглашениях'"); + Иначе + СтрокаЗаголовкаГиперссылки = НСтр("ru = 'Не выбрана в соглашениях'"); + КонецЕсли; + Иначе + СтрокаСоглашений = СтрокаСЧислом(";%1 соглашении;;%1 соглашениях;%1 соглашениях;%1 соглашениях", + КоличествоСоглашений, + ВидЧисловогоЗначения.Количественное, + "L=ru"); + + СтрокаЗаголовкаГиперссылки = НСтр("ru = 'Выбрана в %КоличествоСоглашений%'"); + СтрокаЗаголовкаГиперссылки = СтрЗаменить(СтрокаЗаголовкаГиперссылки, "%КоличествоСоглашений%", СтрокаСоглашений); + КонецЕсли; + + Если ИспользуютсяХарактеристики Тогда + ГиперссылкаСоглашения = "СписокСоглашенийПоХарактеристикам"; + Иначе + ГиперссылкаСоглашения = "СписокСоглашенийПоНоменклатуре"; + КонецЕсли; + + КонецЕсли; + + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(СтрокаЗаголовкаГиперссылки, , , , ГиперссылкаСоглашения); + + ЗаголовокСоглашения = Новый Структура; + ЗаголовокСоглашения.Вставить("Заголовок", ЗаголовокГиперссылки); + ЗаголовокСоглашения.Вставить("Гиперссылка", ГиперссылкаСоглашения); + + ЗаголовкиЭлементов.Вставить("ГиперссылкаПерейтиСоглашения", ЗаголовокСоглашения); + + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиСтавкиНДСНоменклатуры", ВидимостьЭлементов) Тогда + + Количество = 0; + Если ЗначениеЗаполнено(Объект.Ссылка) Тогда + ТаблицаСтавокНДС = РегистрыСведений.СтавкиНДСНоменклатуры.ТаблицаСтавокНДСНоменклатуры(Объект.Ссылка); + Количество = ТаблицаСтавокНДС.Количество(); + КонецЕсли; + + ТекстЗаголовка = НСтр("ru='Все ставки (%1)'"); + ТекстЗаголовка = СтрЗаменить(ТекстЗаголовка, "%1", Количество); + + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(ТекстЗаголовка, , , , "СтавкиНДСНоменклатуры"); + + ЗаголовкиЭлементов.Вставить("ГиперссылкаПерейтиСтавкиНДСНоменклатуры", ЗаголовокГиперссылки); + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиПодакцизныеКатегорииНоменклатуры", ВидимостьЭлементов) Тогда + + ТекстЗаголовка = ""; + Количество = 0; + Если ЗначениеЗаполнено(Объект.Ссылка) Тогда + ТаблицаАкцизов = УчетПодакцизныхТоваров.ПолучитьИсториюКатегорийНоменклатуры(Объект.Ссылка); + Количество = ТаблицаАкцизов.Количество(); + КонецЕсли; + Если Количество > 0 Тогда + ТекстЗаголовка = НСтр("ru='История категорий (%1)'"); + ТекстЗаголовка = СтрЗаменить(ТекстЗаголовка, "%1", Количество); + КонецЕсли; + + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(ТекстЗаголовка, , , , "КатегорииПодакцизныхТоваров"); + + ЗаголовкиЭлементов.Вставить("ГиперссылкаПерейтиПодакцизныеКатегорииНоменклатуры", ЗаголовокГиперссылки); + + КонецЕсли; + + Если РазделВиден("ГиперссылкаПерейтиТекущаяПодакцизнаяКатегорияНоменклатуры", ВидимостьЭлементов) Тогда + + Количество = 0; + ТекстЗаголовкаОписания = ""; + Если ЗначениеЗаполнено(Объект.Ссылка) Тогда + ТаблицаКатегорий = УчетПодакцизныхТоваров.ПодакцизныеКатегорииТовара(Объект.Ссылка); + Количество = ТаблицаКатегорий.Количество(); + КонецЕсли; + + Если Количество = 0 Тогда + ТекстЗаголовка = НСтр("ru = '<Неподакцизный товар>'"); + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(ТекстЗаголовка, , , , "НоваяКатегорияНоменклатуры"); + ИначеЕсли Не ЗначениеЗаполнено(ТаблицаКатегорий[0].КатегорияПодакцизногоТовара) Тогда + Если ПолучитьФункциональнуюОпцию("БазоваяВерсия") Тогда + ТекстЗаголовка = НСтр("ru = '<Подакцизный товар>'"); + Иначе + ТекстЗаголовка = НСтр("ru = '<Подакцизный товар. Указать категорию>'"); + КонецЕсли; + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(ТекстЗаголовка, , , , "НоваяКатегорияНоменклатуры"); + ИначеЕсли Количество = 1 Тогда + ТекстЗаголовка = Строка(ТаблицаКатегорий[0].КатегорияПодакцизногоТовара); + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(ТекстЗаголовка, , , , "ТекущаяПодакцизнаяКатегорияНоменклатуры"); + Если ТаблицаКатегорий[0].ТипСтавки = Перечисления.ТипыСтавокПодакцизнойКатегории.Твердая Тогда + ТекстЗаголовкаОписания = Строка(ТаблицаКатегорий[0].Ставка) + " " + Строка(ТаблицаКатегорий[0].Валюта) + + " " + НСтр("ru = 'за'") + " " + Строка(ТаблицаКатегорий[0].ЕдиницаИзмерения); + ИначеЕсли ТаблицаКатегорий[0].ТипСтавки = Перечисления.ТипыСтавокПодакцизнойКатегории.Адвалорная Тогда + ТекстЗаголовкаОписания = НСтр("ru = 'Адвалорная ставка'"); + КонецЕсли; + Иначе + ТекстЗаголовка = НСтр("ru = 'Категории (%1)'"); + ТекстЗаголовка = СтрЗаменить(ТекстЗаголовка, "%1", Количество); + ЗаголовокГиперссылки = Новый ФорматированнаяСтрока(ТекстЗаголовка, , , , "ТекущаяПодакцизнаяКатегорияНоменклатуры"); + КонецЕсли; + + ЗаголовкиЭлементов.Вставить("ГиперссылкаПерейтиТекущаяПодакцизнаяКатегорияНоменклатуры", ЗаголовокГиперссылки); + ЗаголовкиЭлементов.Вставить("ОписаниеПодакцизнойКатегории", ТекстЗаголовкаОписания); + + КонецЕсли; + + #КонецОбласти + + НоменклатураЛокализация.ЗаголовкиЭлементов(ЗаголовкиЭлементов, Объект, ВидимостьЭлементов); + + Возврат ЗаголовкиЭлементов; + +КонецФункции + +// Параметры: +// ЭлементЗаголовок - Строка, ФорматированнаяСтрока - см. ЗаголовкиЭлементов +// - Структура - содержит - см. ЗаголовкиЭлементов: +// * Значение - Структура: +// ** Заголовок - Строка +// Возвращаемое значение: +// Строка - заголовок +// +Функция ЗаголовокГиперссылки(ЭлементЗаголовок) Экспорт + Если ТипЗнч(ЭлементЗаголовок.Значение) = Тип("Строка") + Или ТипЗнч(ЭлементЗаголовок.Значение) = Тип("ФорматированнаяСтрока") Тогда + Возврат ЭлементЗаголовок.Значение; + Иначе + Возврат ЭлементЗаголовок.Значение.Заголовок; + КонецЕсли; +КонецФункции + +Процедура ПереопределитьОбязательностьЗаполненияРеквизитовМеры(Объект, РеквизитыСПереопределеннойОбязательностьюЗаполнения, Мера) + + РеквизитыМеры = РеквизитыМеры(Мера); + + Если Объект = Неопределено Тогда + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить(РеквизитыМеры.Числитель, Ложь); + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить(РеквизитыМеры.Знаменатель, Ложь); + Иначе + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить(РеквизитыМеры.Числитель, Объект[РеквизитыМеры.Использовать]); + РеквизитыСПереопределеннойОбязательностьюЗаполнения.Вставить(РеквизитыМеры.Знаменатель, Объект[РеквизитыМеры.Использовать]); + КонецЕсли; + +КонецПроцедуры + +Процедура ЗависимостьРеквизитаМерыОтТипаНоменклатуры(ТаблицаРеквизитов, Реквизиты, ТипНоменклатуры, Мера) + + ЭтоТовар = (ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар); + ЭтоМногооборотнаяТара = (ТипНоменклатуры = Перечисления.ТипыНоменклатуры.МногооборотнаяТара); + + РеквизитыМеры = РеквизитыМеры(Мера); + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты[РеквизитыМеры.ЕдиницаИзмерения]; + НоваяСтрока.Использование = ЭтоТовар + Или ЭтоМногооборотнаяТара; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты[РеквизитыМеры.Знаменатель]; + НоваяСтрока.Использование = ЭтоТовар + Или ЭтоМногооборотнаяТара; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты[РеквизитыМеры.МожноУказыватьВДокументах]; + НоваяСтрока.Использование = ЭтоТовар + Или ЭтоМногооборотнаяТара; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты[РеквизитыМеры.Числитель]; + НоваяСтрока.Использование = ЭтоТовар + Или ЭтоМногооборотнаяТара; + + НоваяСтрока = ТаблицаРеквизитов.Добавить(); + НоваяСтрока.Реквизит = Реквизиты[РеквизитыМеры.Использовать]; + НоваяСтрока.Использование = ЭтоТовар + Или ЭтоМногооборотнаяТара; + +КонецПроцедуры + +Процедура ДобавитьЗначениеСвойства(ТаблицаСвойств, Свойства, Префикс, ИмяКолонки, Значение) + ИмяСвойства = СокрЛП(СтандартныеПодсистемыСервер.ПреобразоватьАдаптированноеНаименованиеКолонкиВСтроку(Сред(ИмяКолонки, СтрДлина(Префикс) + 1))); + Свойство = Свойства.Получить(ИмяСвойства); // ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения + Если Свойство <> Неопределено Тогда + НоваяСтрокаСвойств = ТаблицаСвойств.Добавить(); + НоваяСтрокаСвойств.Свойство = Свойство.Ссылка; + НоваяСтрокаСвойств.Значение = Значение; + КонецЕсли; +КонецПроцедуры + +Процедура ДополнитьВсеРеквизитыРеквизитамиФормы(ВсеРеквизиты) + + // Описание реквизита формы Штрихкод + ЗначениеСвойств = ЗначениеСвойствРеквизита(); + ЗначениеСвойств.Имя = "Штрихкод"; + ЗначениеСвойств.Использование = Истина; + ЗначениеСвойств.Представление = НСтр("ru = 'Штрихкод'"); + ЗначениеСвойств.ОбязательныйДляЗаполнения = Ложь; + ЗначениеСвойств.Тип = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(200, ДопустимаяДлина.Переменная)); + ЗначениеСвойств.ОбязательныйДляОтображенияПриСоздании = Истина; + ЗначениеСвойств.РекомендуемыйДляКонтроляУникальности = + Не ПолучитьФункциональнуюОпцию("ИспользоватьНеуникальныеШтрихкодыНоменклатуры"); + + ВсеРеквизиты.Вставить(ЗначениеСвойств.Имя, Новый ФиксированнаяСтруктура(ЗначениеСвойств)); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбновлениеИнформационнойБазы + +//++ Локализация + +// см. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления +// +Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт + + Обработчик = Обработчики.Добавить(); + Обработчик.Процедура = "Справочники.Номенклатура.ОбработатьДанныеДляПереходаНаНовуюВерсию"; + Обработчик.Версия = "11.5.27.26"; + Обработчик.РежимВыполнения = "Отложенно"; + Обработчик.Идентификатор = Новый УникальныйИдентификатор("1ca93838-ddb9-4d7f-a184-a7471d68255c"); + Обработчик.Многопоточный = Истина; + Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.Номенклатура.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; + Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; + + СписокОписаний = Новый Массив; + СписокОписаний.Добавить(НСтр("ru = 'Обновление справочника ""Номенклатура"":'")); + СписокОписаний.Добавить(НСтр("ru = '- замена код ОКВЭД2 с типом справочник Классификатор ОКВЭД2 на строка';")); + СписокОписаний.Добавить(НСтр("ru = '- очистка особенности учета для номенклатуры, подконтрольной государственным информационным системам';")); + + Обработчик.Комментарий = СтрСоединить(СписокОписаний, Символы.ПС); + Обработчик.Порядок = Перечисления.ПорядокОбработчиковОбновления.Некритичный; + + Читаемые = Новый Массив; + Читаемые.Добавить(Метаданные.Справочники.Номенклатура.ПолноеИмя()); + Обработчик.ЧитаемыеОбъекты = СтрСоединить(Читаемые, ","); + + Изменяемые = Новый Массив; + Изменяемые.Добавить(Метаданные.Справочники.Номенклатура.ПолноеИмя()); + Обработчик.ИзменяемыеОбъекты = СтрСоединить(Изменяемые, ","); + + Блокируемые = Новый Массив; + Блокируемые.Добавить(Метаданные.Справочники.Номенклатура.ПолноеИмя()); + Обработчик.БлокируемыеОбъекты = СтрСоединить(Блокируемые, ","); + +КонецПроцедуры + +// Параметры: +// Параметры - см. ОбновлениеИнформационнойБазы.ОсновныеПараметрыОтметкиКОбработке +// +Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт + + ПараметрыВыборки = Параметры.ПараметрыВыборки; + ПараметрыВыборки.ПолныеИменаОбъектов = ПустаяСсылка().Метаданные().ПолноеИмя(); + ПараметрыВыборки.СпособВыборки = ОбновлениеИнформационнойБазы.СпособВыборкиСсылки(); + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ РАЗЛИЧНЫЕ + | Номенклатура.Ссылка КАК Ссылка + |ИЗ + | Справочник.Номенклатура КАК Номенклатура + |ГДЕ + | НЕ Номенклатура.УдалитьКодОКВЭД2 = ЗНАЧЕНИЕ(Справочник.КлассификаторОКВЭД2.ПустаяСсылка) + | И НЕ Номенклатура.ЭтоГруппа + | И Номенклатура.КодОКВЭД2 = """" + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | Номенклатура.Ссылка КАК Ссылка + |ИЗ + | Справочник.Номенклатура КАК Номенклатура + |ГДЕ + | Номенклатура.ОсобенностьУчета В (&ОсобенностиУчета)"; + + Запрос.УстановитьПараметр("ОсобенностиУчета", ИнтеграцияИСУТ.ОсобенностиУчетаИС()); + + ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка")); + +КонецПроцедуры + +// Обработчик обновления +// +// Параметры: +// Параметры - См. ОбновлениеИнформационнойБазы.ДополнительныеПараметрыВыборкиДанныхДляМногопоточнойОбработки +// +Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт + + Параметры.ОбработкаЗавершена = Ложь; + + ПолноеИмяОбъекта = ПустаяСсылка().Метаданные().ПолноеИмя(); + + ОбновляемыеДанные = ОбновлениеИнформационнойБазы.ДанныеДляОбновленияВМногопоточномОбработчике(Параметры); + + Если ОбновляемыеДанные.Количество() = 0 Тогда + + Параметры.ОбработкаЗавершена = + ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, ПолноеИмяОбъекта); + Возврат; + + КонецЕсли; + + ОбъектовОбработано = 0; + ПроблемныхОбъектов = 0; + ИсключенияПриОбновлении = Новый Массив; + + СписокОписаний = Новый Массив; + СписокОписаний.Добавить(НСтр("ru = 'Не удалось обработать справочник ""Номенклатура"" по обработчику:'")); + СписокОписаний.Добавить(НСтр("ru = '- замена код ОКВЭД2 с типом справочник Классификатор ОКВЭД2 на строка';")); + СписокОписаний.Добавить(НСтр("ru = '- очистка особенности учета для номенклатуры, подконтрольной государственным информационным системам';")); + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ДанныеДляОбновления.Ссылка КАК Ссылка + |ПОМЕСТИТЬ ТаблицаЭлементов + |ИЗ + | &ДанныеДляОбновления КАК ДанныеДляОбновления + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ТаблицаЭлементов.Ссылка КАК Ссылка, + | ДанныеСправочника.УдалитьКодОКВЭД2.Код КАК КодОКВЭД2, + | ДанныеСправочника.ВерсияДанных КАК ВерсияДанных, + | ЕСТЬNULL(ДанныеСправочника.ОсобенностьУчета В (&ОсобенностиУчета), ЛОЖЬ) КАК ТребуетсяОбработкаОсобенностиУчета + |ИЗ + | ТаблицаЭлементов КАК ТаблицаЭлементов + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК ДанныеСправочника + | ПО ТаблицаЭлементов.Ссылка = ДанныеСправочника.Ссылка + |"; + + Запрос.УстановитьПараметр("ДанныеДляОбновления", ОбновляемыеДанные); + Запрос.УстановитьПараметр("ОсобенностиУчета", ИнтеграцияИСУТ.ОсобенностиУчетаИС()); + + Справочник = Запрос.Выполнить().Выбрать(); + + Пока Справочник.Следующий() Цикл + + ПричинаИсключения = 0; + Рекомендация = ""; + + НачатьТранзакцию(); + + Попытка + + ПричинаИсключения = 1; // Блокировка + + Блокировка = Новый БлокировкаДанных; + + ЭлементБлокировки = Блокировка.Добавить(ПолноеИмяОбъекта); + ЭлементБлокировки.УстановитьЗначение("Ссылка", Справочник.Ссылка); + ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; + + Блокировка.Заблокировать(); + + СправочникОбъект = ОбновлениеИнформационнойБазыУТ.ПроверитьПолучитьОбъект( + Справочник.Ссылка, Справочник.ВерсияДанных, Параметры.Очередь); // СправочникОбъект + + ПричинаИсключения = 2; // ПлохиеДанные + Рекомендация = НСтр("ru = 'Проверьте данные справочника вручную.'"); + + ОбъектИзменен = Ложь; + + Если СправочникОбъект <> Неопределено Тогда + + #Область КодОКВЭД2 + Если ЗначениеЗаполнено(Справочник.КодОКВЭД2) + И Не ЗначениеЗаполнено(СправочникОбъект.КодОКВЭД2) Тогда + СправочникОбъект.КодОКВЭД2 = Справочник.КодОКВЭД2; + ОбъектИзменен = Истина; + КонецЕсли; + #КонецОбласти + + #Область ОсобенностьУчетаИС + Если Справочник.ТребуетсяОбработкаОсобенностиУчета Тогда + СправочникОбъект.ОсобенностьУчета = Перечисления.ОсобенностиУчетаНоменклатуры.БезОсобенностейУчета; + ОбъектИзменен = Истина; + КонецЕсли; + #КонецОбласти + + КонецЕсли; + + ПричинаИсключения = 3; // Запись + + Если ОбъектИзменен Тогда + ОбновлениеИнформационнойБазы.ЗаписатьДанные(СправочникОбъект); + Иначе + ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Справочник.Ссылка); + КонецЕсли; + + ОбъектовОбработано = ОбъектовОбработано + 1; + ЗафиксироватьТранзакцию(); + + Исключение + + ОтменитьТранзакцию(); + + ПроблемныхОбъектов = ПроблемныхОбъектов + 1; + ОбновлениеИнформационнойБазыУТ.СообщитьОНеудачнойОбработке(ИнформацияОбОшибке(), Справочник.Ссылка); + + Если ПричинаИсключения = 2 Тогда + + ОписаниеПроблемы = ОбновлениеИнформационнойБазыУТ.ПроблемаСДанными( + Справочник.Ссылка, Рекомендация, ИнформацияОбОшибке()); + ИсключенияПриОбновлении.Добавить(ОписаниеПроблемы); + + ИначеЕсли ПричинаИсключения = 3 Тогда + + ОбновлениеИнформационнойБазыУТ.ЗаписатьПлохиеДанные( + ИсключенияПриОбновлении, ОбъектовОбработано, Параметры); + ВызватьИсключение СтрСоединить(СписокОписаний, Символы.ПС); + + КонецЕсли; + + КонецПопытки; + + КонецЦикла; + + Параметры.ОбработкаЗавершена = + ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, ПолноеИмяОбъекта); + +КонецПроцедуры + +//-- Локализация + +#КонецОбласти + +#КонецОбласти + +#КонецЕсли + +#Иначе +Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка) + СтандартнаяОбработка = Ложь; + Поля.Добавить("Наименование"); +КонецПроцедуры +#КонецЕсли diff --git a/src/Catalogs/Номенклатура/Ext/ObjectModule.bsl b/src/Catalogs/Номенклатура/Ext/ObjectModule.bsl new file mode 100644 index 0000000..f837f2a --- /dev/null +++ b/src/Catalogs/Номенклатура/Ext/ObjectModule.bsl @@ -0,0 +1,321 @@ +#Если НЕ МобильныйАвтономныйСервер Тогда +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область ОбработчикиСобытий + +Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) + + Если ЭтоГруппа Тогда + Возврат; + КонецЕсли; + + МассивНепроверяемыхРеквизитов = Справочники.Номенклатура.НепроверяемыеРеквизиты(ЭтотОбъект); + + // Защита от ошибки SQL: Переполнение поля. + ПроверитьКратностьМеры("Вес", Отказ); + ПроверитьКратностьМеры("Объем", Отказ); + ПроверитьКратностьМеры("Площадь", Отказ); + ПроверитьКратностьМеры("Длина", Отказ); + + ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов); + + НоменклатураЛокализация.ОбработкаПроверкиЗаполненияНоменклатура(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты); + +КонецПроцедуры + +Процедура ПередЗаписью(Отказ) + + Если ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект); + + Если ЭтоНовый() + И Не ЗначениеЗаполнено(Код) Тогда + + УстановитьНовыйКод(); + + КонецЕсли; + + КодДляПоиска = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Код, Истина); + + Если Не УправлениеДоступомУТ.ПроверитьДопустимостьИзмененияРеквизитовСправочника(ЭтотОбъект, "Наименование,НаименованиеПолное", Отказ) Тогда + Возврат; + КонецЕсли; + + Если ЭтоГруппа Тогда + Возврат; + КонецЕсли; + + // Обработка смены реквизитов + Если Не ЭтоНовый() Тогда + + СтарыеЗначения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, "ПометкаУдаления, ВидНоменклатуры"); + + Если ВидНоменклатуры <> СтарыеЗначения.ВидНоменклатуры Тогда + Если Не ДополнительныеСвойства.Свойство("СменаВидаНоменклатурыОтработана") Тогда + Справочники.Номенклатура.ЗаполнитьРеквизитыПоВидуНоменклатуры(ЭтотОбъект, Истина, Отказ); + Иначе + // Если проверку и заполнение по виду уже делали, то просто выдадим предупреждения, если что не так, + // но не будем мешать записывать. + ЕстьОшибка = Ложь; + + Справочники.Номенклатура.ПроверитьКорректностьСменыВидаНоменклатурыЗаполнитьПоНовомуВиду( + ЭтотОбъект, + СтарыеЗначения.ВидНоменклатуры, + ЕстьОшибка); + + Если ЕстьОшибка Тогда + ДополнительныеСвойства.Вставить("ЕстьПроблемаСоСменойВидаНоменклатуры"); + КонецЕсли; + КонецЕсли; + КонецЕсли; + КонецЕсли; + + Если Отказ Тогда + Возврат; + КонецЕсли; + + Справочники.Номенклатура.ОтработатьЛогикуСвязиРеквизитов(ЭтотОбъект); + + ФормироватьРабочееНаименование = Не (ДополнительныеСвойства.Свойство("РабочееНаименованиеСформировано")); + ФормироватьНаименованиеДляПечати = Не (ДополнительныеСвойства.Свойство("НаименованиеДляПечатиСформировано")); + + Если ФормироватьРабочееНаименование + Или ФормироватьНаименованиеДляПечати Тогда + + СтруктураРеквизитов = Новый Структура; + СтруктураРеквизитов.Вставить("ШаблонРабочегоНаименованияНоменклатуры"); + СтруктураРеквизитов.Вставить("ЗапретРедактированияРабочегоНаименованияНоменклатуры"); + СтруктураРеквизитов.Вставить("ШаблонНаименованияДляПечатиНоменклатуры"); + СтруктураРеквизитов.Вставить("ЗапретРедактированияНаименованияДляПечатиНоменклатуры"); + + РеквизитыОбъекта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ВидНоменклатуры, СтруктураРеквизитов); + + Если ФормироватьРабочееНаименование + И ЗначениеЗаполнено(РеквизитыОбъекта.ШаблонРабочегоНаименованияНоменклатуры) + И (РеквизитыОбъекта.ЗапретРедактированияРабочегоНаименованияНоменклатуры + Или Не ЗначениеЗаполнено(Наименование)) Тогда + + ШаблонНаименования = РеквизитыОбъекта.ШаблонРабочегоНаименованияНоменклатуры; + Наименование = НоменклатураСервер.НаименованиеПоШаблону(ШаблонНаименования, ЭтотОбъект); + + КонецЕсли; + + Если ФормироватьНаименованиеДляПечати + И ЗначениеЗаполнено(РеквизитыОбъекта.ШаблонНаименованияДляПечатиНоменклатуры) + И (РеквизитыОбъекта.ЗапретРедактированияНаименованияДляПечатиНоменклатуры + Или Не ЗначениеЗаполнено(НаименованиеПолное)) Тогда + + ШаблонНаименованияДляПечати = РеквизитыОбъекта.ШаблонНаименованияДляПечатиНоменклатуры; + НаименованиеПолное = НоменклатураСервер.НаименованиеПоШаблону(ШаблонНаименованияДляПечати, ЭтотОбъект); + + КонецЕсли; + + КонецЕсли; + + Если Не ЗначениеЗаполнено(Наименование) Тогда + Отказ = Истина; + + ТекстИсключения = НСтр("ru='Поле ""Рабочее наименование"" не заполнено'"); + + ВызватьИсключение ТекстИсключения; + КонецЕсли; + + КонтролироватьРабочееНаименование = + Константы.КонтролироватьУникальностьРабочегоНаименованияНоменклатурыИХарактеристик.Получить() + И Не (ДополнительныеСвойства.Свойство("РабочееНаименованиеПроверено")); + + Если Не Отказ + И КонтролироватьРабочееНаименование + И Не ПометкаУдаления Тогда + + НаименованиеУникально = Справочники.Номенклатура.РабочееНаименованиеУникально(ЭтотОбъект); + + Если Не НаименованиеУникально Тогда + Отказ = Истина; + + ТекстИсключения = НСтр("ru='Значение поля ""Рабочее наименование"" не уникально'"); + + ВызватьИсключение ТекстИсключения; + КонецЕсли; + + КонецЕсли; + + ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый()); + + ОбщегоНазначенияУТ.ПодготовитьДанныеДляСинхронизацииКлючей(ЭтотОбъект, ПараметрыСинхронизацииКлючей()); + +КонецПроцедуры + +Процедура ПриЗаписи(Отказ) + + Если ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + Если ЭтоГруппа Тогда + Возврат; + КонецЕсли; + + Если Не Отказ + И ДополнительныеСвойства.Свойство("ЕстьПроблемаСоСменойВидаНоменклатуры") Тогда + ТекстСообщения = НСтр("ru = 'Запись элемента выполнена, но есть проблемы, связанные с изменением вида номенклатуры.'"); + + ОбщегоНазначения.СообщитьПользователю(ТекстСообщения); + КонецЕсли; + + АктуализироватьСтавкиНДСНоменклатуры(); + ПометитьНаУдалениеИндивидуальныеУпаковки(); + + ОбщегоНазначенияУТ.СинхронизироватьКлючи(ЭтотОбъект); + УчетПрослеживаемыхТоваровЛокализация.УстановитьИспользованиеУчетаВЕдиницеИзмеренияТНВЭДПоНоменклатуре(ЭтотОбъект); + +КонецПроцедуры + +Процедура ПередУдалением(Отказ) + + Если ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + +КонецПроцедуры + +Процедура ПриКопировании(ОбъектКопирования) + + Если ЗначениеЗаполнено(ОбъектКопирования.СтавкаНДС) + И Не УчетНДСУП.СтавкаНДСКорректна( + ОбъектКопирования.СтавкаНДС, + Перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС, + Неопределено, + Неопределено) Тогда + СтавкаНДС = Справочники.СтавкиНДС.ПустаяСсылка(); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ПриЧтенииПредставленийНаСервере() Экспорт + МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект); +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура ПроверитьКратностьМеры(Мера, Отказ) + РеквизитыМеры = Справочники.Номенклатура.РеквизитыМеры(Мера); + СообщениеКратностьБолее = НСтр("ru = 'Кратность более 10 000 000 / 1'"); + СообщениеКратностьМенее = НСтр("ru = 'Кратность менее 1 / 99 999 999'"); + Если ЭтотОбъект[РеквизитыМеры.Использовать] + И ЗначениеЗаполнено(ЭтотОбъект[РеквизитыМеры.Знаменатель]) Тогда + Если ЭтотОбъект[РеквизитыМеры.Числитель] / ЭтотОбъект[РеквизитыМеры.Знаменатель] < 0.0000001 Тогда + ОбщегоНазначения.СообщитьПользователю( + СообщениеКратностьБолее, + , + "Объект." + РеквизитыМеры.Знаменатель, + , + Отказ); + ИначеЕсли ЭтотОбъект[РеквизитыМеры.Числитель] / ЭтотОбъект[РеквизитыМеры.Знаменатель] > 99999999 Тогда + ОбщегоНазначения.СообщитьПользователю( + СообщениеКратностьМенее, + , + "Объект." + РеквизитыМеры.Числитель, + , + Отказ); + КонецЕсли; + КонецЕсли; +КонецПроцедуры + +Функция ПараметрыСинхронизацииКлючей() + + Результат = Новый Соответствие; + + Результат.Вставить("Справочник.КлючиАналитикиУчетаНоменклатуры", "ПометкаУдаления"); + Результат.Вставить("Справочник.КлючиАналитикиУчетаНаборов", "ПометкаУдаления"); + + Возврат Результат; + +КонецФункции + +Процедура АктуализироватьСтавкиНДСНоменклатуры() + + Если Не ПолучитьФункциональнуюОпцию("ИспользоватьУчетНДС") Тогда + Возврат; + КонецЕсли; + + Если ДополнительныеСвойства.Свойство("ЭтоНовый") + И ДополнительныеСвойства.ЭтоНовый = Истина Тогда + + РегистрыСведений.СтавкиНДСНоменклатуры.УстановитьАктуальнуюСтавкуНДСНоменклатурыПоОсновнойСтране( + Ссылка, + СтавкаНДС, + Истина); + + ИначеЕсли ДополнительныеСвойства.Свойство("ДатаНачалаПримененияСтавкиНДС") Тогда + + АктуальнаяСтавкаНДС = РегистрыСведений.СтавкиНДСНоменклатуры.АктуальнаяСтавкаНДСНоменклатурыПоОсновнойСтране(Ссылка); + ДатаНачалаПримененияСтавкиНДС = ДополнительныеСвойства.ДатаНачалаПримененияСтавкиНДС; + + Если СтавкаНДС <> АктуальнаяСтавкаНДС Тогда + + РегистрыСведений.СтавкиНДСНоменклатуры.УстановитьАктуальнуюСтавкуНДСНоменклатурыПоОсновнойСтране( + Ссылка, + СтавкаНДС, + Ложь, + ДатаНачалаПримененияСтавкиНДС); + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +Процедура ПометитьНаУдалениеИндивидуальныеУпаковки() + + Если ДополнительныеСвойства.Свойство("ЭтоНовый") + И ДополнительныеСвойства.ЭтоНовый = Истина Тогда + + Возврат; + + КонецЕсли; + + Если Не ИспользоватьУпаковки + Или (ЗначениеЗаполнено(НаборУпаковок) + И НаборУпаковок <> Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры) Тогда + + УстановитьПривилегированныйРежим(Истина); + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ДанныеОбъекта.Ссылка КАК Ссылка + |ИЗ + | Справочник.УпаковкиЕдиницыИзмерения КАК ДанныеОбъекта + |ГДЕ + | НЕ ДанныеОбъекта.ПометкаУдаления + | И ДанныеОбъекта.Владелец = &Владелец"; + + Запрос.УстановитьПараметр("Владелец", Ссылка); + + Выборка = Запрос.Выполнить().Выбрать(); + + Пока Выборка.Следующий() Цикл + ВидОбъект = Выборка.Ссылка.ПолучитьОбъект(); // СправочникОбъект.УпаковкиЕдиницыИзмерения + ВидОбъект.ПометкаУдаления = Истина; + + ВидОбъект.Записать(); + КонецЦикла; + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#КонецЕсли +#КонецЕсли diff --git a/src/Catalogs/Номенклатура/Forms/ИсторияЦенНоменклатуры.xml b/src/Catalogs/Номенклатура/Forms/ИсторияЦенНоменклатуры.xml new file mode 100644 index 0000000..b05f89d --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ИсторияЦенНоменклатуры.xml @@ -0,0 +1,21 @@ + + +
+ + ИсторияЦенНоменклатуры + + + ru + История цен номенклатуры + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ИсторияЦенНоменклатуры/Ext/Form.xml b/src/Catalogs/Номенклатура/Forms/ИсторияЦенНоменклатуры/Ext/Form.xml new file mode 100644 index 0000000..8a44bf3 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ИсторияЦенНоменклатуры/Ext/Form.xml @@ -0,0 +1,952 @@ + +
+ LockOwnerWindow + None + useIfNecessary + + + ПриСозданииНаСервере + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страницы</v8:content> + </v8:item> + + TabsOnTop + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Цены номенклатуры</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Быстрые отборы цены</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + ПериодЦеныНоменклатуры + Top + 16 + false + true + + + + ПериодЦеныНоменклатурыПриИзменении + + + + ВидЦеныНоменклатуры + Top + 21 + false + true + + + + ВидЦеныНоменклатурыПриИзменении + + + + + + true + true + AsFile + ЦеныНоменклатуры + ЦеныНоменклатуры.DefaultPicture + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Цены номенклатуры</v8:content> + </v8:item> + + + CopyToClipboard + SetDateInterval + + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + true + + + + + + ЦеныНоменклатуры + SearchStringRepresentation + + + + + + + ЦеныНоменклатуры + ViewStatusRepresentation + + Left + + + + + + ЦеныНоменклатуры + SearchControl + + + + + + + ЦеныНоменклатуры.Период + + + + + ЦеныНоменклатуры.ВидЦены + + + + + ЦеныНоменклатуры.Характеристика + + + + + ЦеныНоменклатуры.Упаковка + + + + + ЦеныНоменклатуры.Цена + + + + + ЦеныНоменклатуры.Валюта + + + + +
+
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Цены номенклатуры</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Быстрые отборы цены</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + ПериодЦеныНоменклатуры + Top + 16 + false + true + + + + ПериодЦеныНоменклатурыПриИзменении + + + + ВидЦеныНоменклатуры + Top + 21 + false + true + + + + ВидЦеныНоменклатурыПриИзменении + + + + + + true + true + AsFile + ЦеныНоменклатуры2_5 + ЦеныНоменклатуры2_5.DefaultPicture + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Цены номенклатуры</v8:content> + </v8:item> + + + CopyToClipboard + SetDateInterval + + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + true + + + + + + ЦеныНоменклатуры2_5 + SearchStringRepresentation + + + + + + + ЦеныНоменклатуры2_5 + ViewStatusRepresentation + + Left + + + + + + ЦеныНоменклатуры2_5 + SearchControl + + + + + + + ЦеныНоменклатуры2_5.Период + + + + + ЦеныНоменклатуры2_5.ВидЦены + + + + + ЦеныНоменклатуры2_5.Характеристика + false + + + + + ЦеныНоменклатуры2_5.Серия + false + + + + + ЦеныНоменклатуры2_5.УпаковкаЦО + false + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Упаковка</v8:content> + </v8:item> + + false + + + + + ЦеныНоменклатуры2_5.Упаковка + + + + + ЦеныНоменклатуры2_5.Цена + + + + + ЦеныНоменклатуры2_5.Валюта + + + + +
+
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Цены номенклатуры поставщиков</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа отборы цены номенклатуры</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + ПериодЦеныНоменклатурыПоставщика + Top + 16 + false + true + + + + ПериодЦеныНоменклатурыПоставщикаПриИзменении + ПериодЦеныНоменклатурыПоставщикаОчистка + + + + Партнер + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Поставщик</v8:content> + </v8:item> + + Top + 21 + false + true + + + + ПартнерПриИзменении + + + + ВидЦеныПоставщика + Top + 21 + false + true + + + + ВидЦеныПоставщикаПриИзменении + + + + + + true + true + AsFile + ЦеныНоменклатурыПоставщиков + ЦеныНоменклатурыПоставщиков.DefaultPicture + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Цены номенклатуры поставщиков</v8:content> + </v8:item> + + + CopyToClipboard + SetDateInterval + + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + true + + + + + + ЦеныНоменклатурыПоставщиков + SearchStringRepresentation + + + + + + + ЦеныНоменклатурыПоставщиков + ViewStatusRepresentation + + Left + + + + + + ЦеныНоменклатурыПоставщиков + SearchControl + + + + + + + ЦеныНоменклатурыПоставщиков.Период + + + + + ЦеныНоменклатурыПоставщиков.Партнер + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Поставщик</v8:content> + </v8:item> + + + + + + ЦеныНоменклатурыПоставщиков.ВидЦеныПоставщика + + + + + ЦеныНоменклатурыПоставщиков.Характеристика + + + + + ЦеныНоменклатурыПоставщиков.Валюта + + + + + ЦеныНоменклатурыПоставщиков.Упаковка + + + + + ЦеныНоменклатурыПоставщиков.Цена + + + + + ЦеныНоменклатурыПоставщиков.НоменклатураПартнера + + + + +
+
+
+
+
+
+ + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Цены номенклатуры</v8:content> + </v8:item> + + + cfg:DynamicList + + + ЦеныНоменклатуры.Регистратор + + + true + true + ВЫБРАТЬ РАЗРЕШЕННЫЕ + РегистрСведенийЦеныНоменклатурыСрезПоследних.Период, + РегистрСведенийЦеныНоменклатурыСрезПоследних.Регистратор, + РегистрСведенийЦеныНоменклатурыСрезПоследних.НомерСтроки, + РегистрСведенийЦеныНоменклатурыСрезПоследних.Активность, + РегистрСведенийЦеныНоменклатурыСрезПоследних.Номенклатура, + РегистрСведенийЦеныНоменклатурыСрезПоследних.ВидЦены, + РегистрСведенийЦеныНоменклатурыСрезПоследних.Характеристика, + РегистрСведенийЦеныНоменклатурыСрезПоследних.Цена, + РегистрСведенийЦеныНоменклатурыСрезПоследних.Упаковка, + РегистрСведенийЦеныНоменклатурыСрезПоследних.Валюта +ИЗ + РегистрСведений.ЦеныНоменклатуры КАК РегистрСведенийЦеныНоменклатурыСрезПоследних + + + Активность + Активность + + + Формула + Формула + + + МаркетинговоеМероприятие + МаркетинговоеМероприятие + + + Номенклатура + Номенклатура + + + Период + Период + + + Регистратор + Регистратор + + + НомерСтроки + НомерСтроки + + + ВидЦены + ВидЦены + + + Характеристика + Характеристика + + + Цена + Цена + + + Упаковка + Упаковка + + + Валюта + Валюта + + InformationRegister.ЦеныНоменклатуры + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Цены номенклатуры поставщиков</v8:content> + </v8:item> + + + cfg:DynamicList + + + true + true + ВЫБРАТЬ РАЗРЕШЕННЫЕ + ЦеныНоменклатурыПоставщиковСрезПоследних.Партнер КАК Партнер, + ЦеныНоменклатурыПоставщиковСрезПоследних.ВидЦеныПоставщика, + ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика, + ЦеныНоменклатурыПоставщиковСрезПоследних.Цена, + ЦеныНоменклатурыПоставщиковСрезПоследних.Упаковка, + ЦеныНоменклатурыПоставщиковСрезПоследних.Валюта, + ЦеныНоменклатурыПоставщиковСрезПоследних.НоменклатураПартнера КАК НоменклатураПартнера, + ЦеныНоменклатурыПоставщиковСрезПоследних.Период, + ЦеныНоменклатурыПоставщиковСрезПоследних.Регистратор +ИЗ + РегистрСведений.ЦеныНоменклатурыПоставщиков КАК ЦеныНоменклатурыПоставщиковСрезПоследних + + Активность + Активность + + + Партнер + Партнер + + + МоментВремени + МоментВремени + + + ВидЦеныПоставщика + ВидЦеныПоставщика + + + Характеристика + Характеристика + + + Цена + Цена + + + Упаковка + Упаковка + + + НоменклатураПартнера + НоменклатураПартнера + + + Валюта + Валюта + + + Период + Период + + + Регистратор + Регистратор + + + НомерСтроки + НомерСтроки + + + Номенклатура + Номенклатура + + InformationRegister.ЦеныНоменклатурыПоставщиков + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Прайс лист</v8:content> + </v8:item> + + + cfg:ReportObject.ПрайсЛист + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Таблица прайс лист</v8:content> + </v8:item> + + + mxl:SpreadsheetDocument + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отбор номенклатура</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид цены</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыЦен + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Партнер</v8:content> + </v8:item> + + + cfg:CatalogRef.Партнеры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Соглашение</v8:content> + </v8:item> + + + cfg:CatalogRef.СоглашенияСПоставщиками + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид цены</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыЦенПоставщиков + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Период</v8:content> + </v8:item> + + + v8:StandardPeriod + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Период</v8:content> + </v8:item> + + + v8:StandardPeriod + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Адрес схемы прайс лист</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Адрес данных расшифровки прайс лист</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Цены номенклатуры</v8:content> + </v8:item> + + + cfg:DynamicList + + + ЦеныНоменклатуры2_5.Регистратор + + + true + true + ВЫБРАТЬ РАЗРЕШЕННЫЕ + ЦеныНоменклатуры25СрезПоследних.Период КАК Период, + ЦеныНоменклатуры25СрезПоследних.Регистратор КАК Регистратор, + ЦеныНоменклатуры25СрезПоследних.НомерСтроки, + ЦеныНоменклатуры25СрезПоследних.Активность, + ЦеныНоменклатуры25СрезПоследних.Номенклатура, + ЦеныНоменклатуры25СрезПоследних.ХарактеристикаЦО КАК Характеристика, + ЦеныНоменклатуры25СрезПоследних.СерияЦО КАК Серия, + ЦеныНоменклатуры25СрезПоследних.УпаковкаЦО КАК УпаковкаЦО, + ЦеныНоменклатуры25СрезПоследних.ВидЦены, + ЦеныНоменклатуры25СрезПоследних.Цена, + ЦеныНоменклатуры25СрезПоследних.Упаковка, + ЦеныНоменклатуры25СрезПоследних.Валюта +ИЗ + РегистрСведений.ЦеныНоменклатуры25 КАК ЦеныНоменклатуры25СрезПоследних + + Номенклатура + Номенклатура + + + Регистратор + Регистратор + + + ХарактеристикаЦО + ХарактеристикаЦО + + + СерияЦО + СерияЦО + + + Активность + Активность + + + МаркетинговоеМероприятие + МаркетинговоеМероприятие + + + Формула + Формула + + + Период + Период + + + НомерСтроки + НомерСтроки + + + Характеристика + Характеристика + + + ru + Характеристика + + + + + Серия + Серия + + + ru + Серия + + + + + УпаковкаЦО + УпаковкаЦО + + + ВидЦены + ВидЦены + + + Цена + Цена + + + Упаковка + Упаковка + + + Валюта + Валюта + + InformationRegister.ЦеныНоменклатуры25 + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Используется ценообразование 2.5</v8:content> + </v8:item> + + + xs:boolean + + + + \ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ИсторияЦенНоменклатуры/Ext/Form/Module.bsl b/src/Catalogs/Номенклатура/Forms/ИсторияЦенНоменклатуры/Ext/Form/Module.bsl new file mode 100644 index 0000000..8c8901a --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ИсторияЦенНоменклатуры/Ext/Form/Module.bsl @@ -0,0 +1,248 @@ + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест". + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + ИспользуетсяЦенообразование25 = ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25(); + + ОтборНоменклатура = Параметры.Ключ; + + Если ИспользуетсяЦенообразование25 Тогда + Элементы.СтраницаЦеныНоменклатуры.Видимость = Ложь; + Элементы.СтраницаЦеныНоменклатуры2_5.Видимость = ПравоДоступа("Просмотр", + Метаданные.РегистрыСведений.ЦеныНоменклатуры25); + Иначе + Элементы.СтраницаЦеныНоменклатуры2_5.Видимость = Ложь; + Элементы.СтраницаЦеныНоменклатуры.Видимость = ПравоДоступа("Просмотр", + Метаданные.РегистрыСведений.ЦеныНоменклатуры); + КонецЕсли; + Элементы.СтраницаЦеныНоменклатурыПоставщиков.Видимость = ПравоДоступа("Просмотр", + Метаданные.РегистрыСведений.ЦеныНоменклатурыПоставщиков); + + Если Элементы.СтраницаЦеныНоменклатуры.Видимость Тогда + + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( + ЦеныНоменклатуры, + "Номенклатура", + ОтборНоменклатура, + ВидСравненияКомпоновкиДанных.Равно, + "Номенклатура", + Истина); + ИначеЕсли Элементы.СтраницаЦеныНоменклатуры2_5.Видимость Тогда + + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( + ЦеныНоменклатуры2_5, + "Номенклатура", + ОтборНоменклатура, + ВидСравненияКомпоновкиДанных.Равно, + "Номенклатура", + Истина); + КонецЕсли; + + Если Элементы.СтраницаЦеныНоменклатурыПоставщиков.Видимость Тогда + + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( + ЦеныНоменклатурыПоставщиков, + "Номенклатура", + ОтборНоменклатура, + ВидСравненияКомпоновкиДанных.Равно, + "Номенклатура", + Истина); + + КонецЕсли; + + СписокВидовЦен = Новый СписокЗначений(); + Если Параметры.Свойство("ВидЦены") Тогда + СписокВидовЦен.Добавить(Параметры.ВидЦены); + ВидЦеныНоменклатуры = Параметры.ВидЦены; + Иначе + СписокВидовЦен.ЗагрузитьЗначения(Справочники.ВидыЦен.ДоступныеВидыЦен()); + КонецЕсли; + + Если ИспользуетсяЦенообразование25 Тогда + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( + ЦеныНоменклатуры2_5, + "ВидЦены", + СписокВидовЦен, + ВидСравненияКомпоновкиДанных.ВСписке, + "ВидЦеныОграничениеПоПравам", + Истина); + Иначе + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( + ЦеныНоменклатуры, + "ВидЦены", + СписокВидовЦен, + ВидСравненияКомпоновкиДанных.ВСписке, + "ВидЦеныОграничениеПоПравам", + Истина); + КонецЕсли; + + СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура ПериодЦеныНоменклатурыПриИзменении(Элемент) + + ПериодЦеныНоменклатурыПриИзмененииНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура ВидЦеныНоменклатурыПриИзменении(Элемент) + + ВидЦеныНоменклатурыПриИзмененииНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПериодЦеныНоменклатурыПоставщикаПриИзменении(Элемент) + + ПериодЦеныНоменклатурыПоставщиковПриИзмененииНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПериодЦеныНоменклатурыПоставщикаОчистка(Элемент, СтандартнаяОбработка) + + ПериодЦеныНоменклатурыПоставщиковПриИзмененииНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПартнерПриИзменении(Элемент) + + ПартнерПриИзмененииНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура ВидЦеныПоставщикаПриИзменении(Элемент) + + ВидЦеныПоставщикаПриИзмененииНаСервере(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область Прочее + +&НаСервере +Процедура ПериодЦеныНоменклатурыПриИзмененииНаСервере() + + Если ИспользуетсяЦенообразование25 Тогда + ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбораДинамическогоСписка(ЦеныНоменклатуры2_5,"Период","Период"); + + ГруппаЭлементовОтбора = ОбщегоНазначенияКлиентСервер.СоздатьГруппуЭлементовОтбора( + ОбщегоНазначенияУТКлиентСервер.ПолучитьОтборДинамическогоСписка(ЦеныНоменклатуры2_5).Элементы, + "ЦеныНоменклатурыОтборПоПериоду", + ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ); + Иначе + ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбораДинамическогоСписка(ЦеныНоменклатуры,"Период","Период"); + + ГруппаЭлементовОтбора = ОбщегоНазначенияКлиентСервер.СоздатьГруппуЭлементовОтбора( + ОбщегоНазначенияУТКлиентСервер.ПолучитьОтборДинамическогоСписка(ЦеныНоменклатуры).Элементы, + "ЦеныНоменклатурыОтборПоПериоду", + ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ); + КонецЕсли; + + ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки( + ГруппаЭлементовОтбора, + "Период", + ВидСравненияКомпоновкиДанных.БольшеИлиРавно, + ПериодЦеныНоменклатуры.ДатаНачала, + "Период", + ЗначениеЗаполнено(ПериодЦеныНоменклатуры.ДатаНачала)); + + // Установить элемент отбора в группе. + ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки(ГруппаЭлементовОтбора, "Период", ВидСравненияКомпоновкиДанных.МеньшеИлиРавно, + ПериодЦеныНоменклатуры.ДатаОкончания, "Период", ЗначениеЗаполнено(ПериодЦеныНоменклатуры.ДатаОкончания)); + +КонецПроцедуры + +&НаСервере +Процедура ВидЦеныНоменклатурыПриИзмененииНаСервере() + + Если ИспользуетсяЦенообразование25 Тогда + ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбораДинамическогоСписка(ЦеныНоменклатуры2_5,,"ВидЦены"); + + ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки( + ОбщегоНазначенияУТКлиентСервер.ПолучитьОтборДинамическогоСписка(ЦеныНоменклатуры2_5), "ВидЦены", + ВидСравненияКомпоновкиДанных.Равно, ВидЦеныНоменклатуры, "ВидЦены", ЗначениеЗаполнено(ВидЦеныНоменклатуры)); + Иначе + ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбораДинамическогоСписка(ЦеныНоменклатуры,,"ВидЦены"); + + ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки( + ОбщегоНазначенияУТКлиентСервер.ПолучитьОтборДинамическогоСписка(ЦеныНоменклатуры), "ВидЦены", + ВидСравненияКомпоновкиДанных.Равно, ВидЦеныНоменклатуры, "ВидЦены", ЗначениеЗаполнено(ВидЦеныНоменклатуры)); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПериодЦеныНоменклатурыПоставщиковПриИзмененииНаСервере() + + ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбораДинамическогоСписка(ЦеныНоменклатурыПоставщиков,"Период","Период"); + + ГруппаЭлементовОтбора = ОбщегоНазначенияКлиентСервер.СоздатьГруппуЭлементовОтбора( + ОбщегоНазначенияУТКлиентСервер.ПолучитьОтборДинамическогоСписка(ЦеныНоменклатурыПоставщиков).Элементы, + "ЦеныНоменклатурыОтборПоПериоду", ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ); + + ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки(ГруппаЭлементовОтбора, "Период", ВидСравненияКомпоновкиДанных.БольшеИлиРавно, + ПериодЦеныНоменклатурыПоставщика.ДатаНачала, "Период", ЗначениеЗаполнено(ПериодЦеныНоменклатурыПоставщика.ДатаНачала)); + + // Установить элемент отбора в группе. + ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки(ГруппаЭлементовОтбора, "Период", + ВидСравненияКомпоновкиДанных.МеньшеИлиРавно, ПериодЦеныНоменклатурыПоставщика.ДатаОкончания, "Период", + ЗначениеЗаполнено(ПериодЦеныНоменклатурыПоставщика.ДатаОкончания)); + +КонецПроцедуры + +&НаСервере +Процедура ПартнерПриИзмененииНаСервере() + + ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбораДинамическогоСписка(ЦеныНоменклатурыПоставщиков,"Партнер","Партнер"); + + ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки( + ОбщегоНазначенияУТКлиентСервер.ПолучитьОтборДинамическогоСписка(ЦеныНоменклатурыПоставщиков), "Партнер", + ВидСравненияКомпоновкиДанных.Равно, Партнер, "Партнер", ЗначениеЗаполнено(Партнер)); + +КонецПроцедуры + +&НаСервере +Процедура ВидЦеныПоставщикаПриИзмененииНаСервере() + + ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбораДинамическогоСписка(ЦеныНоменклатурыПоставщиков,"ВидЦеныПоставщика","ВидЦеныПоставщика"); + + ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки( + ОбщегоНазначенияУТКлиентСервер.ПолучитьОтборДинамическогоСписка(ЦеныНоменклатурыПоставщиков), "ВидЦеныПоставщика", + ВидСравненияКомпоновкиДанных.Равно, ВидЦеныПоставщика, "ВидЦеныПоставщика", ЗначениеЗаполнено(ВидЦеныПоставщика)); + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти diff --git a/src/Catalogs/Номенклатура/Forms/КонтрольУникальности.xml b/src/Catalogs/Номенклатура/Forms/КонтрольУникальности.xml new file mode 100644 index 0000000..b680cbb --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/КонтрольУникальности.xml @@ -0,0 +1,21 @@ + + +
+ + КонтрольУникальности + + + ru + Контроль уникальности + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/КонтрольУникальности/Ext/Form.xml b/src/Catalogs/Номенклатура/Forms/КонтрольУникальности/Ext/Form.xml new file mode 100644 index 0000000..687887d --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/КонтрольУникальности/Ext/Form.xml @@ -0,0 +1,309 @@ + +
+ + false + + + ПриСозданииНаСервере + + + + false + 1 + style:ПоясняющийТекст + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Найдена номенклатура с аналогичными данными. Примите решение о дальнейших действиях.</v8:content> + </v8:item> + + + + + + List + None + false + false + SingleRow + true + true + true + AsFile + ТаблицаНайдено + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Таблица найдено</v8:content> + </v8:item> + + + Add + Change + Copy + Delete + EndEdit + MoveDown + MoveUp + ShowRowRearrangement + + + + + false + + + + + ТаблицаНайдено + SearchStringRepresentation + + + + + + + ТаблицаНайдено + ViewStatusRepresentation + + Left + + + + + + ТаблицаНайдено + SearchControl + + + + + + + ТаблицаНайдено.НайденоПоШтрихкоду + true + None + + + ru + Найдено по совпадению штрихкода + + + EnterOnInput + + CommonPicture.Штрихкод + false + + Auto + + + + + ТаблицаНайдено.НайденоПоДопРеквизитам + true + None + + + ru + Найдено по совпадению сочетания реквизитов для контроля + + + EnterOnInput + + CommonPicture.Подменю + false + + Auto + + + + + ТаблицаНайдено.НайденоПоНаименованию + true + None + + + ru + Найдено по совпадению рабочего наименования + + + EnterOnInput + + CommonPicture.ВыравниваниеВертикальноеЦентр + false + + Auto + + + + + ТаблицаНайдено.Ссылка + true + EnterOnInput + + + + +
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Командная панель</v8:content> + </v8:item> + + Right + + + + + + + +
+ + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Таблица найдено</v8:content> + </v8:item> + + + v8:ValueTable + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ссылка</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + cfg:CatalogRef.ХарактеристикиНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Найдено по штрихкоду</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Найдено по доп реквизитам</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Найдено по наименованию</v8:content> + </v8:item> + + + xs:boolean + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Выбрать существующую</v8:content> + </v8:item> + + + + ru + Выбрать существующую + + + ВыбратьСуществующую + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Продолжить заполнение</v8:content> + </v8:item> + + + + ru + Продолжить заполнение + + + ПродолжитьЗаполнение + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Продолжить запись</v8:content> + </v8:item> + + + + ru + Продолжить запись + + + ПродолжитьЗапись + DontUse + + + + + + xs:boolean + + + + + xs:string + + 0 + Variable + + + + + \ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/КонтрольУникальности/Ext/Form/Module.bsl b/src/Catalogs/Номенклатура/Forms/КонтрольУникальности/Ext/Form/Module.bsl new file mode 100644 index 0000000..c67e42f --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/КонтрольУникальности/Ext/Form/Module.bsl @@ -0,0 +1,81 @@ + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. + Возврат; + КонецЕсли; + + ТаблицаНайдено.Загрузить(ПолучитьИзВременногоХранилища(Параметры.АдресВременногоХранилищаТаблицаНайдено)); + Элементы.ПродолжитьЗапись.Видимость = Параметры.ЭтоЗапись + И Пользователи.РолиДоступны("ВводИнформацииПоНоменклатуреБезКонтроля") + И ТаблицаНайдено.НайтиСтроки(Новый Структура("НайденоПоНаименованию", Истина)).Количество() = 0; + + Если ТаблицаНайдено.Количество() > 0 + И ТипЗнч(ТаблицаНайдено[0].Ссылка) = Тип("СправочникСсылка.ХарактеристикиНоменклатуры") Тогда + ЭтоХарактеристики = Истина; + Иначе + ЭтоХарактеристики = Ложь; + КонецЕсли; + + Элементы.ТаблицаНайденоНайденоПоШтрихкоду.Видимость = Не ЭтоХарактеристики; + + Если ЭтоХарактеристики Тогда + Элементы.ТаблицаНайденоСсылка.Заголовок = НСтр("ru = 'Характеристика'"); + Элементы.ПояснениеНайдено.Заголовок = НСтр("ru = 'Найдены характеристики с аналогичными данными. Примите решение о дальнейших действиях.'"); + Иначе + Элементы.ТаблицаНайденоСсылка.Заголовок = НСтр("ru = 'Номенклатура'"); + Элементы.ПояснениеНайдено.Заголовок = НСтр("ru = 'Найдена номенклатура с аналогичными данными. Примите решение о дальнейших действиях.'"); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработкаКоманд + +&НаКлиенте +Процедура ВыбратьСуществующую(Команда) + + ОчиститьСообщения(); + Если Элементы.ТаблицаНайдено.ТекущиеДанные = Неопределено Тогда + ТекстСообщения = НСтр("ru = 'Номенклатура не выбрана'"); + + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, + , + "ТаблицаНайдено"); + Возврат; + КонецЕсли; + + СтруктураВозврата = НоменклатураКлиент.НовыйРезультатОбработкиЗавершения(); + + СтруктураВозврата.Действие = "ВыбратьСуществующую"; + СтруктураВозврата.Ссылка = Элементы.ТаблицаНайдено.ТекущиеДанные.Ссылка; + Закрыть(СтруктураВозврата); + +КонецПроцедуры + +&НаКлиенте +Процедура ПродолжитьЗаполнение(Команда) + + СтруктураВозврата = НоменклатураКлиент.НовыйРезультатОбработкиЗавершения(); + + СтруктураВозврата.Действие = "ПродолжитьЗаполнение"; + СтруктураВозврата.Ссылка = Неопределено; + Закрыть(СтруктураВозврата); + +КонецПроцедуры + +&НаКлиенте +Процедура ПродолжитьЗапись(Команда) + + СтруктураВозврата = НоменклатураКлиент.НовыйРезультатОбработкиЗавершения(); + + СтруктураВозврата.Действие = "ПродолжитьЗапись"; + СтруктураВозврата.Ссылка = Неопределено; + Закрыть(СтруктураВозврата); + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/НастройкаВариантаПоиска.xml b/src/Catalogs/Номенклатура/Forms/НастройкаВариантаПоиска.xml new file mode 100644 index 0000000..43ac912 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/НастройкаВариантаПоиска.xml @@ -0,0 +1,21 @@ + + +
+ + НастройкаВариантаПоиска + + + ru + Настройка варианта поиска + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/НастройкаВариантаПоиска/Ext/Form.xml b/src/Catalogs/Номенклатура/Forms/НастройкаВариантаПоиска/Ext/Form.xml new file mode 100644 index 0000000..e5e4596 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/НастройкаВариантаПоиска/Ext/Form.xml @@ -0,0 +1,377 @@ + +
+ + false + + + ПриСозданииНаСервере + + + + ИспользованиеНастройкиПоУмолчанию + None + Auto + + + + 0 + + + + ru + Использовать вариант поиска, заданный в настройках программы + + + ПоУмолчанию + + + + + + + ИспользованиеНастройкиПоУмолчанию1ПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Подсказки к использованию настройки по умолчанию</v8:content> + </v8:item> + + None + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Стандартный поиск</v8:content> + </v8:item> + + + + + false + 50 + style:ПоясняющийТекст + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сейчас в настройке программы указано использование варианта "Стандартный".</v8:content> + </v8:item> + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Расширенный поиск</v8:content> + </v8:item> + + + + + false + 50 + style:ПоясняющийТекст + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сейчас в настройке программы указано использование варианта "Расширенный".</v8:content> + </v8:item> + + + + + + + + + + ИспользованиеНастройкиПоУмолчанию + None + Auto + + + + 0 + + + + ru + Использовать индивидуальную настройку: + + + Индивидуально + + + + + + + ИспользованиеНастройкиПоУмолчанию2ПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вариант поиска</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + 2 + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вертикальная</v8:content> + </v8:item> + + + + ru + Группа горизонтальная + + + Vertical + Usual + None + false + + + + ВариантПоиска + None + ShowBottom + Auto + 1 + + + + 0 + + + + ru + Стандартный вариант поиска + + + Стандартный + + + + + + false + 50 + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Стандартный поиск в списках платформы 1С:Предприятие. Поиск производится по значениям всех колонок. Поисковый запрос задается в стандартной строке поиска над списком номенклатуры, которая активизируется при нажатии на CTRL+F.</v8:content> + </v8:item> + + + + + ВариантПоиска + None + Auto + + + + 0 + + + + ru + Расширенный вариант поиска + + + Расширенный + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Подсказки к расширенному поиску</v8:content> + </v8:item> + + None + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Используется ППД</v8:content> + </v8:item> + + + + + false + 50 + style:ПоясняющийТекст + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Полнотекстовый поиск номенклатуры. Возможно использование специальных подстановочных символов поиска. Поисковый запрос задается в специальной строке над списком номенклатуры, которая активизируется при открытии формы или при нажатии на ALT+1.</v8:content> + </v8:item> + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Не используется ППД</v8:content> + </v8:item> + + + + + false + 50 + style:ПоясняющийТекст + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Поиск сразу по значениям нескольких реквизитов. Поисковый запрос задается в специальной строке над списком номенклатуры, которая активизируется при открытии формы или при нажатии на ALT+1.</v8:content> + </v8:item> + + + + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Действия формы</v8:content> + </v8:item> + + Right + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вариант поиска</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использование настройки по умолчанию</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать стандартный поиск</v8:content> + </v8:item> + + + xs:boolean + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>ОК</v8:content> + </v8:item> + + + + ru + ОК + + + ОК + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отмена</v8:content> + </v8:item> + + + + ru + Отмена + + + Отмена + DontUse + + +
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/НастройкаВариантаПоиска/Ext/Form/Module.bsl b/src/Catalogs/Номенклатура/Forms/НастройкаВариантаПоиска/Ext/Form/Module.bsl new file mode 100644 index 0000000..1c18375 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/НастройкаВариантаПоиска/Ext/Form/Module.bsl @@ -0,0 +1,100 @@ + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. + Возврат; + КонецЕсли; + + ИспользоватьППД = ПолучитьФункциональнуюОпцию("ИспользоватьПолнотекстовыйПоискПриПодбореТоваров"); + ИспользоватьСтандартныйПоиск = Константы.ИспользоватьСтандартныйПоискПриПодбореТоваров.Получить(); + + Если ИспользоватьППД Тогда + Элементы.ПодсказкиКРасширенномуПоиску.ТекущаяСтраница = Элементы.ИспользуетсяППД; + Иначе + Элементы.ПодсказкиКРасширенномуПоиску.ТекущаяСтраница = Элементы.НеИспользуетсяППД; + КонецЕсли; + + Если ИспользоватьСтандартныйПоиск Тогда + Элементы.ПодсказкиКИспользованиюНастройкиПоУмолчанию.ТекущаяСтраница = Элементы.СтандартныйПоиск; + Иначе + Элементы.ПодсказкиКИспользованиюНастройкиПоУмолчанию.ТекущаяСтраница = Элементы.РасширенныйПоиск; + КонецЕсли; + + Если Параметры.ВариантПоискаТоваров = "ПоУмолчанию" Тогда + ИспользованиеНастройкиПоУмолчанию = "ПоУмолчанию"; + ВариантПоиска = ?(ИспользоватьСтандартныйПоиск, "Стандартный", "Расширенный"); + Иначе + ИспользованиеНастройкиПоУмолчанию = "Индивидуально"; + ВариантПоиска = ?(Параметры.ВариантПоискаТоваров = "Стандартный", "Стандартный", "Расширенный"); + КонецЕсли; + + Если ИспользованиеНастройкиПоУмолчанию = "ПоУмолчанию" Тогда + Элементы.ГруппаВариантПоиска.Доступность = Ложь; + Иначе + Элементы.ГруппаВариантПоиска.Доступность = Истина; + КонецЕсли; + + СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура ИспользованиеНастройкиПоУмолчанию1ПриИзменении(Элемент) + + Если ИспользованиеНастройкиПоУмолчанию = "ПоУмолчанию" Тогда + Элементы.ГруппаВариантПоиска.Доступность = Ложь; + ВариантПоиска = ?(ИспользоватьСтандартныйПоиск, "Стандартный", "Расширенный"); + Иначе + Элементы.ГруппаВариантПоиска.Доступность = Истина; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИспользованиеНастройкиПоУмолчанию2ПриИзменении(Элемент) + + Если ИспользованиеНастройкиПоУмолчанию = "ПоУмолчанию" Тогда + Элементы.ГруппаВариантПоиска.Доступность = Ложь; + ВариантПоиска = ?(ИспользоватьСтандартныйПоиск, "Стандартный", "Расширенный"); + Иначе + Элементы.ГруппаВариантПоиска.Доступность = Истина; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОК(Команда) + + СтруктураПараметров = Новый Структура; + + Если ИспользованиеНастройкиПоУмолчанию = "ПоУмолчанию" Тогда + СтруктураПараметров.Вставить("ВариантПоискаТоваров", "ПоУмолчанию"); + Иначе + СтруктураПараметров.Вставить("ВариантПоискаТоваров", ВариантПоиска); + КонецЕсли; + + СтруктураПараметров.Вставить("ИспользоватьСтандартныйПоиск",ИспользоватьСтандартныйПоиск); + + Закрыть(СтруктураПараметров); + +КонецПроцедуры + +&НаКлиенте +Процедура Отмена(Команда) + Закрыть(Неопределено); +КонецПроцедуры + +#КонецОбласти +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда); + +КонецПроцедуры + +#КонецОбласти + diff --git a/src/Catalogs/Номенклатура/Forms/НастройкиПараметровКопированияДополнительныхДанных.xml b/src/Catalogs/Номенклатура/Forms/НастройкиПараметровКопированияДополнительныхДанных.xml new file mode 100644 index 0000000..bd4e785 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/НастройкиПараметровКопированияДополнительныхДанных.xml @@ -0,0 +1,21 @@ + + +
+ + НастройкиПараметровКопированияДополнительныхДанных + + + ru + Копирование связанной информации + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/НастройкиПараметровКопированияДополнительныхДанных/Ext/Form.xml b/src/Catalogs/Номенклатура/Forms/НастройкиПараметровКопированияДополнительныхДанных/Ext/Form.xml new file mode 100644 index 0000000..cc6b3d0 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/НастройкиПараметровКопированияДополнительныхДанных/Ext/Form.xml @@ -0,0 +1,193 @@ + +
+ + false + + + ПриСозданииНаСервере + + + + ИсточникКопирования + + + + + List + false + false +
false
+ false + false + true + AsFile + ПараметрыКопированияДополнительныхДанных + ПараметрыКопированияДополнительныхДанных.Picture + + + false + + + + + ПараметрыКопированияДополнительныхДанных + SearchStringRepresentation + + + + + + + ПараметрыКопированияДополнительныхДанных + ViewStatusRepresentation + + Left + + + + + + ПараметрыКопированияДополнительныхДанных + SearchControl + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Параметры копирования дополнительных данных группа</v8:content> + </v8:item> + + InCell + + + + ПараметрыКопированияДополнительныхДанных.Check + EnterOnInput + Auto + + + + + ПараметрыКопированияДополнительныхДанных.Presentation + EnterOnInput + + + + + + +
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Командная панель формы</v8:content> + </v8:item> + + Right + + + + + + +
+ + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Источник копирования</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Параметры копирования дополнительных данных</v8:content> + </v8:item> + + + v8:ValueListType + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Копировать</v8:content> + </v8:item> + + + + ru + Копировать + + + Копировать + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отмена</v8:content> + </v8:item> + + + + ru + Отмена + + + Отмена + DontUse + + + + + + cfg:CatalogRef.Номенклатура + + + + + v8:ValueListType + + + +
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/НастройкиПараметровКопированияДополнительныхДанных/Ext/Form/Module.bsl b/src/Catalogs/Номенклатура/Forms/НастройкиПараметровКопированияДополнительныхДанных/Ext/Form/Module.bsl new file mode 100644 index 0000000..e4b09bb --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/НастройкиПараметровКопированияДополнительныхДанных/Ext/Form/Module.bsl @@ -0,0 +1,36 @@ + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. + Возврат; + КонецЕсли; + + ИсточникКопирования = Параметры.ИсточникКопирования; + + ПараметрыКопированияДополнительныхДанных = Параметры.ПараметрыКопированияДополнительныхДанных; + +КонецПроцедуры + +#КонецОбласти + + +#Область ОбработкаКоманд + +&НаКлиенте +Процедура Копировать(Команда) + + Закрыть(ПараметрыКопированияДополнительныхДанных); + +КонецПроцедуры + +&НаКлиенте +Процедура Отмена(Команда) + + Закрыть(Неопределено); + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/РазблокированиеРеквизитов.xml b/src/Catalogs/Номенклатура/Forms/РазблокированиеРеквизитов.xml new file mode 100644 index 0000000..1465654 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/РазблокированиеРеквизитов.xml @@ -0,0 +1,21 @@ + + +
+ + РазблокированиеРеквизитов + + + ru + Разблокирование реквизитов + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/РазблокированиеРеквизитов/Ext/Form.xml b/src/Catalogs/Номенклатура/Forms/РазблокированиеРеквизитов/Ext/Form.xml new file mode 100644 index 0000000..b7b3453 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/РазблокированиеРеквизитов/Ext/Form.xml @@ -0,0 +1,361 @@ + +
+ + false + + + + + + + ПриСозданииНаСервере + + + + false + 54 + false + web:FireBrick + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизиты не рекомендуется изменять, если номенклатура уже выбрана в документах.</v8:content> + </v8:item> + + + + + + ВестиУчетПоГТД + Right + Auto + + + + + ПрослеживаемыйТовар + Right + Auto + + + + + ПереноситьРНПТМатериала + Right + Auto + + + + + ОблагаетсяНДСУПокупателя + Right + Auto + + + + + СтавкаНДС + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование ставки НДС</v8:content> + </v8:item> + + Right + Auto + + + + + КодТНВЭД + Right + Auto + + + + + Операции0 + Right + Auto + + + + + ГруппаФинансовогоУчета + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование группы финансового учета</v8:content> + </v8:item> + + Right + Auto + + + + + ЦеноваяГруппа + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование ценовой группы</v8:content> + </v8:item> + + Right + Auto + + + + + НаборУпаковок + Right + Auto + + + + + ЕдиницаИзмерения + Right + Auto + + + + + Качество + Right + Auto + + + + + Принципал + Right + Auto + + + + + Контрагент + Right + Auto + + + + + АлкогольнаяПродукцияВоВскрытойТаре + Right + Auto + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование флага "Импортный товар (учет по ГТД)"</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование вид номенклатуры</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование ценовая группа</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование набора упаковок</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование единицы измерения</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование качества</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование принципала</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование контрагента</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Имена реквизитов формы</v8:content> + </v8:item> + + + v8:ValueListType + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование флага "Алкогольная продукция во вскрытой таре"</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование флага "Облагается НДС у покупателя товаров"</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование ТН ВЭД</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование флага "Прослеживаемый товар"</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа финансового учета</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование флага "РНПТ может переноситься на продукцию"</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование Операции НДС 0%</v8:content> + </v8:item> + + + xs:boolean + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Разрешить редактирование</v8:content> + </v8:item> + + + + ru + Разрешить редактирование + + + РазрешитьРедактирование + DontUse + + +
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/РазблокированиеРеквизитов/Ext/Form/Module.bsl b/src/Catalogs/Номенклатура/Forms/РазблокированиеРеквизитов/Ext/Form/Module.bsl new file mode 100644 index 0000000..5c63dd5 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/РазблокированиеРеквизитов/Ext/Form/Module.bsl @@ -0,0 +1,71 @@ + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. + Возврат; + КонецЕсли; + + // Скроем реквизиты, отключенные функциональными опциями + РеквизитыФормы = ПолучитьРеквизиты(); + НеиспользуемыеРеквизиты = Справочники.Номенклатура.РеквизитыОтключенныеПоФО(); + + Для Каждого Реквизит Из РеквизитыФормы Цикл + Если Элементы.Найти(Реквизит.Имя) = Неопределено Тогда + Продолжить; + КонецЕсли; + + Если Реквизит.Имя = "ВестиУчетПоГТД" Тогда + ЗаголовокРеквизита = НСтр("ru = 'Разрешить редактирование флага ""%1""'"); + Элементы[Реквизит.Имя].Заголовок = СтрШаблон(ЗаголовокРеквизита, + НоменклатураЛокализация.ЗаголовокВестиУчетПоГТД()); + КонецЕсли; + + ИмяРеквизитаНоменклатуры = Реквизит.Имя; + РеквизитИспользуется = НеиспользуемыеРеквизиты.Найти(ИмяРеквизитаНоменклатуры) = Неопределено; + + ЭтотОбъект[Реквизит.Имя] = РеквизитИспользуется; + Элементы[Реквизит.Имя].Видимость = РеквизитИспользуется; + + ИменаРеквизитовФормы.Добавить(Реквизит.Имя, ИмяРеквизитаНоменклатуры); + КонецЦикла; + + СобытияФорм.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура РазрешитьРедактирование(Команда) + + // Для всех включенных флажков сформируем массив соответствующих им реквизитов номенклатуры. + Результат = Новый Массив; + + Для Каждого Реквизит Из ИменаРеквизитовФормы Цикл + Если ЭтотОбъект[Реквизит.Значение] Тогда + Результат.Добавить(Реквизит.Представление); + КонецЕсли; + КонецЦикла; + + // Некоторые флажки управляют несколькими реквизитами номенклатуры + Если НаборУпаковок Тогда + Результат.Добавить("ИспользоватьУпаковки"); + КонецЕсли; + + Закрыть(Результат); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтотОбъект, Команда); + +КонецПроцедуры + +#КонецОбласти diff --git a/src/Catalogs/Номенклатура/Forms/СовместныеПродажи.xml b/src/Catalogs/Номенклатура/Forms/СовместныеПродажи.xml new file mode 100644 index 0000000..c291228 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/СовместныеПродажи.xml @@ -0,0 +1,21 @@ + + +
+ + СовместныеПродажи + + + ru + Совместные продажи + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/СовместныеПродажи/Ext/Form.xml b/src/Catalogs/Номенклатура/Forms/СовместныеПродажи/Ext/Form.xml new file mode 100644 index 0000000..14e652e --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/СовместныеПродажи/Ext/Form.xml @@ -0,0 +1,395 @@ + +
+ LockOwnerWindow + None + useIfNecessary + + + ПриСозданииНаСервере + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страницы</v8:content> + </v8:item> + + TabsOnTop + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура, продаваемая совместно с данной</v8:content> + </v8:item> + + + + + true + true + AsFile + НоменклатураПродаваемаяСовместноСДанной + НоменклатураПродаваемаяСовместноСДанной.DefaultPicture + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура продаваемая совместно с данной</v8:content> + </v8:item> + + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + true + + + + + + НоменклатураПродаваемаяСовместноСДанной + SearchStringRepresentation + + + + + + + НоменклатураПродаваемаяСовместноСДанной + ViewStatusRepresentation + + Left + + + + + + НоменклатураПродаваемаяСовместноСДанной + SearchControl + + + + + + + НоменклатураПродаваемаяСовместноСДанной.ХарактеристикаПредпосылка + + + + + НоменклатураПродаваемаяСовместноСДанной.НоменклатураСледствие + + + + + НоменклатураПродаваемаяСовместноСДанной.ХарактеристикаСледствие + + + + + НоменклатураПродаваемаяСовместноСДанной.ВариантАнализа + + + + + НоменклатураПродаваемаяСовместноСДанной.КоличествоСлучаев + + + + + НоменклатураПродаваемаяСовместноСДанной.ПроцентСлучаев + + + + + НоменклатураПродаваемаяСовместноСДанной.ДобавленоАвтоматически + Auto + + + + +
+
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура, с которой продается совместно данная</v8:content> + </v8:item> + + + + + true + true + AsFile + НоменклатураСКоторойПродаетсяСовместноДанная + НоменклатураСКоторойПродаетсяСовместноДанная.DefaultPicture + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура с которой продается совместно данная</v8:content> + </v8:item> + + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + true + + + + + + НоменклатураСКоторойПродаетсяСовместноДанная + SearchStringRepresentation + + + + + + + НоменклатураСКоторойПродаетсяСовместноДанная + ViewStatusRepresentation + + Left + + + + + + НоменклатураСКоторойПродаетсяСовместноДанная + SearchControl + + + + + + + НоменклатураСКоторойПродаетсяСовместноДанная.ХарактеристикаСледствие + + + + + НоменклатураСКоторойПродаетсяСовместноДанная.НоменклатураПредпосылка + + + + + НоменклатураСКоторойПродаетсяСовместноДанная.ХарактеристикаПредпосылка + + + + + НоменклатураСКоторойПродаетсяСовместноДанная.ВариантАнализа + + + + + НоменклатураСКоторойПродаетсяСовместноДанная.КоличествоСлучаев + + + + + НоменклатураСКоторойПродаетсяСовместноДанная.ПроцентСлучаев + + + + + НоменклатураСКоторойПродаетсяСовместноДанная.ДобавленоАвтоматически + Auto + + + + +
+
+
+
+
+
+ + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура продаваемая совместно с данной</v8:content> + </v8:item> + + + cfg:DynamicList + + + true + true + ВЫБРАТЬ + НоменклатураПродаваемаяСовместно.НоменклатураПредпосылка, + НоменклатураПродаваемаяСовместно.ХарактеристикаПредпосылка, + НоменклатураПродаваемаяСовместно.НоменклатураСледствие, + НоменклатураПродаваемаяСовместно.ХарактеристикаСледствие, + НоменклатураПродаваемаяСовместно.ВариантАнализа, + НоменклатураПродаваемаяСовместно.ДобавленоАвтоматически, + НоменклатураПродаваемаяСовместно.ПроцентСлучаев, + НоменклатураПродаваемаяСовместно.КоличествоСлучаев +ИЗ + РегистрСведений.НоменклатураПродаваемаяСовместно КАК НоменклатураПродаваемаяСовместно + + НоменклатураПредпосылка + НоменклатураПредпосылка + + + ХарактеристикаПредпосылка + ХарактеристикаПредпосылка + + + НоменклатураСледствие + НоменклатураСледствие + + + ХарактеристикаСледствие + ХарактеристикаСледствие + + + ВариантАнализа + ВариантАнализа + + + ДобавленоАвтоматически + ДобавленоАвтоматически + + + ПроцентСлучаев + ПроцентСлучаев + + + КоличествоСлучаев + КоличествоСлучаев + + InformationRegister.НоменклатураПродаваемаяСовместно + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура с которой продается совместно данная</v8:content> + </v8:item> + + + cfg:DynamicList + + + true + true + ВЫБРАТЬ + НоменклатураПродаваемаяСовместно.НоменклатураПредпосылка, + НоменклатураПродаваемаяСовместно.ХарактеристикаПредпосылка, + НоменклатураПродаваемаяСовместно.НоменклатураСледствие, + НоменклатураПродаваемаяСовместно.ХарактеристикаСледствие, + НоменклатураПродаваемаяСовместно.ВариантАнализа, + НоменклатураПродаваемаяСовместно.ДобавленоАвтоматически, + НоменклатураПродаваемаяСовместно.ПроцентСлучаев, + НоменклатураПродаваемаяСовместно.КоличествоСлучаев +ИЗ + РегистрСведений.НоменклатураПродаваемаяСовместно КАК НоменклатураПродаваемаяСовместно + + НоменклатураПредпосылка + НоменклатураПредпосылка + + + ХарактеристикаПредпосылка + ХарактеристикаПредпосылка + + + НоменклатураСледствие + НоменклатураСледствие + + + ХарактеристикаСледствие + ХарактеристикаСледствие + + + ВариантАнализа + ВариантАнализа + + + ДобавленоАвтоматически + ДобавленоАвтоматически + + + ПроцентСлучаев + ПроцентСлучаев + + + КоличествоСлучаев + КоличествоСлучаев + + InformationRegister.НоменклатураПродаваемаяСовместно + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отбор номенклатура</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + + + + \ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/СовместныеПродажи/Ext/Form/Module.bsl b/src/Catalogs/Номенклатура/Forms/СовместныеПродажи/Ext/Form/Module.bsl new file mode 100644 index 0000000..ee6ba30 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/СовместныеПродажи/Ext/Form/Module.bsl @@ -0,0 +1,50 @@ + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест". + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + АвтоЗаголовок = Ложь; + Заголовок = НСтр("ru = 'Совместные продажи'"); + + ОтборНоменклатура = Параметры.Ключ; + + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( + НоменклатураПродаваемаяСовместноСДанной, + "НоменклатураПредпосылка", + ОтборНоменклатура, + ВидСравненияКомпоновкиДанных.Равно, + "НоменклатураПредпосылка", + Истина); + + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( + НоменклатураСКоторойПродаетсяСовместноДанная, + "НоменклатураСледствие", + ОтборНоменклатура, + ВидСравненияКомпоновкиДанных.Равно, + "НоменклатураСледствие", + Истина); + + СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда); + +КонецПроцедуры + +#КонецОбласти + + diff --git a/src/Catalogs/Номенклатура/Forms/СоглашенияСПоставщикамиПоХарактеристикам.xml b/src/Catalogs/Номенклатура/Forms/СоглашенияСПоставщикамиПоХарактеристикам.xml new file mode 100644 index 0000000..04b7564 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/СоглашенияСПоставщикамиПоХарактеристикам.xml @@ -0,0 +1,21 @@ + + +
+ + СоглашенияСПоставщикамиПоХарактеристикам + + + ru + Соглашения с поставщиками по характеристикам + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/СоглашенияСПоставщикамиПоХарактеристикам/Ext/Form.xml b/src/Catalogs/Номенклатура/Forms/СоглашенияСПоставщикамиПоХарактеристикам/Ext/Form.xml new file mode 100644 index 0000000..bbd924e --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/СоглашенияСПоставщикамиПоХарактеристикам/Ext/Form.xml @@ -0,0 +1,250 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Соглашения с поставщиками по характеристикам</v8:content> + </v8:item> + + false + + false + + + ОбработкаОповещения + ПриСозданииНаСервере + + + + Номенклатура + + + + + List + false + true + true + true + AsFile + Список + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список</v8:content> + </v8:item> + + + Add + Change + Copy + CopyToClipboard + Delete + EndEdit + MoveDown + MoveUp + SelectAll + ShowMultipleSelection + ShowRowRearrangement + + + + + + + + + + + + + Список + SearchStringRepresentation + + + + + + + Список + ViewStatusRepresentation + + Left + + + + + + Список + SearchControl + + + + + + СписокВыбор + + + + Список.Характеристика + EnterOnInput + + + + + Список.Принципал + EnterOnInput + true + + + + + Список.Контрагент + EnterOnInput + + + + + Список.ДействиеПредставление + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Действие</v8:content> + </v8:item> + + EnterOnInput + true + + + + +
+
+ + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список</v8:content> + </v8:item> + + + v8:ValueTable + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Характеристика</v8:content> + </v8:item> + + + cfg:CatalogRef.ХарактеристикиНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Принципал</v8:content> + </v8:item> + + + cfg:CatalogRef.Партнеры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Контрагент</v8:content> + </v8:item> + + + cfg:CatalogRef.Контрагенты + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Действие</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Действие представление</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Есть соглашение по характеристике</v8:content> + </v8:item> + + + xs:boolean + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Можно добавлять соглашения</v8:content> + </v8:item> + + + xs:boolean + + + + + + + cfg:CatalogRef.Номенклатура + + true + + +
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/СоглашенияСПоставщикамиПоХарактеристикам/Ext/Form/Module.bsl b/src/Catalogs/Номенклатура/Forms/СоглашенияСПоставщикамиПоХарактеристикам/Ext/Form/Module.bsl new file mode 100644 index 0000000..6578513 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/СоглашенияСПоставщикамиПоХарактеристикам/Ext/Form/Module.bsl @@ -0,0 +1,256 @@ + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + УстановитьУсловноеОформление(); + + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + Параметры.Свойство("Номенклатура", Номенклатура); + + ЗаполнитьСписок(); + + МожноДобавлятьСоглашения = ПравоДоступа("Добавление", Метаданные.Справочники.СоглашенияСПоставщиками); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "Запись_СоглашенияСПоставщиками" Тогда + ЗаполнитьСписок() + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийТаблицыФормыСписок + +&НаКлиенте +Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + Если Поле = Элементы.СписокДействиеПредставление Тогда + + ТекущиеДанные = Элементы.Список.ТекущиеДанные; + Гиперссылка = ТекущиеДанные.Действие; + + ЗначенияЗаполненияСоглашений = Новый Структура; + ЗначенияЗаполненияСоглашений.Вставить("Партнер", ТекущиеДанные.Принципал); + ЗначенияЗаполненияСоглашений.Вставить("Контрагент", ТекущиеДанные.Контрагент); + ЗначенияЗаполненияСоглашений.Вставить("Статус", ПредопределенноеЗначение("Перечисление.СтатусыСоглашенийСПоставщиками.Действует")); + ЗначенияЗаполненияСоглашений.Вставить("ХозяйственнаяОперация", ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОказаниеАгентскихУслуг")); + + ПараметрыПереходаПоГиперссылке = Новый Структура("ИмяФормы, ПараметрыФормы"); + + Если Гиперссылка = "СоглашенияВыбрать" + Или Гиперссылка = "СписокСоглашенийПоХарактеристикам" Тогда + + ПартнерыДляОтбора = Новый Массив; + ПартнерыДляОтбора.Добавить(ПредопределенноеЗначение("Справочник.Партнеры.ПустаяСсылка")); + ПартнерыДляОтбора.Добавить(ТекущиеДанные.Принципал); + + КонтрагентыДляОтбора = Новый Массив; + КонтрагентыДляОтбора.Добавить(ПредопределенноеЗначение("Справочник.Контрагенты.ПустаяСсылка")); + КонтрагентыДляОтбора.Добавить(ТекущиеДанные.Контрагент); + + ОтборСоглашений = Новый Структура; + ОтборСоглашений.Вставить("Партнер", Новый ФиксированныйМассив(ПартнерыДляОтбора)); + ОтборСоглашений.Вставить("Контрагент", Новый ФиксированныйМассив(КонтрагентыДляОтбора)); + ОтборСоглашений.Вставить("ХозяйственнаяОперация", ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОказаниеАгентскихУслуг")); + + ОтборПользовательский = Новый Структура; + ОтборПользовательский.Вставить("Состояние", ПредопределенноеЗначение("Перечисление.СостоянияСоглашенийСПоставщиками.Действует")); + + ПараметрыСозданияСоглашения = Новый Структура; + Если Гиперссылка = "СоглашенияВыбрать" Тогда + ЗначенияЗаполненияСоглашений.Вставить("АгентскаяУслугаНоменклатура", Номенклатура); + ЗначенияЗаполненияСоглашений.Вставить("АгентскаяУслугаХарактеристика", ТекущиеДанные.Характеристика); + + ПараметрыСозданияСоглашения.Вставить("ДанныеУслуги", ЗначенияЗаполненияСоглашений); + КонецЕсли; + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("Отбор", ОтборСоглашений); + ПараметрыФормы.Вставить("СтруктураБыстрогоОтбора", ОтборПользовательский); + ПараметрыФормы.Вставить("ВключитьОтборПоАгентскойУслуге", Гиперссылка = "СписокСоглашенийПоХарактеристикам"); + ПараметрыФормы.Вставить("АгентскаяУслугаНоменклатура", Номенклатура); + ПараметрыФормы.Вставить("АгентскаяУслугаХарактеристика", ТекущиеДанные.Характеристика); + ПараметрыФормы.Вставить("ДополнительныеПараметры", ПараметрыСозданияСоглашения); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "Справочник.СоглашенияСПоставщиками.ФормаСписка"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли Гиперссылка = "СоглашенияСоздать" Тогда + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ЗначенияЗаполнения", ЗначенияЗаполненияСоглашений); + ПараметрыФормы.Вставить("АгентскаяУслугаНоменклатура", Номенклатура); + ПараметрыФормы.Вставить("АгентскаяУслугаХарактеристика", ТекущиеДанные.Характеристика); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "Справочник.СоглашенияСПоставщиками.ФормаОбъекта"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + Иначе + + ТекстИсключения = НСтр("ru = 'Неопределено действие перехода по гиперссылке.'"); + + ВызватьИсключение ТекстИсключения; + + КонецЕсли; + + ОткрытьФорму(ПараметрыПереходаПоГиперссылке.ИмяФормы, + ПараметрыПереходаПоГиперссылке.ПараметрыФормы, + , + ЭтаФорма.УникальныйИдентификатор, + , + , + , + ЭтаФорма.РежимОткрытияОкна); + + ИначеЕсли Поле = Элементы.СписокПринципал Тогда + ПоказатьЗначение(, Элементы.Список.ТекущиеДанные.Принципал); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура УстановитьУсловноеОформление() + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СписокДействиеПредставление.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.ЕстьСоглашениеПоХарактеристике"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("МожноДобавлятьСоглашения"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет); + Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Не выбрана в соглашениях'")); + Элемент.Оформление.УстановитьЗначениеПараметра("Доступность", Ложь); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьСписок() + + Список.Очистить(); + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ВЫБОР + | КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры) + | ТОГДА СпрНоменклатура.Ссылка + | КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры) + | ТОГДА СпрНоменклатура.ВидНоменклатуры + | КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры) + | ТОГДА СпрНоменклатура.ВладелецХарактеристик + | КОНЕЦ КАК Ссылка + |ПОМЕСТИТЬ ВладелецХарактеристик + |ИЗ + | Справочник.Номенклатура КАК СпрНоменклатура + |ГДЕ + | СпрНоменклатура.Ссылка = &Номенклатура + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ХарактеристикиНоменклатуры.Ссылка КАК Характеристика, + | ХарактеристикиНоменклатуры.Принципал КАК Принципал, + | ХарактеристикиНоменклатуры.Контрагент КАК Контрагент, + | МАКСИМУМ(НЕ СоглашенияСПоставщиками.Ссылка ЕСТЬ NULL) КАК ЕстьСоглашения, + | СУММА(ВЫБОР + | КОГДА НЕ ТЧАгентскиеУслуги.Ссылка ЕСТЬ NULL + | ИЛИ НЕ СоглашенияСПоставщиками.ИспользоватьУказанныеАгентскиеУслуги + | ТОГДА 1 + | ИНАЧЕ 0 + | КОНЕЦ) КАК КоличествоСоглашений, + | МАКСИМУМ(НЕ ТЧАгентскиеУслуги.Ссылка ЕСТЬ NULL + | ИЛИ НЕ ЕСТЬNULL(СоглашенияСПоставщиками.ИспользоватьУказанныеАгентскиеУслуги, ИСТИНА)) КАК ЕстьСоглашениеПоХарактеристике + |ИЗ + | Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СоглашенияСПоставщиками КАК СоглашенияСПоставщиками + | ПО ХарактеристикиНоменклатуры.Принципал = СоглашенияСПоставщиками.Партнер + | И (ХарактеристикиНоменклатуры.Контрагент = СоглашенияСПоставщиками.Контрагент + | ИЛИ СоглашенияСПоставщиками.Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)) + | И СоглашенияСПоставщиками.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСПоставщиками.Действует) + | И СоглашенияСПоставщиками.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОказаниеАгентскихУслуг) + | И (СоглашенияСПоставщиками.ДатаНачалаДействия = ДАТАВРЕМЯ(1, 1, 1) + | ИЛИ СоглашенияСПоставщиками.ДатаНачалаДействия <= &ТекущаяДата) + | И (СоглашенияСПоставщиками.ДатаОкончанияДействия = ДАТАВРЕМЯ(1, 1, 1) + | ИЛИ СоглашенияСПоставщиками.ДатаОкончанияДействия >= &ТекущаяДата) + | + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СоглашенияСПоставщиками.АгентскиеУслуги КАК ТЧАгентскиеУслуги + | ПО СоглашенияСПоставщиками.Ссылка = ТЧАгентскиеУслуги.Ссылка + | И ТЧАгентскиеУслуги.Номенклатура = &Номенклатура + | И ТЧАгентскиеУслуги.Характеристика = ХарактеристикиНоменклатуры.Ссылка + |ГДЕ + | ХарактеристикиНоменклатуры.Владелец В + | (ВЫБРАТЬ + | ВладелецХарактеристик.Ссылка + | ИЗ + | ВладелецХарактеристик) + | И НЕ ХарактеристикиНоменклатуры.ПометкаУдаления + | + |СГРУППИРОВАТЬ ПО + | ХарактеристикиНоменклатуры.Ссылка, + | ХарактеристикиНоменклатуры.Принципал, + | ХарактеристикиНоменклатуры.Контрагент + | + |УПОРЯДОЧИТЬ ПО + | ХарактеристикиНоменклатуры.Представление"; + + Запрос.УстановитьПараметр("Номенклатура", Номенклатура); + Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДатаСеанса()); + + Соглашения = Запрос.Выполнить().Выгрузить(); + + Для Каждого СтрТабл Из Соглашения Цикл + + НоваяСтрока = Список.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрТабл); + + Если Не СтрТабл.ЕстьСоглашения Тогда + ГиперссылкаСоглашения = "СоглашенияСоздать"; + ЗаголовокГиперссылки = НСтр("ru = 'Создать соглашение'"); + ИначеЕсли Не СтрТабл.ЕстьСоглашениеПоХарактеристике Тогда + ГиперссылкаСоглашения = "СоглашенияВыбрать"; + ЗаголовокГиперссылки = НСтр("ru = 'Выбрать в существующем соглашении'"); + Иначе + ГиперссылкаСоглашения = "СписокСоглашенийПоХарактеристикам"; + + СтрокаСоглашений = СтрокаСЧислом(";%1 соглашении;;%1 соглашениях;%1 соглашениях;%1 соглашениях", + СтрТабл.КоличествоСоглашений, + ВидЧисловогоЗначения.Количественное, + "L=ru"); + + ЗаголовокГиперссылки = НСтр("ru = 'Выбрано в %КоличествоСоглашений%'"); + ЗаголовокГиперссылки = СтрЗаменить(ЗаголовокГиперссылки, "%КоличествоСоглашений%", СтрокаСоглашений); + КонецЕсли; + + НоваяСтрока.Действие = ГиперссылкаСоглашения; + НоваяСтрока.ДействиеПредставление = ЗаголовокГиперссылки; + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти diff --git a/src/Catalogs/Номенклатура/Forms/ФормаВыбора.xml b/src/Catalogs/Номенклатура/Forms/ФормаВыбора.xml new file mode 100644 index 0000000..1c3b343 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаВыбора.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаВыбора + + + ru + Форма выбора + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаВыбора/Ext/Form.xml b/src/Catalogs/Номенклатура/Forms/ФормаВыбора/Ext/Form.xml new file mode 100644 index 0000000..0d2aff9 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаВыбора/Ext/Form.xml @@ -0,0 +1,3463 @@ + +
+ LockOwnerWindow + + CancelSearch + Change + Choose + Copy + Create + CreateFolder + Delete + Find + FindByCurrentValue + HierarchicalList + LevelDown + LevelUp + List + SetDeletionMark + Tree + + + false + + + ОбработкаОповещения + ПриОткрытии + ПриСозданииНаСервере + ПриЗакрытии + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Форма таблицы</v8:content> + </v8:item> + + Horizontal + Usual + None + LeftWide + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страницы списков</v8:content> + </v8:item> + + None + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страница стандартный поиск номенклатура</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа пользовательских настроек</v8:content> + </v8:item> + + + + + List + true + SingleRow + DontUse + true + Use + ExpandTopLevel + true + true + AsFile + СписокНоменклатура + СписокНоменклатура.ИндексКартинки + + CommonPicture.Номенклатура + false + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список стандартный поиск номенклатура</v8:content> + </v8:item> + + + Choose + CreateFolder + FindByCurrentValue + HierarchicalList + LevelDown + LevelUp + List + ListSettings + Tree + + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + ГруппаПользовательскихНастроек + true + + + + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Установить фильтр</v8:content> + </v8:item> + + + + ru + Расширенный поиск командная панель установить фильтр + + + + CommonPicture.ФильтрПоСвойствам + false + + Picture + + + + + + + + + + + + + + + СписокСтандартныйПоискНоменклатура + SearchStringRepresentation + + + + + + + СписокСтандартныйПоискНоменклатура + ViewStatusRepresentation + + Left + + + + + + СписокСтандартныйПоискНоменклатура + SearchControl + + + + + + СписокСтандартныйПоискНоменклатураВыбор + СписокПередНачаломДобавления + СписокПриАктивизацииСтроки + + + + СписокНоменклатура.Наименование + + + + + СписокНоменклатура.Артикул + 16 + + + + + СписокНоменклатура.Ссылка + + false + + + + + +
+
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страница расширенный поиск номенклатура</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Поиск</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Расширенный поиск</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + СтрокаПоискаНоменклатура + None + true + true + + + + СтрокаПоискаНоменклатураПриИзменении + СтрокаПоискаНоменклатураАвтоПодбор + СтрокаПоискаНоменклатураОчистка + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Командная панель поиск</v8:content> + </v8:item> + + 3 + false + + + + + + + НайтиНоменклатуруПоТочномуСоответствию + Right + Auto + + + + НайтиНоменклатуруПоТочномуСоответствиюПриИзменении + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Командная панель списка расширенного поиска, кнопка "Выбрать"</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Командная панель список расширенный поиск номенклатура</v8:content> + </v8:item> + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа стандартные команды списка расширенный поиск номенклатура</v8:content> + </v8:item> + + Item.СписокРасширенныйПоискНоменклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Установить фильтр</v8:content> + </v8:item> + + + CommonPicture.ФильтрПоСвойствам + false + + Picture + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Горячие клавиши</v8:content> + </v8:item> + + + + + + + + + + + + + + List + true + SingleRow + DontUse + true + DontUse + ExpandTopLevel + AsFile + СписокНоменклатура + СписокНоменклатура.ИндексКартинки + + CommonPicture.Номенклатура + false + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список расширенный поиск номенклатура</v8:content> + </v8:item> + + + CancelSearch + Choose + CreateFolder + Find + FindByCurrentValue + HierarchicalList + LevelDown + LevelUp + List + ListSettings + Tree + + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + true + + + + + + + + false + + + + + СписокРасширенныйПоискНоменклатура + SearchStringRepresentation + + + + + + + СписокРасширенныйПоискНоменклатура + ViewStatusRepresentation + + Left + + + + + + СписокРасширенныйПоискНоменклатура + SearchControl + + + + + + СписокРасширенныйПоискНоменклатураВыбор + СписокПередНачаломДобавления + СписокПриАктивизацииСтроки + + + + СписокНоменклатура.Наименование + + + + + СписокНоменклатура.Артикул + 16 + + + + + СписокНоменклатура.Ссылка + + false + + + + + +
+
+
+
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Панель категорий</v8:content> + </v8:item> + + 35 + Vertical + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Фильтры номенклатуры</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + ИспользоватьФильтры + None + Auto + + + + ИспользоватьФильтрыПриИзменении + + + + НадписьВариантНавигации + None + + + + НадписьВариантНавигацииНавигационнойСсылки + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Командная панель вариант навигации</v8:content> + </v8:item> + + 10 + Right + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Создать</v8:content> + </v8:item> + + + StdPicture.CreateListItem + true + + Picture + + + + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Варианты навигации</v8:content> + </v8:item> + + None + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Навигация иерархия номенклатуры</v8:content> + </v8:item> + + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Командная панель фильтры</v8:content> + </v8:item> + + + + + + + + + + + Tree + None + SingleRow +
false
+ DontUse + true + ExpandTopLevel + true + true + AsFile + ИерархияНоменклатуры + ИерархияНоменклатуры.DefaultPicture + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Иерархия номенклатуры</v8:content> + </v8:item> + + + CancelSearch + Delete + Find + HierarchicalList + LevelDown + LevelUp + List + MoveItem + Tree + + false + 58 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + true + + true + false + Auto + true + + false + + + + + + + + + false + + + + + ИерархияНоменклатуры + SearchStringRepresentation + + + + + + + ИерархияНоменклатуры + ViewStatusRepresentation + + Left + + + + + + ИерархияНоменклатуры + SearchControl + + + + + + ИерархияНоменклатурыПриАктивизацииСтроки + + + + ИерархияНоменклатуры.Ref + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа номенклатуры</v8:content> + </v8:item> + + + + + +
+
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Навигация виды номенклатуры</v8:content> + </v8:item> + + false + + + + ВидНоменклатуры + false + false + true + Items + true + + + + ВидНоменклатурыПриИзменении + + + + Tree + SingleRow +
false
+ DontUse + true + true + true + AsFile + ВидыНоменклатуры + ВидыНоменклатуры.DefaultPicture + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Виды номенклатуры</v8:content> + </v8:item> + + + CancelSearch + CopyToClipboard + Delete + DynamicListStandardSettings + Find + FindByCurrentValue + HierarchicalList + List + ListSettings + LoadDynamicListSettings + OutputList + Refresh + SaveDynamicListSettings + Tree + + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + true + + false + false + Auto + true + + false + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Виды номенклатуры контекстное меню стандартные команды</v8:content> + </v8:item> + + Item.ВидыНоменклатуры + + + + + + false + + + + + ВидыНоменклатуры + SearchStringRepresentation + + + + + + + ВидыНоменклатуры + ViewStatusRepresentation + + Left + + + + + + ВидыНоменклатуры + SearchControl + + + + + + ВидыНоменклатурыПроверкаПеретаскивания + ВидыНоменклатурыПриАктивизацииСтроки + ВидыНоменклатурыПеретаскивание + + + + ВидыНоменклатуры.Наименование + + + + + ВидыНоменклатуры.Ссылка + + false + + + + + +
+ + Tree + false +
false
+ false + false + ExpandAllLevels + AsFile + ДеревоОтборов + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Дерево отборов</v8:content> + </v8:item> + + + Add + Change + Copy + CopyToClipboard + Delete + EndEdit + HierarchicalList + List + MoveDown + MoveUp + OutputList + SelectAll + SortListAsc + SortListDesc + Tree + + + false + + + false + + + + + ДеревоОтборов + SearchStringRepresentation + + + + + + + ДеревоОтборов + ViewStatusRepresentation + + Left + + + + + + ДеревоОтборов + SearchControl + + + + + + ДеревоОтборовВыбор + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Дерево отборов группа представление</v8:content> + </v8:item> + + InCell + + + + ДеревоОтборов.Отбор + EnterOnInput + Auto + + + + ДеревоОтборовОтборПриИзменении + + + + ДеревоОтборов.Представление + true + EnterOnInput + + + + + + + ДеревоОтборов.ПредставлениеОтбора + EnterOnInput + true + 15 + false + style:ГиперссылкаЦвет + + + + +
+
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страница товары другого качества</v8:content> + </v8:item> + + + + + НоменклатураИсходногоКачества + Items + + + + + true + + + + + + + НоменклатураИсходногоКачестваПриИзменении + + + + List + false +
false
+ false + false + true + true + AsFile + СписокКачества + СписокКачества.Picture + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список качества</v8:content> + </v8:item> + + + Add + Change + CheckAll + Copy + CopyToClipboard + Delete + EndEdit + MoveDown + MoveUp + Pickup + SelectAll + SortListAsc + SortListDesc + UncheckAll + + + + false + + + + + СписокКачества + SearchStringRepresentation + + + + + + + СписокКачества + ViewStatusRepresentation + + Left + + + + + + СписокКачества + SearchControl + + + + + + + СписокКачества.Check + EnterOnInput + Auto + + + + СписокКачестваПометкаПриИзменении + + + + СписокКачества.Value + true + EnterOnInput + + + + +
+
+
+
+
+ + СегментНоменклатуры + true + false + Items + + + + + + + + Enum.СпособыФормированияСегментов.EnumValue.ФормироватьВручную + + + + Enum.СпособыФормированияСегментов.EnumValue.ПериодическиОбновлять + + + + + + true + + + + СегментНоменклатурыПриИзменении + + +
+
+
+
+
+ + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список номенклатура</v8:content> + </v8:item> + + + cfg:DynamicList + + true + + СписокНоменклатура.ВидНоменклатуры + СписокНоменклатура.ИндексКартинки + СписокНоменклатура.Наименование + СписокНоменклатура.ПометкаУдаления + СписокНоменклатура.Родитель + СписокНоменклатура.Ссылка + + + true + true + ВЫБРАТЬ + СпрНоменклатура.Ссылка КАК Ссылка, + СпрНоменклатура.Код, + СпрНоменклатура.ПометкаУдаления КАК ПометкаУдаления, + СпрНоменклатура.Наименование, + СпрНоменклатура.Артикул, + СпрНоменклатура.ВидНоменклатуры, + СпрНоменклатура.ЕдиницаИзмерения, + СпрНоменклатура.СтавкаНДС, + СпрНоменклатура.ТипНоменклатуры, + СпрНоменклатура.Родитель, + ВЫБОР + КОГДА СпрНоменклатура.ЕстьТоварыДругогоКачества + ТОГДА 4 + ВЫБОР + КОГДА СпрНоменклатура.ПометкаУдаления + ТОГДА 1 + ИНАЧЕ 0 + КОНЕЦ + ВЫБОР + КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать) + ТОГДА 0 + ИНАЧЕ 2 + КОНЕЦ + ИНАЧЕ ВЫБОР + КОГДА СпрНоменклатура.ПометкаУдаления + ТОГДА 1 + ИНАЧЕ 0 + КОНЕЦ + ВЫБОР + КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать) + ТОГДА 0 + ИНАЧЕ 2 + КОНЕЦ + КОНЕЦ КАК ИндексКартинки, + ЕСТЬNULL(ВариантыКомплектацииНоменклатуры.СодержитТовары, ЛОЖЬ) КАК СодержитТовары, + ЕСТЬNULL(ВариантыКомплектацииНоменклатуры.СодержитУслуги, ЛОЖЬ) КАК СодержитУслуги, + СпрНоменклатура.ОсобенностьУчета КАК ОсобенностьУчета, + СпрНоменклатура.ИспользованиеХарактеристик КАК ИспользованиеХарактеристик, + СпрНоменклатура.Качество КАК Качество, + СпрНоменклатура.ВестиУчетСертификатовНоменклатуры КАК ВестиУчетСертификатовНоменклатуры, + СпрНоменклатура.ПродукцияМаркируемаяДляГИСМ КАК ПродукцияИзНатуральногоМеха +ИЗ + Справочник.Номенклатура КАК СпрНоменклатура + ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры + ПО (ВариантыКомплектацииНоменклатуры.Владелец = СпрНоменклатура.Ссылка) + И (ВариантыКомплектацииНоменклатуры.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) + И (ВариантыКомплектацииНоменклатуры.Основной) +ГДЕ + НЕ СпрНоменклатура.ЭтоГруппа +{ГДЕ + СпрНоменклатура.Ссылка.*} + +{ГДЕ + (СпрНоменклатура.Ссылка В + (ВЫБРАТЬ + Сегменты.Номенклатура + ИЗ + РегистрСведений.НоменклатураСегмента КАК Сегменты + ГДЕ + Сегменты.Сегмент = &СегментНоменклатуры)), + (ВЫБОР + КОГДА ВЫБОР + КОГДА СпрНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Набор) + ТОГДА ЕСТЬNULL(ВариантыКомплектацииНоменклатуры.ВариантРасчетаЦеныНабора, ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ПустаяСсылка)) + ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ПустаяСсылка) + КОНЕЦ В (&ВариантыРасчетаЦеныНабора) + ТОГДА ИСТИНА + ИНАЧЕ ЛОЖЬ + КОНЕЦ)} + + ИспользоватьИндивидуальныйШаблонЭтикетки + ИспользоватьИндивидуальныйШаблонЭтикетки + + + ВидАлкогольнойПродукции + ВидАлкогольнойПродукции + + + ДлинаЕдиницаИзмерения + ДлинаЕдиницаИзмерения + + + ВестиУчетПоГТД + ВестиУчетПоГТД + + + ВесЕдиницаИзмерения + ВесЕдиницаИзмерения + + + ПлощадьЗнаменатель + ПлощадьЗнаменатель + + + ПометкаУдаления + ПометкаУдаления + + + ОбъемДАЛ + ОбъемДАЛ + + + Ссылка + Ссылка + + + ВесМожноУказыватьВДокументах + ВесМожноУказыватьВДокументах + + + ЕдиницаДляОтчетов + ЕдиницаДляОтчетов + + + КодВидаНоменклатурнойКлассификации + КодВидаНоменклатурнойКлассификации + + + ВариантОформленияПродажи + ВариантОформленияПродажи + + + ВесЗнаменатель + ВесЗнаменатель + + + ВесИспользовать + ВесИспользовать + + + ВесЧислитель + ВесЧислитель + + + ОбъемЧислитель + ОбъемЧислитель + + + ГруппаДоступа + ГруппаДоступа + + + ОбъемМожноУказыватьВДокументах + ОбъемМожноУказыватьВДокументах + + + АлкогольнаяПродукция + АлкогольнаяПродукция + + + НаименованиеПолное + НаименованиеПолное + + + ЕдиницаИзмеренияСрокаГодности + ЕдиницаИзмеренияСрокаГодности + + + ЕстьТоварыДругогоКачества + ЕстьТоварыДругогоКачества + + + ИмпортнаяАлкогольнаяПродукция + ИмпортнаяАлкогольнаяПродукция + + + СезоннаяГруппа + СезоннаяГруппа + + + ДлинаЗнаменатель + ДлинаЗнаменатель + + + ХарактеристикаМногооборотнаяТара + ХарактеристикаМногооборотнаяТара + + + ИспользоватьИндивидуальныйШаблонЦенника + ИспользоватьИндивидуальныйШаблонЦенника + + + ДлинаИспользовать + ДлинаИспользовать + + + ДлинаМожноУказыватьВДокументах + ДлинаМожноУказыватьВДокументах + + + ДлинаЧислитель + ДлинаЧислитель + + + КоллекцияНоменклатуры + КоллекцияНоменклатуры + + + ОбъемИспользовать + ОбъемИспользовать + + + СпособОбеспеченияПотребностей + СпособОбеспеченияПотребностей + + + ИспользоватьУпаковки + ИспользоватьУпаковки + + + КодДляПоиска + КодДляПоиска + + + Артикул + Артикул + + + КоэффициентЕдиницыДляОтчетов + КоэффициентЕдиницыДляОтчетов + + + Марка + Марка + + + КиЗГИСМСпособВыпускаВОборот + КиЗГИСМСпособВыпускаВОборот + + + НаборУпаковок + НаборУпаковок + + + ГруппаФинансовогоУчета + ГруппаФинансовогоУчета + + + ПлощадьЕдиницаИзмерения + ПлощадьЕдиницаИзмерения + + + НоменклатураМногооборотнаяТара + НоменклатураМногооборотнаяТара + + + Описание + Описание + + + ПоставляетсяВМногооборотнойТаре + ПоставляетсяВМногооборотнойТаре + + + Производитель + Производитель + + + ПроизводительИмпортерКонтрагент + ПроизводительИмпортерКонтрагент + + + СхемаОбеспечения + СхемаОбеспечения + + + СкладскаяГруппа + СкладскаяГруппа + + + СрокГодности + СрокГодности + + + РейтингПродаж + РейтингПродаж + + + ТоварнаяКатегория + ТоварнаяКатегория + + + ОбъемЕдиницаИзмерения + ОбъемЕдиницаИзмерения + + + ПлощадьИспользовать + ПлощадьИспользовать + + + ФайлКартинки + ФайлКартинки + + + ФайлОписанияДляСайта + ФайлОписанияДляСайта + + + ОбъемЗнаменатель + ОбъемЗнаменатель + + + ПлощадьМожноУказыватьВДокументах + ПлощадьМожноУказыватьВДокументах + + + ШаблонЭтикетки + ШаблонЭтикетки + + + ПлощадьЧислитель + ПлощадьЧислитель + + + КодОКП + КодОКП + + + ЦеноваяГруппа + ЦеноваяГруппа + + + ШаблонЦенника + ШаблонЦенника + + + Принципал + Принципал + + + Контрагент + Контрагент + + + ОбособленнаяЗакупкаПродажа + ОбособленнаяЗакупкаПродажа + + + ГруппаАналитическогоУчета + ГруппаАналитическогоУчета + + + КодТНВЭД + КодТНВЭД + + + КодОКВЭД + КодОКВЭД + + + ОблагаетсяНДПИПоПроцентнойСтавке + ОблагаетсяНДПИПоПроцентнойСтавке + + + ВладелецСерий + ВладелецСерий + + + ВладелецХарактеристик + ВладелецХарактеристик + + + ВладелецТоварныхКатегорий + ВладелецТоварныхКатегорий + + + Крепость + Крепость + + + ПродукцияМаркируемаяДляГИСМ + ПродукцияМаркируемаяДляГИСМ + + + КиЗГИСМ + КиЗГИСМ + + + КиЗГИСМВид + КиЗГИСМВид + + + КиЗГИСМGTIN + КиЗГИСМGTIN + + + КиЗГИСМРазмер + КиЗГИСМРазмер + + + ПодконтрольнаяПродукцияВЕТИС + ПодконтрольнаяПродукцияВЕТИС + + + АлкогольнаяПродукцияВоВскрытойТаре + АлкогольнаяПродукцияВоВскрытойТаре + + + КодРаздел7ДекларацииНДС + КодРаздел7ДекларацииНДС + + + ОблагаетсяНДСУПокупателя + ОблагаетсяНДСУПокупателя + + + СтавкаНДС + СтавкаНДС + + + КодОКВЭД2 + КодОКВЭД2 + + + КодОКПД2 + КодОКПД2 + + + НаименованиеВидаНоменклатурнойКлассификации + НаименованиеВидаНоменклатурнойКлассификации + + + ЕдиницаИзмеренияТНВЭД + ЕдиницаИзмеренияТНВЭД + + + СтранаПроисхождения + СтранаПроисхождения + + + ПрослеживаемыйТовар + ПрослеживаемыйТовар + + + КодТРУ + КодТРУ + + + НаименованиеЯзык1 + НаименованиеЯзык1 + + + НаименованиеЯзык2 + НаименованиеЯзык2 + + + ДополнительныеРеквизиты + ДополнительныеРеквизиты + + + ДрагоценныеМатериалы + ДрагоценныеМатериалы + + + Представления + Представления + + + Предопределенный + Предопределенный + + + ИмяПредопределенныхДанных + ИмяПредопределенныхДанных + + + Код + Код + + + Наименование + Наименование + + + ВидНоменклатуры + ВидНоменклатуры + + + ЕдиницаИзмерения + ЕдиницаИзмерения + + + ОсобенностьУчета + ОсобенностьУчета + + + ТипНоменклатуры + ТипНоменклатуры + + + Родитель + Родитель + + + ИндексКартинки + ИндексКартинки + + + ru + Индекс картинки + + + + + СодержитТовары + СодержитТовары + + + ru + Содержит товары + + + + + СодержитУслуги + СодержитУслуги + + + ru + Содержит услуги + + + + + ИспользованиеХарактеристик + ИспользованиеХарактеристик + + + Качество + Качество + + + ВестиУчетСертификатовНоменклатуры + ВестиУчетСертификатовНоменклатуры + + + ПродукцияИзНатуральногоМеха + ПродукцияИзНатуральногоМеха + + + ru + Продукция из натурального меха + + + + + ЭтоГруппа + ЭтоГруппа + + + УдалитьПодакцизныйТовар + УдалитьПодакцизныйТовар + + + КодПоКВПД + КодПоКВПД + + + ВариантыРасчетаЦеныНабора + + + ru + Варианты расчета цены набора + + + + cfg:EnumRef.ВариантыРасчетаЦенНаборов + + + false + true + + + СегментНоменклатуры + + + ru + Сегмент номенклатуры + + + + cfg:CatalogRef.СегментыНоменклатуры + + + false + + Catalog.Номенклатура + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Виды номенклатуры</v8:content> + </v8:item> + + + cfg:DynamicList + + + ВидыНоменклатуры.Ссылка + ВидыНоменклатуры.ЭтоГруппа + + + true + true + ВЫБРАТЬ + СправочникВидыНоменклатуры.Ссылка, + СправочникВидыНоменклатуры.ЭтоГруппа, + СправочникВидыНоменклатуры.Наименование +ИЗ + Справочник.ВидыНоменклатуры КАК СправочникВидыНоменклатуры + + ХарактеристикаМногооборотнаяТара + ХарактеристикаМногооборотнаяТара + + + Родитель + Родитель + + + НаборСвойствХарактеристик + НаборСвойствХарактеристик + + + ВладелецТоварныхКатегорий + ВладелецТоварныхКатегорий + + + АлкогольнаяПродукция + АлкогольнаяПродукция + + + ШаблонРабочегоНаименованияСерии + ШаблонРабочегоНаименованияСерии + + + ИспользоватьСрокГодностиСерии + ИспользоватьСрокГодностиСерии + + + ЕдиницаДляОтчетов + ЕдиницаДляОтчетов + + + ВариантОформленияПродажи + ВариантОформленияПродажи + + + ШаблонЭтикетки + ШаблонЭтикетки + + + ВестиУчетСертификатовНоменклатуры + ВестиУчетСертификатовНоменклатуры + + + ВариантПредставленияНабораВПечатныхФормах + ВариантПредставленияНабораВПечатныхФормах + + + ЗапретРедактированияНаименованияДляПечатиХарактеристики + ЗапретРедактированияНаименованияДляПечатиХарактеристики + + + ВариантРасчетаЦеныНабора + ВариантРасчетаЦеныНабора + + + ВладелецСерий + ВладелецСерий + + + ИспользованиеХарактеристик + ИспользованиеХарактеристик + + + РеквизитыБыстрогоОтбораХарактеристик + РеквизитыБыстрогоОтбораХарактеристик + + + ВидАлкогольнойПродукции + ВидАлкогольнойПродукции + + + РеквизитыДляКонтроляХарактеристик + РеквизитыДляКонтроляХарактеристик + + + ВестиУчетПоГТД + ВестиУчетПоГТД + + + ГруппаДоступа + ГруппаДоступа + + + ВладелецХарактеристик + ВладелецХарактеристик + + + ГруппаАналитическогоУчета + ГруппаАналитическогоУчета + + + ОсобенностьУчета + ОсобенностьУчета + + + ТипНоменклатуры + ТипНоменклатуры + + + КонтролироватьДублиНоменклатуры + КонтролироватьДублиНоменклатуры + + + ГруппаФинансовогоУчета + ГруппаФинансовогоУчета + + + ЕдиницаИзмерения + ЕдиницаИзмерения + + + ЕдиницаИзмеренияСрокаГодности + ЕдиницаИзмеренияСрокаГодности + + + КодТНВЭД + КодТНВЭД + + + ЗапретРедактированияНаименованияДляПечатиНоменклатуры + ЗапретРедактированияНаименованияДляПечатиНоменклатуры + + + ЦеноваяГруппа + ЦеноваяГруппа + + + КодОКП + КодОКП + + + ЗапретРедактированияРабочегоНаименованияНоменклатуры + ЗапретРедактированияРабочегоНаименованияНоменклатуры + + + ЗапретРедактированияРабочегоНаименованияХарактеристики + ЗапретРедактированияРабочегоНаименованияХарактеристики + + + ИмпортнаяАлкогольнаяПродукция + ИмпортнаяАлкогольнаяПродукция + + + СезоннаяГруппа + СезоннаяГруппа + + + ИспользоватьИндивидуальноеНаименованиеПриПечати + ИспользоватьИндивидуальноеНаименованиеПриПечати + + + ИспользоватьКоличествоСерии + ИспользоватьКоличествоСерии + + + ИспользоватьУпаковки + ИспользоватьУпаковки + + + ИспользоватьНомерСерии + ИспользоватьНомерСерии + + + ПолитикаУчетаСерий + ПолитикаУчетаСерий + + + НастройкаИспользованияСерий + НастройкаИспользованияСерий + + + ИспользоватьСерии + ИспользоватьСерии + + + КодОКВЭД2 + КодОКВЭД2 + + + СтавкаНДС + СтавкаНДС + + + ИспользоватьХарактеристики + ИспользоватьХарактеристики + + + ШаблонРабочегоНаименованияНоменклатуры + ШаблонРабочегоНаименованияНоменклатуры + + + НаборУпаковок + НаборУпаковок + + + КонтролироватьДублиХарактеристик + КонтролироватьДублиХарактеристик + + + КоэффициентЕдиницыДляОтчетов + КоэффициентЕдиницыДляОтчетов + + + НаборСвойств + НаборСвойств + + + НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + + + НаборСвойствСерий + НаборСвойствСерий + + + НаименованиеДляПечати + НаименованиеДляПечати + + + НоменклатураМногооборотнаяТара + НоменклатураМногооборотнаяТара + + + ОбособленнаяЗакупкаПродажа + ОбособленнаяЗакупкаПродажа + + + Описание + Описание + + + ПоставляетсяВМногооборотнойТаре + ПоставляетсяВМногооборотнойТаре + + + СхемаОбеспечения + СхемаОбеспечения + + + ПолитикиУчетаСерий + ПолитикиУчетаСерий + + + СкладскаяГруппа + СкладскаяГруппа + + + СодержитДрагоценныеМатериалы + СодержитДрагоценныеМатериалы + + + ШаблонНаименованияДляПечатиНоменклатуры + ШаблонНаименованияДляПечатиНоменклатуры + + + ТочностьУказанияСрокаГодностиСерии + ТочностьУказанияСрокаГодностиСерии + + + КодОКВЭД + КодОКВЭД + + + ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры + ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры + + + ШаблонНаименованияДляПечатиХарактеристики + ШаблонНаименованияДляПечатиХарактеристики + + + ШаблонРабочегоНаименованияХарактеристики + ШаблонРабочегоНаименованияХарактеристики + + + ШаблонЦенника + ШаблонЦенника + + + ШаблонЭтикеткиСерии + ШаблонЭтикеткиСерии + + + СпособОбеспеченияПотребностей + СпособОбеспеченияПотребностей + + + Крепость + Крепость + + + ИспользоватьЗаписьСкладскогоЖурналаВЕТИССерии + ИспользоватьЗаписьСкладскогоЖурналаВЕТИССерии + + + ПродукцияМаркируемаяДляГИСМ + ПродукцияМаркируемаяДляГИСМ + + + КиЗГИСМ + КиЗГИСМ + + + ИспользоватьПроизводителяЕГАИССерии + ИспользоватьПроизводителяЕГАИССерии + + + ИспользоватьRFIDМеткиСерии + ИспользоватьRFIDМеткиСерии + + + ИспользоватьНомерКИЗГИСМСерии + ИспользоватьНомерКИЗГИСМСерии + + + ПодконтрольнаяПродукцияВЕТИС + ПодконтрольнаяПродукцияВЕТИС + + + КодРаздел7ДекларацииНДС + КодРаздел7ДекларацииНДС + + + АвтоматическиГенерироватьСерии + АвтоматическиГенерироватьСерии + + + ИмяПредопределенныхДанных + ИмяПредопределенныхДанных + + + ИспользоватьДатуПроизводстваСерии + ИспользоватьДатуПроизводстваСерии + + + ИспользоватьСправку2ЕГАИССерии + ИспользоватьСправку2ЕГАИССерии + + + ИспользоватьПроизводителяВЕТИССерии + ИспользоватьПроизводителяВЕТИССерии + + + ИспользоватьИдентификаторПартииВЕТИССерии + ИспользоватьИдентификаторПартииВЕТИССерии + + + ОблагаетсяНДСУПокупателя + ОблагаетсяНДСУПокупателя + + + ИспользоватьМРЦМОТПСерии + ИспользоватьМРЦМОТПСерии + + + КодОКПД2 + КодОКПД2 + + + НастройкиКлючаЦенПоНоменклатуре + НастройкиКлючаЦенПоНоменклатуре + + + НастройкиКлючаЦенПоХарактеристике + НастройкиКлючаЦенПоХарактеристике + + + НастройкиКлючаЦенПоСерии + НастройкиКлючаЦенПоСерии + + + НастройкиКлючаЦенПоУпаковке + НастройкиКлючаЦенПоУпаковке + + + ШаблонНаименованияДляПечатиКлючаЦен + ШаблонНаименованияДляПечатиКлючаЦен + + + ШаблонРабочегоНаименованияКлючаЦен + ШаблонРабочегоНаименованияКлючаЦен + + + РазрезыЦенообразования + РазрезыЦенообразования + + + ШаблонНаименованияДляПечатиНоменклатурыИсторияПереходаНаНовыеФормулы + ШаблонНаименованияДляПечатиНоменклатурыИсторияПереходаНаНовыеФормулы + + + ШаблонНаименованияДляПечатиХарактеристикиИсторияПереходаНаНовыеФормулы + ШаблонНаименованияДляПечатиХарактеристикиИсторияПереходаНаНовыеФормулы + + + ШаблонРабочегоНаименованияНоменклатурыИсторияПереходаНаНовыеФормулы + ШаблонРабочегоНаименованияНоменклатурыИсторияПереходаНаНовыеФормулы + + + ШаблонРабочегоНаименованияСерииИсторияПереходаНаНовыеФормулы + ШаблонРабочегоНаименованияСерииИсторияПереходаНаНовыеФормулы + + + ШаблонРабочегоНаименованияХарактеристикиИсторияПереходаНаНовыеФормулы + ШаблонРабочегоНаименованияХарактеристикиИсторияПереходаНаНовыеФормулы + + + РеквизитыДляКонтроляНоменклатуры + РеквизитыДляКонтроляНоменклатуры + + + РеквизитыДляКонтроляСерий + РеквизитыДляКонтроляСерий + + + РеквизитыБыстрогоОтбораНоменклатуры + РеквизитыБыстрогоОтбораНоменклатуры + + + РеквизитыХарактеристикДляКлючаЦен + РеквизитыХарактеристикДляКлючаЦен + + + РеквизитыСерийДляКлючаЦен + РеквизитыСерийДляКлючаЦен + + + Предопределенный + Предопределенный + + + Ссылка + Ссылка + + + ЭтоГруппа + ЭтоГруппа + + + Наименование + Наименование + + + ПометкаУдаления + ПометкаУдаления + + + УдалитьПодакцизныйТовар + УдалитьПодакцизныйТовар + + + ЗапрещенаПродажаЧерезПатент + ЗапрещенаПродажаЧерезПатент + + Catalog.ВидыНоменклатуры + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Поиск</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Иерархия номенклатуры</v8:content> + </v8:item> + + + cfg:DynamicList + + + ИерархияНоменклатуры.Parent + ИерархияНоменклатуры.Ref + + + false + true + Catalog.Номенклатура + + + + ЭтоГруппа + Equal + true + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Дерево отборов</v8:content> + </v8:item> + + + v8:ValueTree + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отбор</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Имя реквизита</v8:content> + </v8:item> + + + xs:string + + 100 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Значение отбора</v8:content> + </v8:item> + + + v8:ValueListType + xs:boolean + xs:string + xs:dateTime + xs:decimal + cfg:AnyIBRef + + 0 + 0 + Any + + + 1000 + Variable + + + DateTime + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Представление</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Это доп реквизит</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Фиксированное значение</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отбор доступен</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отбор установлен</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интервал от</v8:content> + </v8:item> + + + xs:dateTime + xs:decimal + + 15 + 3 + Any + + + Date + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интервал до</v8:content> + </v8:item> + + + xs:dateTime + xs:decimal + + 15 + 3 + Any + + + Date + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Представление отбора</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отбор характеристик</v8:content> + </v8:item> + + + xs:boolean + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать полнотекстовый поиск</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Индекс полнотекстового поиска актуален</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сегмент</v8:content> + </v8:item> + + + cfg:CatalogRef.СегментыНоменклатуры + + + FunctionalOption.ИспользоватьСегментыНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вариант навигации</v8:content> + </v8:item> + + + cfg:EnumRef.ВариантыНавигацииВФормахНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Фильтр по</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список обязательных отборов</v8:content> + </v8:item> + + + v8:ValueListType + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Наименование номенклатуры поставщика</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>По точному соответствию</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Информационная база файловая</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Код ошибки поиска</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Поиск номенклатуры не удачный</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Текущая иерархия номенклатуры</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Код формы</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Товар</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список качества</v8:content> + </v8:item> + + + v8:ValueListType + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Таблица параметров отбора</v8:content> + </v8:item> + + + v8:ValueTable + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Имя реквизита</v8:content> + </v8:item> + + + xs:string + + 100 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Значение отбора</v8:content> + </v8:item> + + + v8:ValueListType + xs:boolean + xs:string + xs:dateTime + xs:decimal + cfg:AnyIBRef + + 0 + 0 + Any + + + 1000 + Variable + + + DateTime + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Представление</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Фиксированное значение</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интервал числа от</v8:content> + </v8:item> + + + xs:decimal + + 15 + 3 + Any + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интервал числа до</v8:content> + </v8:item> + + + xs:decimal + + 15 + 3 + Any + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интервал даты от</v8:content> + </v8:item> + + + xs:dateTime + + Date + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интервал даты до</v8:content> + </v8:item> + + + xs:dateTime + + Date + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интервал числа</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интервал даты</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Представление отбора</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отбор</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отбор характеристик</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Это доп реквизит</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интервал от</v8:content> + </v8:item> + + + xs:dateTime + xs:decimal + + 15 + 3 + Any + + + Date + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интервал до</v8:content> + </v8:item> + + + xs:dateTime + xs:decimal + + 15 + 3 + Any + + + Date + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура элемент при открытии</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура родитель при открытии</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать характеристики номенклатуры</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Выбор товара другого качества</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вариант поиска товаров</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать стандартный поиск при подборе товаров</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Есть фильтр по поиску номенклатуры</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Это базовая</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Есть право настройки видов номенклатуры</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Цвет текста формы</v8:content> + </v8:item> + + + v8ui:Color + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Надпись вариант навигации</v8:content> + </v8:item> + + + v8ui:FormattedString + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Регистрировать штрихкод</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид номенклатуры при открытии</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Параметры создания</v8:content> + </v8:item> + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Найти</v8:content> + </v8:item> + + + + ru + Найти + + + + StdPicture.Find + true + + Поиск + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура с аналогичными свойствами</v8:content> + </v8:item> + + + + ru + Номенклатура с аналогичными свойствами + + + + CommonPicture.ФильтрПоВидамИСвойствамНоменклатуры + false + + НоменклатураСАналогичнымиСвойствами + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Товары другого качества</v8:content> + </v8:item> + + + + ru + Товары другого качества + + + + CommonPicture.ФильтрПоТоварамДругогоКачества + false + + ТоварыДругогоКачества + + FunctionalOption.ИспользоватьКачествоТоваров + + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сбросить отборы по свойствам</v8:content> + </v8:item> + + + + ru + Сбросить всё + + + + StdPicture.UncheckAll + true + + СброситьОтборыПоСвойствам + Picture + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настроить поиск...</v8:content> + </v8:item> + + + + ru + Настроить поиск + + + НастроитьПоиск + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Перейти к строке поиска</v8:content> + </v8:item> + + + + ru + Перейти к строке поиска + + + Alt+1 + УстановитьТекущийЭлементСтрокаПоиска + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Выбрать</v8:content> + </v8:item> + + + + ru + Выбрать значение номенклатуры + + + + StdPicture.ChooseValue + true + + ВыбратьЗначениеНоменклатуры + TextPicture + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Изменить вариант навигации</v8:content> + </v8:item> + + + + ru + Изменить вариант навигации + + + ИзменитьВариантНавигации + DontUse + + + + + + xs:boolean + + + + + + + + xs:boolean + + + +
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаВыбора/Ext/Form/Module.bsl b/src/Catalogs/Номенклатура/Forms/ФормаВыбора/Ext/Form/Module.bsl new file mode 100644 index 0000000..e465d7f --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаВыбора/Ext/Form/Module.bsl @@ -0,0 +1,868 @@ + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + УстановитьУсловноеОформление(); + + // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест". + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + КодФормы = "Справочник_Номенклатура_ФормаВыбора"; + + ПодборТоваровСервер.ПриСозданииНаСервере(ЭтаФорма); + + ПереданныеДополнительныеПараметры = Неопределено; + Если Параметры.Свойство("ДополнительныеПараметры", ПереданныеДополнительныеПараметры) И ПереданныеДополнительныеПараметры <> Неопределено Тогда + ПараметрыСоздания = Новый ФиксированнаяСтруктура(ПереданныеДополнительныеПараметры); + Иначе + ПараметрыСоздания = Новый ФиксированнаяСтруктура; + КонецЕсли; + + Если Не Параметры.Свойство("РегистрироватьШтрихкод",РегистрироватьШтрихкод) Тогда + РегистрироватьШтрихкод = Ложь; + КонецЕсли; + + Если Параметры.Свойство("НалогообложениеНДС") Тогда + Ограничения = УчетНДСУП.ОграничениеТоваровПоНалогообложению(Параметры.НалогообложениеНДС); + Для Каждого Ограничение Из Ограничения Цикл + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(СписокНоменклатура, + Ограничение.Реквизит, + Ограничение.Значение, + Ограничение.ВидСравнения, + "ОтборПоУмолчанию", + Истина); + КонецЦикла; + КонецЕсли; + + Если ЗначениеЗаполнено(Параметры.ВариантыРасчетаЦеныНабора) Тогда + ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(СписокНоменклатура, "ВариантыРасчетаЦеныНабора", Параметры.ВариантыРасчетаЦеныНабора, Истина); + КонецЕсли; + + // Запомним выбранный элемент номенклатуры в форме, вызвавшей открытие этой формы выбора. + Параметры.Свойство("ТекущаяСтрока", НоменклатураЭлементПриОткрытии); + Если ЗначениеЗаполнено(НоменклатураЭлементПриОткрытии) + И ИспользоватьФильтры Тогда + Если ВариантНавигации = ПредопределенноеЗначение("Перечисление.ВариантыНавигацииВФормахНоменклатуры.ПоИерархии") Тогда + НоменклатураРодительПриОткрытии = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(НоменклатураЭлементПриОткрытии, "Родитель"); + ИначеЕсли ВариантНавигации = ПредопределенноеЗначение("Перечисление.ВариантыНавигацииВФормахНоменклатуры.ПоСвойствам") + Или ВариантНавигации = ПредопределенноеЗначение("Перечисление.ВариантыНавигацииВФормахНоменклатуры.ПоВидамИСвойствам") + Или ВариантНавигации = ПредопределенноеЗначение("Перечисление.ВариантыНавигацииВФормахНоменклатуры.ПоВидам") Тогда + ВидНоменклатуры = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(НоменклатураЭлементПриОткрытии, "ВидНоменклатуры"); + ВидНоменклатурыПриИзмененииНаСервере(); + ВидНоменклатурыПриОткрытии = ВидНоменклатуры; + КонецЕсли; + ИначеЕсли Параметры.Свойство("ОтборПоВидуНоменклатуры") Тогда + ВидНоменклатурыПриОткрытии = ВидНоменклатуры; + КонецЕсли; + + Параметры.Свойство("СегментНоменклатуры", СегментНоменклатуры); + Если ЗначениеЗаполнено(СегментНоменклатуры) Тогда + СегментНоменклатурыПриИзмененииНаСервере(); + КонецЕсли; + + Если Параметры.ЗапретРедактированияСегментаНоменклатуры Тогда + Элементы.СегментНоменклатуры.ТолькоПросмотр = Истина; + КонецЕсли; + + ВыборТовараДругогоКачества = Параметры.ВыборТовараДругогоКачества; + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + КП = ?(Элементы.СтраницыСписков.ТекущаяСтраница = Элементы.СтраницаРасширенныйПоискНоменклатура, + Элементы.КоманднаяПанельСписокРасширенныйПоискНоменклатура, Элементы.СписокСтандартныйПоискНоменклатура.КоманднаяПанель); + ДС = ?(Элементы.СтраницыСписков.ТекущаяСтраница = Элементы.СтраницаРасширенныйПоискНоменклатура, + Элементы.СписокРасширенныйПоискНоменклатура, Элементы.СписокСтандартныйПоискНоменклатура); + + РаботаСНоменклатурой.ПриСозданииНаСервереФормаСпискаНоменклатуры(ЭтотОбъект, КП, ДС, Ложь); + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + + СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); + + ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект); + + // ИнтеграцияС1СДокументооборотом + ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект, + Элементы.КоманднаяПанельСписокРасширенныйПоискНоменклатура); + // Конец ИнтеграцияС1СДокументооборотом + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + // Установим позиционирование на выбранный элемент номенклатуры в форме, вызвавшей открытие этой формы выбора. + Если ЗначениеЗаполнено(НоменклатураЭлементПриОткрытии) Тогда + Если ВариантНавигации = ПредопределенноеЗначение("Перечисление.ВариантыНавигацииВФормахНоменклатуры.ПоИерархии") Тогда + Элементы.ИерархияНоменклатуры.ТекущаяСтрока = НоменклатураРодительПриОткрытии; + ПодборТоваровКлиент.ОбработчикАктивизацииСтрокиИерархииНоменклатуры(ЭтаФорма); + КонецЕсли; + ТаблицаФормыНоменклатура = Элементы[ПодборТоваровКлиентСервер.ИмяСпискаНоменклатурыПоВариантуПоиска(ЭтаФорма)]; // ТаблицаФормы + ТаблицаФормыНоменклатура.ТекущаяСтрока = НоменклатураЭлементПриОткрытии; + Элементы.ВидыНоменклатуры.ТекущаяСтрока = ВидНоменклатурыПриОткрытии; + ИначеЕсли ЗначениеЗаполнено(ВидНоменклатурыПриОткрытии) Тогда + Элементы.ВидыНоменклатуры.ТекущаяСтрока = ВидНоменклатурыПриОткрытии; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриЗакрытии(ЗавершениеРаботы) + + Если Не ЗавершениеРаботы Тогда + СохранитьНастройкиФормыНаСервере(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "Запись_Номенклатура" И ЗначениеЗаполнено(Источник) Тогда + Если ЗначениеЗаполнено(СтрокаПоискаНоменклатура) Тогда + ВыполнитьПоискНоменклатуры(); + КонецЕсли; + ТаблицаФормыНоменклатура = Элементы[ПодборТоваровКлиентСервер.ИмяСпискаНоменклатурыПоВариантуПоиска(ЭтаФорма)]; // ТаблицаФормы + ТаблицаФормыНоменклатура.ТекущаяСтрока = Источник; + КонецЕсли; + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + Если ИмяСобытия = РаботаСНоменклатуройКлиент.ОписаниеОповещенийПодсистемы().ЗагрузкаНоменклатуры Тогда + Если Параметр.СозданныеОбъекты.Количество() > 0 Тогда + + ТекущийСписок = ?(Элементы.СтраницыСписков.ТекущаяСтраница = Элементы.СтраницаРасширенныйПоискНоменклатура, + Элементы.СписокРасширенныйПоискНоменклатура, Элементы.СписокСтандартныйПоискНоменклатура); + + ТекущийСписок.ТекущаяСтрока = Параметр.СозданныеОбъекты[0].Номенклатура; + + КонецЕсли; + КонецЕсли; + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +#Область ОбработчикиСобытийСтрокПоиска + +&НаКлиенте +Процедура СтрокаПоискаНоменклатураПриИзменении(Элемент) + + ВыполнитьПоискНоменклатуры(); + +КонецПроцедуры + +&НаКлиенте +Процедура СтрокаПоискаНоменклатураОчистка(Элемент, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + СтрокаПоискаНоменклатура = ""; + + СнятьОтборПоСтрокеПоискаНоменклатурыНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура СтрокаПоискаНоменклатураАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) + + СпискиВыбораКлиентСервер.АвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийФлаговТочногоСоответствия + +&НаКлиенте +Процедура НайтиНоменклатуруПоТочномуСоответствиюПриИзменении(Элемент) + + ВыполнитьПоискНоменклатуры(); + +КонецПроцедуры + +#КонецОбласти + +#Область Прочее + +&НаКлиенте +Процедура ВидНоменклатурыПриИзменении(Элемент) + + ВидНоменклатурыПриИзмененииНаСервере(); + + Если ЗначениеЗаполнено(СтрокаПоискаНоменклатура) Тогда + ВыполнитьПоискНоменклатуры(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИспользоватьФильтрыПриИзменении(Элемент) + + ИспользоватьФильтрыПриИзмененииНаСервере(); + + Если ЗначениеЗаполнено(СтрокаПоискаНоменклатура) Тогда + ВыполнитьПоискНоменклатуры(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СегментНоменклатурыПриИзменении(Элемент) + + СегментНоменклатурыПриИзмененииНаСервере(); + + Если ЗначениеЗаполнено(СтрокаПоискаНоменклатура) Тогда + ВыполнитьПоискНоменклатуры(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура НоменклатураИсходногоКачестваПриИзменении(Элемент) + + НоменклатураИсходногоКачестваПриИзмененииНаСервере(); + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыСписокРасширенныйПоискНоменклатура + +&НаКлиенте +Процедура СписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) + + Если Не Копирование И Не Группа Тогда + + Отказ = Истина; + + ПараметрыСозданияВФорму = Новый Структура(ПараметрыСоздания); + + ПараметрыСозданияВФорму.Вставить("Родитель"); + ПараметрыСозданияВФорму.Вставить("ВидНоменклатуры"); + ПараметрыСозданияВФорму.Вставить("АдресТаблицыПараметров"); + ПараметрыСозданияВФорму.Вставить("АдресТаблицыСопоставления"); + ПараметрыСозданияВФорму.Вставить("РегистрироватьШтрихкод"); + + ПараметрыСозданияВФорму.РегистрироватьШтрихкод = РегистрироватьШтрихкод; + + Если ИспользоватьФильтры Тогда + + Если ВариантНавигации = ПредопределенноеЗначение("Перечисление.ВариантыНавигацииВФормахНоменклатуры.ПоВидамИСвойствам") + Или ВариантНавигации = ПредопределенноеЗначение("Перечисление.ВариантыНавигацииВФормахНоменклатуры.ПоСвойствам") Тогда + + Если ЗначениеЗаполнено(ВидНоменклатуры) Тогда + + СтруктураАдресовТаблиц = АдресТаблицПараметровДереваОтборовНаСервере(); + + ПараметрыСозданияВФорму.АдресТаблицыПараметров = СтруктураАдресовТаблиц.АдресТаблицыПараметров; + ПараметрыСозданияВФорму.АдресТаблицыСопоставления = СтруктураАдресовТаблиц.АдресТаблицыСопоставления; + + ПараметрыСозданияВФорму.ВидНоменклатуры = ВидНоменклатуры; + + КонецЕсли; + ИначеЕсли ВариантНавигации = ПредопределенноеЗначение("Перечисление.ВариантыНавигацииВФормахНоменклатуры.ПоВидам") Тогда + Если ЗначениеЗаполнено(ВидНоменклатуры) Тогда + ПараметрыСозданияВФорму.ВидНоменклатуры = ВидНоменклатуры; + КонецЕсли; + Иначе + + ПараметрыСозданияВФорму.Родитель = ?(Элементы.ИерархияНоменклатуры.ТекущиеДанные = Неопределено, ПредопределенноеЗначение("Справочник.Номенклатура.ПустаяСсылка"), + Элементы.ИерархияНоменклатуры.ТекущиеДанные.Ссылка); + + КонецЕсли; + + КонецЕсли; + + ОткрытьФорму("Справочник.Номенклатура.ФормаОбъекта", Новый Структура("ДополнительныеПараметры", ПараметрыСозданияВФорму), ЭтаФорма); + + ИначеЕсли Группа Тогда + + ТекущиеДанные = Элементы.ИерархияНоменклатуры.ТекущиеДанные; + + Если ТекущиеДанные <> Неопределено Тогда + + Отказ = Истина; + ПараметрыСозданияВФорму = Новый Структура("Родитель", ТекущиеДанные.Ссылка); + ОткрытьФорму("Справочник.Номенклатура.ФормаГруппы", Новый Структура("ДополнительныеПараметры", ПараметрыСозданияВФорму), ЭтаФорма); + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СписокПриАктивизацииСтроки(Элемент) + + ПодборТоваровКлиент.ПриАктивизацииСтрокиСпискаНоменклатуры(ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура СписокРасширенныйПоискНоменклатураВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ПроверитьПометкуУдаленияИВыбрать(Элемент.ТекущиеДанные, ВыбраннаяСтрока); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыСписокСтандартныйПоискНоменклатура + +&НаКлиенте +Процедура СписокСтандартныйПоискНоменклатураВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ПроверитьПометкуУдаленияИВыбрать(Элемент.ТекущиеДанные, ВыбраннаяСтрока); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыДеревоОтборов + +&НаКлиенте +Процедура ДеревоОтборовВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ПодборТоваровКлиент.ДеревоОтборовВыбор(ЭтаФорма, Новый ОписаниеОповещения("ДеревоОтборовПриИзмененииЗавершение", ЭтотОбъект)); + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоОтборовПриИзмененииЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Если Результат = Неопределено Тогда + Возврат; + ИначеЕсли Результат Тогда + ПодборТоваровКлиент.ДеревоОтборовПриИзмененииЗавершение(ЭтаФорма); + + ДеревоОтборовОтборПриИзмененииНаСервере(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоОтборовОтборПриИзменении(Элемент) + + ПодборТоваровКлиент.ДеревоОтборовОтборПриИзменении(ЭтаФорма, Новый ОписаниеОповещения("ДеревоОтборовПриИзмененииЗавершение", ЭтотОбъект)); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыВидыНоменклатуры + +&НаКлиенте +Процедура ВидыНоменклатурыПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле) + Если ТипЗнч(ПараметрыПеретаскивания.Значение) <> Тип("СправочникСсылка.ВидыНоменклатуры") Тогда + СтандартнаяОбработка = Ложь; + КонецЕсли; +КонецПроцедуры + +&НаКлиенте +Процедура ВидыНоменклатурыПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле) + Если ТипЗнч(ПараметрыПеретаскивания.Значение) <> Тип("СправочникСсылка.ВидыНоменклатуры") Тогда + СтандартнаяОбработка = Ложь; + ВидыНоменклатурыПеретаскиваниеНаСервере(ПараметрыПеретаскивания.Значение, СтандартнаяОбработка, Строка); + КонецЕсли; +КонецПроцедуры + +&НаСервере +Процедура ВидыНоменклатурыПеретаскиваниеНаСервере(МассивНоменклатур, СтандартнаяОбработка, ВидНоменклатуры) + + ОбновитьСписок = Ложь; + + Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВидНоменклатуры, "ЭтоГруппа") Тогда + СтандартнаяОбработка = Ложь; + Иначе + Для Каждого Номенклатура Из МассивНоменклатур Цикл + НоменклатураОбъект = Номенклатура.ПолучитьОбъект(); // СправочникОбъект.Номенклатура + Если НоменклатураОбъект.ВидНоменклатуры <> ВидНоменклатуры Тогда + НоменклатураОбъект.ВидНоменклатуры = ВидНоменклатуры; + НоменклатураОбъект.Записать(); + ОбновитьСписок = Истина; + КонецЕсли; + КонецЦикла; + КонецЕсли; + + Если ОбновитьСписок Тогда + ТаблицаФормыНоменклатура = Элементы[ПодборТоваровКлиентСервер.ИмяСпискаНоменклатурыПоВариантуПоиска(ЭтаФорма)]; // ТаблицаФормы + ТаблицаФормыНоменклатура.Обновить(); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыИерархияНоменклатуры + +&НаКлиенте +Процедура ИерархияНоменклатурыПриАктивизацииСтроки(Элемент) + + ПодборТоваровКлиент.ПриАктивизацииСтрокиИерархииНоменклатуры(ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ИерархияНоменклатурыПриАктивизацииСтрокиОбработчикОжидания() + + ПодборТоваровКлиент.ОбработчикАктивизацииСтрокиИерархииНоменклатуры(ЭтаФорма); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыСписокКачества + +&НаКлиенте +Процедура СписокКачестваПометкаПриИзменении(Элемент) + + СписокКачестваПометкаПриИзмененииНаСервере(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Поиск(Команда) + + ТекущееСообщениеПользователю = ""; + +КонецПроцедуры + +&НаКлиенте +Процедура НоменклатураСАналогичнымиСвойствами(Команда) + + ОчиститьСообщения(); + + Если ПодборТоваровКлиент.ЕстьВыделенныеСтрокиВСпискеНоменклатуры(ЭтотОбъект) Тогда + НоменклатураСАналогичнымиСвойствамиНаСервере(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ТоварыДругогоКачества(Команда) + + Если ПодборТоваровКлиент.ЕстьВыделенныеСтрокиВСпискеНоменклатуры(ЭтотОбъект) Тогда + ТоварыДругогоКачестваНаСервере(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СброситьОтборыПоСвойствам(Команда) + + СброситьОтборыПоСвойствамНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда); + +КонецПроцедуры + +// ЭлектронноеВзаимодействие.РаботаСНоменклатурой + +&НаКлиенте +Процедура Подключаемый_ВыполнитьКомандуРаботаСНоменклатурой(Команда) + + РаботаСНоменклатуройКлиент.ВыполнитьПодключаемуюКоманду(ЭтотОбъект, Команда); + +КонецПроцедуры + +// Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + +// ИнтеграцияС1СДокументооборотом +&НаКлиенте +Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда) + + СписокИсточник = ?(Элементы.СтраницыСписков.ТекущаяСтраница = Элементы.СтраницаРасширенныйПоискНоменклатура, + Элементы.СписокРасширенныйПоискНоменклатура, + Элементы.СписокСтандартныйПоискНоменклатура); + + ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, СписокИсточник); + +КонецПроцедуры +// Конец ИнтеграцияС1СДокументооборотом + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура УстановитьУсловноеОформление() + + УсловноеОформление.Элементы.Очистить(); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ДеревоОтборовПредставлениеОтбора.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДеревоОтборов.ФиксированноеЗначение"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ГиперссылкаЦвет); + Элемент.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(WindowsШрифты.DefaultGUIFont, , , Ложь, Ложь, Истина, Ложь, )); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ДеревоОтборовПредставление.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДеревоОтборов.Отбор"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + Элемент.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(WindowsШрифты.DefaultGUIFont, , , Истина, Ложь, Ложь, Ложь, )); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ДеревоОтборов.Имя); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ИерархияНоменклатуры.Имя); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ВидыНоменклатуры.Имя); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СписокКачества.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИспользоватьФильтры"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", ЦветаСтиля.FormBackColor); + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ВидНоменклатуры.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИспользоватьФильтры"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВидНоменклатуры"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено; + Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СтрокаПоискаНоменклатура.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодборПоискНеУдачный"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", ЦветаСтиля.ПолеСОшибкойФон); + + // + +КонецПроцедуры + +#Область Поиск + +&НаКлиенте +Процедура ВыполнитьПоискНоменклатуры() + + ПодборТоваровКлиент.ВыполнениеРасширенногоПоискаВозможно(ЭтаФорма, + Новый ОписаниеОповещения("ВыполнитьПоискНоменклатурыЗавершение", ЭтотОбъект)); + +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьПоискНоменклатурыЗавершение(Результат, ДополнительныеПараметры) Экспорт + + ВыполнитьПоискНоменклатурыНаСервере(); + + ПодборТоваровКлиент.ПослеВыполненияПоискаНоменклатуры(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура ВыполнитьПоискНоменклатурыНаСервере() + + ПодборТоваровСервер.ВыполнитьПоискНоменклатуры(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура СнятьОтборПоСтрокеПоискаНоменклатурыНаСервере() + + ПодборТоваровКлиентСервер.СнятьОтборПоСтрокеПоискаНоменклатуры(ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура НастроитьПоиск(Команда) + + ПодборТоваровКлиент.НастроитьПоиск(ЭтаФорма); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийНаСервере + +&НаСервере +Процедура ИспользоватьФильтрыПриИзмененииНаСервере() + + ПодборТоваровСервер.ПриИзмененииИспользованияФильтров(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура ВидНоменклатурыПриИзмененииНаСервере() + + ПодборТоваровСервер.ПриИзмененииВидаНоменклатуры(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура СегментНоменклатурыПриИзмененииНаСервере() + + ПодборТоваровСервер.ПриИзмененииСегментаНоменклатуры(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура НоменклатураСАналогичнымиСвойствамиНаСервере() + + ПодборТоваровСервер.ПриИзмененииОтображенияНоменклатураСАналогичнымиСвойствами(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура ДеревоОтборовОтборПриИзмененииНаСервере() + + ПодборТоваровСервер.ДеревоОтборовОтборПриИзменении(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура НоменклатураИсходногоКачестваПриИзмененииНаСервере() + + ПодборТоваровСервер.НоменклатураИсходногоКачестваПриИзменении(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура СписокКачестваПометкаПриИзмененииНаСервере() + + ПодборТоваровСервер.СписокКачестваПометкаПриИзменении(ЭтаФорма); + +КонецПроцедуры + +#КонецОбласти + +#Область ГорячиеКлавиши + +&НаКлиенте +Процедура УстановитьТекущийЭлементСтрокаПоиска(Команда) + + ПодборТоваровКлиент.УстановитьТекущийЭлементСтрокаПоиска(ЭтаФорма); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиОжидания + +&НаКлиенте +Процедура СписокПриАктивизацииСтрокиОбработчикОжидания() + + ПодборТоваровКлиент.УстановитьТекущуюСтрокуИерархииНоменклатуры(ЭтаФорма); + +КонецПроцедуры + +#КонецОбласти + +#Область УправлениеВариантомНавигации + +&НаКлиенте +Процедура ВидыНоменклатурыПриАктивизацииСтроки(Элемент) + ПодборТоваровКлиент.ПриАктивизацииСтрокиСпискаВидыНоменклатуры(ЭтаФорма); +КонецПроцедуры + +&НаКлиенте +Процедура ВидыНоменклатурыПриАктивизацииСтрокиОбработчикОжидания() + + ТекущиеДанные = Элементы.ВидыНоменклатуры.ТекущиеДанные; + + Если ТекущиеДанные <> Неопределено Тогда + + ВидНоменклатурыПриИзмененииНаСервере(); + + Если ЗначениеЗаполнено(СтрокаПоискаНоменклатура) Тогда + ВыполнитьПоискНоменклатуры(); + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура НадписьВариантНавигацииНавигационнойСсылки(Элемент, НавигационнаяСсылка, СтандартнаяОбработка) + НадписьВариантНавигацииНавигационнойСсылкиНаСервере(НавигационнаяСсылка, СтандартнаяОбработка); +КонецПроцедуры + +&НаСервере +Процедура НадписьВариантНавигацииНавигационнойСсылкиНаСервере(НавигационнаяСсылка, СтандартнаяОбработка) + + ПодборТоваровСервер.НадписьВариантНавигацииНавигационнойСсылки(ЭтаФорма, НавигационнаяСсылка, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьВариантНавигации(Команда) + ПодборТоваровКлиент.ИзменитьВариантНавигации(ЭтотОбъект); +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьВариантНавигацииЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Если Результат = Неопределено + Или ВариантНавигации = Результат.Значение Тогда + Возврат; + КонецЕсли; + + ВариантНавигации = Результат.Значение; + ВариантНавигацииПриИзмененииНаСервере(); + +КонецПроцедуры + +&НаСервере +Процедура ВариантНавигацииПриИзмененииНаСервере() + + ПодборТоваровСервер.ПриИзмененииВариантаНавигации(ЭтаФорма); + +КонецПроцедуры + +#КонецОбласти + +#Область Прочее + +&НаСервере +Процедура СохранитьНастройкиФормыНаСервере() + + ПодборТоваровСервер.СохранитьНастройкиФормы(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Функция АдресТаблицПараметровДереваОтборовНаСервере() + + Структура = Новый Структура("АдресТаблицыПараметров, АдресТаблицыСопоставления"); + + Структура.АдресТаблицыПараметров = ПодборТоваровСервер.АдресТаблицыПараметровДереваОтборов(ЭтаФорма); + Структура.АдресТаблицыСопоставления = ПодборТоваровСервер.АдресТаблицыСопоставленияДереваОтборов(ЭтаФорма); + + Возврат Структура; + +КонецФункции + +&НаСервере +Процедура ТоварыДругогоКачестваНаСервере() + + ПодборТоваровСервер.УстановитьОтборПоНоменклатуреДругогоКачества(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура СброситьОтборыПоСвойствамНаСервере() + + ПодборТоваровСервер.СброситьОтборыПоСвойствам(ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ВыбратьЗначениеНоменклатуры(Команда) + + СтрокаНоменклатуры = Элементы[ПодборТоваровКлиентСервер.ИмяСпискаНоменклатурыПоВариантуПоиска(ЭтаФорма)].ТекущиеДанные; + + Если СтрокаНоменклатуры <> Неопределено Тогда + ПроверитьПометкуУдаленияИВыбрать(СтрокаНоменклатуры, СтрокаНоменклатуры.Ссылка); + КонецЕсли; + +КонецПроцедуры + +// Выполняет проверку пометки удаления у элемента номенклатуры. +// +// Параметры: +// СтрокаНоменклатуры - ДанныеФормыСтруктура - данные текущей строки списка номенклатуры +// +&НаКлиенте +Процедура ПроверитьПометкуУдаленияИВыбрать(СтрокаНоменклатуры, НоменклатураСсылка) + + Если СтрокаНоменклатуры = Неопределено Тогда + Возврат; + КонецЕсли; + + Если СтрокаНоменклатуры.ПометкаУдаления Тогда + ПоказатьВопрос( + Новый ОписаниеОповещения("ПроверитьПометкуУдаленияИВыбратьЗавершение", ЭтотОбъект, + Новый Структура("НоменклатураСсылка", НоменклатураСсылка)), + НСтр("ru = 'Выбранные данные помечены на удаление. + |Выполнить выбор этих данных?'") , + РежимДиалогаВопрос.ДаНет); + Возврат; + КонецЕсли; + + ОповеститьОВыборе(НоменклатураСсылка); + +КонецПроцедуры + +&НаКлиенте +Процедура ПроверитьПометкуУдаленияИВыбратьЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт + + Если РезультатВопроса = КодВозвратаДиалога.Нет Тогда + Возврат; + КонецЕсли; + + НоменклатураСсылка = ДополнительныеПараметры.НоменклатураСсылка; + + ОповеститьОВыборе(НоменклатураСсылка); + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти diff --git a/src/Catalogs/Номенклатура/Forms/ФормаВыбора/Ext/Help.xml b/src/Catalogs/Номенклатура/Forms/ФормаВыбора/Ext/Help.xml new file mode 100644 index 0000000..d983f4c --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаВыбора/Ext/Help.xml @@ -0,0 +1,4 @@ + + + ru + \ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаВыбора/Ext/Help/ru.html b/src/Catalogs/Номенклатура/Forms/ФормаВыбора/Ext/Help/ru.html new file mode 100644 index 0000000..52bffb7 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаВыбора/Ext/Help/ru.html @@ -0,0 +1,10 @@ + +

Номенклатура

+

Справочник предназначен для хранения информации о номенклатурных позициях следующих типов: товар, услуга, работа, тара и набор.

+

Подробное описание сценариев ведения справочника приведено в документации https://its.1c.ru/db/utdoc#bookmark:Goods:Goods

+

Позиции номенклатуры могут быть классифицированы по видам номенклатуры.

+

Вид номенклатуры – это дополнительная классификация товаров более обобщенная чем тип, и позволяющая отличать номенклатурные позиции по различным параметрам, например, характеристикам. Причем для более детальной классификации, рекомендуется использование нескольких видов номенклатуры с общим типом.
Вид номенклатуры можно поменять после создания номенклатуры. При этом новый и старый вид номенклатуры должны отвечать следующим требованиям:
- установлен один тип номенклатуры;
- одинаково установлен признак алкогольная продукция;
- одинаково установлен признак содержит драгоценные металлы или камни;
- характеристики не используются, или они индивидуальные для номенклатуры, или общие для нескольких видов (при этом оба вида - новый и старый - должны использовать один набор характеристик);
- серии не используются или настроены одинаково.

+

Пример. Если необходимо разделять услуги, которые оказывает наше предприятие, и услуги, оказываемые сторонними организациями, то можно создать два вида номенклатуры: внутренние услуги и сторонние услуги с одним и тем же типом – услуга.

Дополнительные материалы на ИТС

+

Основные действия

+

Основные действия

+
  • Подбор номенклатуры в документ, используя двойной щелчок мыши по нужной позиции списка (или с помощью команды Выбрать).
  • Полнотекстовый поиск номенклатуры.
  • Создание новой номенклатуры (с помощью команды Создать).
  • Установка в списке отбора с помощью фильтра по иерархии или по виду и свойствам.

 

\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаВыбораГруппИЭлементов.xml b/src/Catalogs/Номенклатура/Forms/ФормаВыбораГруппИЭлементов.xml new file mode 100644 index 0000000..3f4c66d --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаВыбораГруппИЭлементов.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаВыбораГруппИЭлементов + + + ru + Форма выбора групп и элементов + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаВыбораГруппИЭлементов/Ext/Form.xml b/src/Catalogs/Номенклатура/Forms/ФормаВыбораГруппИЭлементов/Ext/Form.xml new file mode 100644 index 0000000..c229ef3 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаВыбораГруппИЭлементов/Ext/Form.xml @@ -0,0 +1,181 @@ + +
+ LockOwnerWindow + + Copy + Create + CreateFolder + + + + ПриСозданииНаСервере + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа пользовательских настроек</v8:content> + </v8:item> + + Usual + None + false + + + + None + true + true + true + ExpandTopLevel + true + true + AsFile + Список + Список.DefaultPicture + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список</v8:content> + </v8:item> + + + Copy + Create + CreateFolder + + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + ГруппаПользовательскихНастроек + true + + + false + + + + + Список + SearchStringRepresentation + + + + + + + Список + ViewStatusRepresentation + + Left + + + + + + Список + SearchControl + + + + + + СписокПередНачаломДобавления + СписокПриАктивизацииСтроки + + + + Список.Code + + + + + Список.Description + true + + + + + Список.Артикул + + + + + Список.ВидНоменклатуры + + + + + Список.ЕдиницаИзмерения + + + + + Список.СтавкаНДС + + + + + Список.Ref + + false + + + + + +
+
+ + + + cfg:DynamicList + + true + + Список.Ref + + + false + true + Catalog.Номенклатура + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Параметры подключаемых команд</v8:content> + </v8:item> + + + + + \ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаВыбораГруппИЭлементов/Ext/Form/Module.bsl b/src/Catalogs/Номенклатура/Forms/ФормаВыбораГруппИЭлементов/Ext/Form/Module.bsl new file mode 100644 index 0000000..e8afd3d --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаВыбораГруппИЭлементов/Ext/Form/Module.bsl @@ -0,0 +1,60 @@ +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. + Возврат; + КонецЕсли; + + // СтандартныеПодсистемы.ПодключаемыеКоманды + ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект); + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + + СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); + + ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок + +&НаКлиенте +Процедура СписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) + Отказ = Истина; +КонецПроцедуры + +&НаКлиенте +Процедура СписокПриАктивизацииСтроки(Элемент) + // СтандартныеПодсистемы.ПодключаемыеКоманды + ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект); + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +// СтандартныеПодсистемы.ПодключаемыеКоманды + +&НаКлиенте +Процедура Подключаемый_ВыполнитьКоманду(Команда) + ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список); +КонецПроцедуры + +&НаСервере +Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт + ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Список, Результат); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ОбновитьКоманды() + ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Список); +КонецПроцедуры + +// Конец СтандартныеПодсистемы.ПодключаемыеКоманды + +#КонецОбласти + diff --git a/src/Catalogs/Номенклатура/Forms/ФормаВыбораГруппы.xml b/src/Catalogs/Номенклатура/Forms/ФормаВыбораГруппы.xml new file mode 100644 index 0000000..b036ce6 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаВыбораГруппы.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаВыбораГруппы + + + ru + Форма выбора группы + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаВыбораГруппы/Ext/Form.xml b/src/Catalogs/Номенклатура/Forms/ФормаВыбораГруппы/Ext/Form.xml new file mode 100644 index 0000000..91f3e89 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаВыбораГруппы/Ext/Form.xml @@ -0,0 +1,136 @@ + +
+ LockOwnerWindow + + Create + + + + ПриСозданииНаСервере + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа пользовательских настроек</v8:content> + </v8:item> + + Usual + None + false + + + + Tree + None + true + true +
false
+ false + false + ExpandTopLevel + true + true + AsFile + Список + Список.DefaultPicture + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список</v8:content> + </v8:item> + + + Create + + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Folders + false + + true + true + Auto + ГруппаПользовательскихНастроек + true + + + false + + + + + Список + SearchStringRepresentation + + + + + + + Список + ViewStatusRepresentation + + Left + + + + + + Список + SearchControl + + + + + + + Список.Description + true + + + + +
+
+ + + + cfg:DynamicList + + true + + false + true + Catalog.Номенклатура + + + + ЭтоГруппа + Equal + true + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + \ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаВыбораГруппы/Ext/Form/Module.bsl b/src/Catalogs/Номенклатура/Forms/ФормаВыбораГруппы/Ext/Form/Module.bsl new file mode 100644 index 0000000..bbc74d4 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаВыбораГруппы/Ext/Form/Module.bsl @@ -0,0 +1,25 @@ +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. + Возврат; + КонецЕсли; + + СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); + +КонецПроцедуры + +#КонецОбласти +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда); + +КонецПроцедуры + +#КонецОбласти + diff --git a/src/Catalogs/Номенклатура/Forms/ФормаВыбораНекачественнойНоменклатуры.xml b/src/Catalogs/Номенклатура/Forms/ФормаВыбораНекачественнойНоменклатуры.xml new file mode 100644 index 0000000..8553b7a --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаВыбораНекачественнойНоменклатуры.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаВыбораНекачественнойНоменклатуры + + + ru + Форма выбора некачественной номенклатуры + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаВыбораНекачественнойНоменклатуры/Ext/Form.xml b/src/Catalogs/Номенклатура/Forms/ФормаВыбораНекачественнойНоменклатуры/Ext/Form.xml new file mode 100644 index 0000000..9abdba6 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаВыбораНекачественнойНоменклатуры/Ext/Form.xml @@ -0,0 +1,694 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Выбор товара другого качества</v8:content> + </v8:item> + + false + + Close + + + false + + + ОбработкаОповещения + ПриСозданииНаСервере + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Шапка</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + false + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Товар исходного качества:</v8:content> + </v8:item> + + + + + + Номенклатура + true + + None + true + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Командная панель формы</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страницы командных панелей</v8:content> + </v8:item> + + None + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страница командная панель списка связанных товаров</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Командная панель списка связанных товаров</v8:content> + </v8:item> + + Form + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Создать</v8:content> + </v8:item> + + + StdPicture.CreateListItem + true + + + + + + + + + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страница командная панель общего списка</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Командная панель общего списка</v8:content> + </v8:item> + + Form + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Создать</v8:content> + </v8:item> + + + + ru + Форма группа создать некачественный товар + + + + StdPicture.CreateListItem + true + + + + + + + + + + + + + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Форма страницы</v8:content> + </v8:item> + + TabsOnTop + + + ГруппаФормаСтраницыПриСменеСтраницы + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Товары другого качества, связанные с товаром исходного качества</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа пользовательских настроек</v8:content> + </v8:item> + + Usual + None + false + + + + List + true + ExpandTopLevel + true + AsFile + СписокПоНоменклатуре + СписокПоНоменклатуре.DefaultPicture + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список</v8:content> + </v8:item> + + + Copy + Create + Delete + + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + ГруппаПользовательскихНастроек + true + + + false + + + + + Список + SearchStringRepresentation + + + + + + + Список + ViewStatusRepresentation + + Left + + + + + + Список + SearchControl + + + + + + СписокВыбор + + + + СписокПоНоменклатуре.НоменклатураБрак.Code + + + + + СписокПоНоменклатуре.НоменклатураБрак + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Наименование</v8:content> + </v8:item> + + 18 + false + + + + + СписокПоНоменклатуре.ГрадацияКачества + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Качество</v8:content> + </v8:item> + + + + + + СписокПоНоменклатуре.НоменклатураБрак.НаименованиеПолное + 18 + false + + + + +
+
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Все товары другого качества</v8:content> + </v8:item> + + + + + List + true + true + AsFile + ОбщийСписок + ОбщийСписок.DefaultPicture + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Общий список</v8:content> + </v8:item> + + + Change + Copy + Create + CreateFolder + + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + true + + + false + + + + + ОбщийСписок + SearchStringRepresentation + + + + + + + ОбщийСписок + ViewStatusRepresentation + + Left + + + + + + ОбщийСписок + SearchControl + + + + + + ОбщийСписокВыбор + + + + ОбщийСписок.Code + + + + + ОбщийСписок.Description + 18 + false + + + + + ОбщийСписок.Качество + + + + + ОбщийСписок.НаименованиеПолное + 18 + false + + + + + ОбщийСписок.Ref + false + + false + + + + + +
+
+
+
+
+
+ + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список по номенклатуре</v8:content> + </v8:item> + + + cfg:DynamicList + + + СписокПоНоменклатуре.Номенклатура + + + false + true + InformationRegister.ТоварыДругогоКачества + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + cfg:CatalogRef.Номенклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Структура реквизитов</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Общий список</v8:content> + </v8:item> + + + cfg:DynamicList + + + ОбщийСписок.Description + ОбщийСписок.IsFolder + ОбщийСписок.Ref + ОбщийСписок.ТипНоменклатуры + + + false + true + Catalog.Номенклатура + + + + Качество + NotEqual + Перечисление.ГрадацииКачества.Новый + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Выбрать</v8:content> + </v8:item> + + + + ru + Выбрать + + + Выбрать + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ограниченно годный</v8:content> + </v8:item> + + + + ru + Создать ограниченно годный товар + + + СоздатьОграниченноГоднуюНоменклатуру + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Негодный</v8:content> + </v8:item> + + + + ru + Создать не годный товар + + + СоздатьНеГоднуюНоменклатуру + DontUse + + + + + + cfg:CatalogRef.Номенклатура + + + + + cfg:CatalogRef.ХарактеристикиНоменклатуры + + + + + cfg:CatalogRef.УпаковкиЕдиницыИзмерения + + + + \ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаВыбораНекачественнойНоменклатуры/Ext/Form/Module.bsl b/src/Catalogs/Номенклатура/Forms/ФормаВыбораНекачественнойНоменклатуры/Ext/Form/Module.bsl new file mode 100644 index 0000000..e766aaa --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаВыбораНекачественнойНоменклатуры/Ext/Form/Module.bsl @@ -0,0 +1,251 @@ + +#Область ОписаниеПеременных + +&НаКлиенте +Перем КэшированныеЗначения; //используется механизмом обработки изменения реквизитов ТЧ + +#КонецОбласти + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + ТипНоменклатуры = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Параметры.Номенклатура, "ТипНоменклатуры"); + Если ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Услуга") Тогда + ТекстСообщения = НСтр("ru='Качество услуг изменять нельзя.'"); + ВызватьИсключение ТекстСообщения; + ИначеЕсли ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Работа") Тогда + ТекстСообщения = НСтр("ru='Качество работ изменять нельзя.'"); + ВызватьИсключение ТекстСообщения; + КонецЕсли; + + Если Не ПолучитьФункциональнуюОпцию("ИспользоватьОбобщенныйУчетНекачественныхТоваров") Тогда + Элементы.ГруппаФормаСтраницы.ОтображениеСтраниц = ОтображениеСтраницФормы.Нет; + Элементы.ГруппаФормаСтраницы.ТекущаяСтраница = Элементы.СтраницаПоНоменклатуре; + КонецЕсли; + + ТоварИсходногоКачества = РегистрыСведений.ТоварыДругогоКачества.ПолучитьТоварИсходногоКачества(Параметры.Номенклатура); + Если ЗначениеЗаполнено(ТоварИсходногоКачества) Тогда + Номенклатура = ТоварИсходногоКачества; + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(СписокПоНоменклатуре, "Номенклатура", ТоварИсходногоКачества, ВидСравненияКомпоновкиДанных.Равно,,Истина); + Иначе + ШаблонТекстаСообщения = НСтр("ru = 'Для товара %Товар% не найден товар исходного качества. Выбор товаров другого качества невозможен.'"); + ТекстСообщения = СтрЗаменить(ШаблонТекстаСообщения, "%Товар%", ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Параметры.Номенклатура, "Наименование")); + ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения); + Отказ = Истина; + КонецЕсли; + Элементы.ГруппаСоздатьНекачественныйТовар.Видимость = ПравоДоступа("Добавление", Метаданные.Справочники.Номенклатура); + Элементы.ГруппаСоздатьНекачественныйТовар1.Видимость = ПравоДоступа("Добавление", Метаданные.Справочники.Номенклатура); + Элементы.СтраницаОбщегоСписка.Видимость = ПравоДоступа("Изменение", Метаданные.РегистрыСведений.ТоварыДругогоКачества); + Если Элементы.СтраницаОбщегоСписка.Видимость Тогда + ПоляНоменклатуры = Новый Структура; + ПоляНоменклатуры.Вставить("ВидНоменклатуры"); + ПоляНоменклатуры.Вставить("ИспользоватьСерии", "ВидНоменклатуры.ИспользоватьСерии"); + ПоляНоменклатуры.Вставить("НастройкаИспользованияСерий", "ВидНоменклатуры.НастройкаИспользованияСерий"); + РеквизитыНоменклатуры = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Параметры.Номенклатура, ПоляНоменклатуры); + Если РеквизитыНоменклатуры.ИспользоватьСерии + И Не РеквизитыНоменклатуры.НастройкаИспользованияСерий = Перечисления.НастройкиИспользованияСерийНоменклатуры.ЭкземплярТовара Тогда + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(ОбщийСписок, + "ВидНоменклатуры", + РеквизитыНоменклатуры.ВидНоменклатуры, + ВидСравненияКомпоновкиДанных.Равно,, + Истина); + Элементы.СтраницаОбщегоСписка.Заголовок = НСтр("ru='Товары другого качества с видом номенклатуры товара исходного качества'"); + КонецЕсли; + КонецЕсли; + + СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + Если ИмяСобытия = "Запись_Номенклатура" Тогда + Если ЗначениеЗаполнено(Источник) Тогда + УстановитьГрадациюКачества(Источник); + Элементы.ОбщийСписок.ТекущаяСтрока = Источник; + КонецЕсли; + КонецЕсли; +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок + +&НаКлиенте +Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + ОбработатьВыборНекачественнойНоменклатурыКлиент(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбщийСписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + ОбработатьВыборНекачественнойНоменклатурыКлиент(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Выбрать(Команда) + + ОбработатьВыборНекачественнойНоменклатурыКлиент(); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьОграниченноГоднуюНоменклатуру(Команда) + Качество = ПредопределенноеЗначение("Перечисление.ГрадацииКачества.ОграниченноГоден"); + СоздатьНоменклатуруСДругимКачеством(Качество); +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьНеГоднуюНоменклатуру(Команда) + Качество = ПредопределенноеЗначение("Перечисление.ГрадацииКачества.НеГоден"); + СоздатьНоменклатуруСДругимКачеством(Качество); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область Прочее + +&НаСервере +Функция ПроверитьУстановитьГрадацию(ТоварИсходногоКачества, НекачественныйТовар) + Отказ = Ложь; + ЕстьГрадация = РегистрыСведений.ТоварыДругогоКачества.ПроверитьНаличиеГрадации(ТоварИсходногоКачества, НекачественныйТовар); + Если Не ЕстьГрадация Тогда + Попытка + РегистрыСведений.ТоварыДругогоКачества.ЗаписатьСвязьСТоваромДругогоКачества(ТоварИсходногоКачества, НекачественныйТовар); + Исключение + Отказ = Истина; + КонецПопытки; + КонецЕсли; + + Возврат Отказ; +КонецФункции + +&НаСервере +Процедура УстановитьГрадациюКачества(НекачественныйТовар) + + РегистрыСведений.ТоварыДругогоКачества.ЗаписатьСвязьСТоваромДругогоКачества(Номенклатура, НекачественныйТовар); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработатьВыборНекачественнойНоменклатурыКлиент() + + ОчиститьСообщения(); + + Отказ = Ложь; + ПроверятьГрадацию = Ложь; + + Если Элементы.ГруппаФормаСтраницы.ТекущаяСтраница = Элементы.СтраницаПоНоменклатуре Тогда + ТекущиеДанные = Элементы.Список.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат + КонецЕсли; + НекачественныйТовар = ТекущиеДанные.НоменклатураБрак; + Иначе + ТекущиеДанные = Элементы.ОбщийСписок.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат + КонецЕсли; + НекачественныйТовар = ТекущиеДанные.Ссылка; + ПроверятьГрадацию = Истина; + ЕстьСоответствие = Ложь; + КонецЕсли; + + Если ПроверятьГрадацию Тогда + Отказ = ПроверитьУстановитьГрадацию(Номенклатура, НекачественныйТовар); + КонецЕсли; + + Если Не Отказ И ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта(НекачественныйТовар, "ПометкаУдаления") Тогда + ПоказатьВопрос(Новый ОписаниеОповещения("ОбработатьВыборНекачественнойНоменклатурыКлиентЗавершение", ЭтотОбъект, Новый Структура("НекачественныйТовар, Отказ", НекачественныйТовар, Отказ)), НСтр("ru = 'Выбранные данные помечены на удаление. + |Выполнить выбор этих данных?'") , РежимДиалогаВопрос.ДаНет); + Возврат; + КонецЕсли; + + ОбработатьВыборНекачественнойНоменклатурыКлиентФрагмент(НекачественныйТовар, Отказ); +КонецПроцедуры + +&НаКлиенте +Процедура ОбработатьВыборНекачественнойНоменклатурыКлиентЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт + + НекачественныйТовар = ДополнительныеПараметры.НекачественныйТовар; + Отказ = ДополнительныеПараметры.Отказ; + + + Если РезультатВопроса = КодВозвратаДиалога.Нет Тогда + Возврат; + КонецЕсли; + + ОбработатьВыборНекачественнойНоменклатурыКлиентФрагмент(НекачественныйТовар, Отказ); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработатьВыборНекачественнойНоменклатурыКлиентФрагмент(Знач НекачественныйТовар, Знач Отказ) + + Если Не Отказ Тогда + Закрыть(НекачественныйТовар); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьНоменклатуруСДругимКачеством(Качество) + ПараметрыСозданияВФорму = Новый Структура; + ПараметрыСозданияВФорму.Вставить("Качество", Качество); + + ПараметрыФормы = Новый Структура("ЗначениеКопирования, ДополнительныеПараметры", Номенклатура, ПараметрыСозданияВФорму); + ОткрытьФорму( + "Справочник.Номенклатура.ФормаОбъекта", + ПараметрыФормы, + , + , + , + , + Новый ОписаниеОповещения("СоздатьНоменклатуруСДругимКачествомЗавершение", ЭтотОбъект), + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьНоменклатуруСДругимКачествомЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Элементы.Список.Обновить(); + +КонецПроцедуры + +&НаКлиенте +Процедура ГруппаФормаСтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница) + Если Элементы.ГруппаФормаСтраницы.ТекущаяСтраница = Элементы.СтраницаПоНоменклатуре Тогда + Элементы.СтраницыКомандныхПанелей.ТекущаяСтраница = Элементы.СтраницаКоманднаяПанельСпискаСвязанныхТоваров; + Иначе + Элементы.СтраницыКомандныхПанелей.ТекущаяСтраница = Элементы.СтраницаКоманднаяПанельОбщегоСписка; + КонецЕсли; +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти diff --git a/src/Catalogs/Номенклатура/Forms/ФормаВыбораНекачественнойНоменклатуры/Ext/Help.xml b/src/Catalogs/Номенклатура/Forms/ФормаВыбораНекачественнойНоменклатуры/Ext/Help.xml new file mode 100644 index 0000000..d983f4c --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаВыбораНекачественнойНоменклатуры/Ext/Help.xml @@ -0,0 +1,4 @@ + + + ru + \ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаВыбораНекачественнойНоменклатуры/Ext/Help/ru.html b/src/Catalogs/Номенклатура/Forms/ФормаВыбораНекачественнойНоменклатуры/Ext/Help/ru.html new file mode 100644 index 0000000..77b36f8 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаВыбораНекачественнойНоменклатуры/Ext/Help/ru.html @@ -0,0 +1,4 @@ + +

Форма выбора некачественной номенклатуры

+

Регистрация номенклатуры с качеством отличным от оригинального (нового), осуществляется в системе с использованием помощника по команде Изменить качество. При этом в системе будет зарегистрирована дополнительная номенклатурная позиция, автоматически связанная с товаром исходного качества. Данная процедура может быть произведена, например, в момент приемки товара. Для созданной номенклатуры определяется необходимая градация качества: Ограниченно годный или Негодный.

В форме помощника доступна следующая информация:

+
  • На странице Товары другого качества, связанные с товаром исходного качества - список ранее зарегистрированных товаров другого качества.
  • На странице Все товары другого качества - список всех товаров, которые имеют качество ограниченно годен или не годен.

 

\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаГруппы.xml b/src/Catalogs/Номенклатура/Forms/ФормаГруппы.xml new file mode 100644 index 0000000..216c381 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаГруппы.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаГруппы + + + ru + Форма группы + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаГруппы/Ext/Form.xml b/src/Catalogs/Номенклатура/Forms/ФормаГруппы/Ext/Form.xml new file mode 100644 index 0000000..1541361 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаГруппы/Ext/Form.xml @@ -0,0 +1,210 @@ + +
+ LockOwnerWindow + Folders + + + + + + + ПослеЗаписиНаСервере + ПриЧтенииНаСервере + ПриСозданииНаСервере + ПередЗаписьюНаСервере + + + + Объект.Code + EnterOnInput + + + + + Объект.Description + EnterOnInput + + + + + Объект.Parent + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Входит в группу</v8:content> + </v8:item> + + EnterOnInput + + + + + + + + cfg:CatalogObject.Номенклатура + + true + true + + + + + + CommonCommand.МоиЗаметкиПоПредмету + Added + FormNavigationPanelGoTo + false + + + 0 + Auto + false + + false + + + + 0 + Auto + false + + false + + + + 0 + Auto + false + + false + + + + 0 + Auto + false + + false + + + + InformationRegister.ШтрихкодыНоменклатуры.Command.ШтрихкодыНоменклатуры + Auto + false + + false + + + + Report.СостояниеАссортимента.Command.СостояниеАссортимента + Auto + false + + false + + + + InformationRegister.Ассортимент.StandardCommand.OpenByValue.Номенклатура + Auto + false + + false + + + + InformationRegister.РазмещениеНоменклатурыПоСкладскимЯчейкам.StandardCommand.OpenByValue.Номенклатура + Auto + false + + false + + + + InformationRegister.ПрогнозыРасходаУпаковок.StandardCommand.OpenByValue.Номенклатура + Auto + false + + false + + + + InformationRegister.НоменклатураСегмента.StandardCommand.OpenByValue.Номенклатура + Auto + false + + false + + + + InformationRegister.НастройкаРаспределенияПоНаправлениямДеятельности.StandardCommand.OpenByValue.Номенклатура + Auto + false + + false + + + + Report.ТоварыВЯчейках.Command.ПоНоменклатуре + Auto + false + + false + + + + Report.ТоварыНаСкладахПоСрокамГодности.Command.ПоНоменклатуре + Auto + false + + false + + + + CommonCommand.МоиЗаметкиПоПредмету + Auto + false + + false + + + + InformationRegister.ABCXYZКлассификацияНоменклатуры.Command.ABCXYZКлассификация + Auto + false + + false + + + + InformationRegister.ЗаданияКРаспределениюЗапасов.StandardCommand.OpenByValue.Номенклатура + Auto + false + + false + + + + InformationRegister.ШтрихкодыНоменклатуры.StandardCommand.OpenByValue.Номенклатура + Auto + false + + false + + + + + + CommonCommand.СоздатьЗаметкуПоПредмету + Added + CommandGroup.Органайзер + false + + + +
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаГруппы/Ext/Form/Module.bsl b/src/Catalogs/Номенклатура/Forms/ФормаГруппы/Ext/Form/Module.bsl new file mode 100644 index 0000000..4eac481 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаГруппы/Ext/Form/Module.bsl @@ -0,0 +1,68 @@ + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. + Возврат; + КонецЕсли; + + СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); + // СтандартныеПодсистемы.БазоваяФункциональность + МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + // Конец СтандартныеПодсистемы.БазоваяФункциональность + ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ПриЧтенииНаСервере(ТекущийОбъект) + + // СтандартныеПодсистемы.УправлениеДоступом + УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + // Конец СтандартныеПодсистемы.УправлениеДоступом + // СтандартныеПодсистемы.БазоваяФункциональность + МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + // Конец СтандартныеПодсистемы.БазоваяФункциональность +КонецПроцедуры + +&НаСервере +Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект) + // СтандартныеПодсистемы.БазоваяФункциональность + МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + // Конец СтандартныеПодсистемы.БазоваяФункциональность +КонецПроцедуры + +&НаСервере +Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) + + // СтандартныеПодсистемы.УправлениеДоступом + УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи); + // Конец СтандартныеПодсистемы.УправлениеДоступом + + // СтандартныеПодсистемы.БазоваяФункциональность + МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + // Конец СтандартныеПодсистемы.БазоваяФункциональность +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка) + // СтандартныеПодсистемы.БазоваяФункциональность + МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + // Конец СтандартныеПодсистемы.БазоваяФункциональность +КонецПроцедуры + +#КонецОбласти + diff --git a/src/Catalogs/Номенклатура/Forms/ФормаСписка.xml b/src/Catalogs/Номенклатура/Forms/ФормаСписка.xml new file mode 100644 index 0000000..96aa1c5 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаСписка.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаСписка + + + ru + Форма списка + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаСписка/Ext/Form.xml b/src/Catalogs/Номенклатура/Forms/ФормаСписка/Ext/Form.xml new file mode 100644 index 0000000..6badb88 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаСписка/Ext/Form.xml @@ -0,0 +1,3729 @@ + +
+ + CancelSearch + Change + Copy + Create + CreateFolder + Delete + DynamicListStandardSettings + Find + FindByCurrentValue + HierarchicalList + LevelDown + LevelUp + List + ListSettings + LoadDynamicListSettings + MoveItem + OutputList + Refresh + SaveDynamicListSettings + SetDeletionMark + Tree + + + false + + + ОбработкаОповещения + ПриОткрытии + ПриСозданииНаСервере + ПриЗакрытии + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Форма таблицы</v8:content> + </v8:item> + + Horizontal + Usual + None + LeftWide + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страницы списков</v8:content> + </v8:item> + + None + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страница расширенный поиск номенклатура</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Поиск</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Расширенный поиск</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + СтрокаПоискаНоменклатура + None + true + true + + + ru + Поиск (Alt+1) + + + + + + СтрокаПоискаНоменклатураПриИзменении + СтрокаПоискаНоменклатураОчистка + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Командная панель поиск</v8:content> + </v8:item> + + 3 + false + + + + + + + НайтиНоменклатуруПоТочномуСоответствию + Right + Auto + + + + НайтиНоменклатуруПоТочномуСоответствиюПриИзменении + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список номенклатуры</v8:content> + </v8:item> + + Vertical + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа пользовательских настроек</v8:content> + </v8:item> + + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Командная панель список расширенный поиск номенклатура</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Команды список расширенный поиск номенклатура</v8:content> + </v8:item> + + + + ru + Группа команды список1 + + + Item.СписокРасширенныйПоискНоменклатура + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Установить фильтр</v8:content> + </v8:item> + + + CommonPicture.ФильтрПоСвойствам + false + + Picture + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Горячие клавиши</v8:content> + </v8:item> + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Команды формы список расширенный поиск номенклатура</v8:content> + </v8:item> + + + + ru + Группа команды форма1 + + + Form + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Печать</v8:content> + </v8:item> + + + + ru + Команды печати + + + + StdPicture.Print + true + + + + + + + List + None + DontUse + true + DontUse + ExpandTopLevel + true + AsFile + СписокНоменклатура + СписокНоменклатура.ИндексКартинки + + CommonPicture.Номенклатура + false + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список расширенный поиск номенклатура</v8:content> + </v8:item> + + + CancelSearch + CreateFolder + Find + FindByCurrentValue + HierarchicalList + LevelDown + LevelUp + List + Tree + + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + ГруппаПользовательскихНастроек + true + + + + + + + + + + + + + СписокРасширенныйПоискНоменклатура + SearchStringRepresentation + + + + + + + СписокРасширенныйПоискНоменклатура + ViewStatusRepresentation + + Left + + + + + + СписокРасширенныйПоискНоменклатура + SearchControl + + + + + + СписокРасширенныйПоискНоменклатураВыбор + СписокПередНачаломДобавления + СписокПриАктивизацииСтроки + + + + СписокНоменклатура.Наименование + + + + + СписокНоменклатура.Артикул + 16 + + + + + СписокНоменклатура.Ссылка + + false + + + + + +
+
+
+
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страница стандартный поиск номенклатура</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа пользовательских настроек</v8:content> + </v8:item> + + Usual + None + false + + + + List + DontUse + true + Use + ExpandTopLevel + true + AsFile + СписокНоменклатура + СписокНоменклатура.ИндексКартинки + + CommonPicture.Номенклатура + false + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список стандартный поиск номенклатура</v8:content> + </v8:item> + + + CreateFolder + FindByCurrentValue + HierarchicalList + LevelDown + LevelUp + List + Tree + + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + ГруппаПользовательскихНастроек1 + true + + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Установить фильтр</v8:content> + </v8:item> + + + CommonPicture.ФильтрПоСвойствам + false + + Picture + + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Команды формы список стандартный поиск номенклатура</v8:content> + </v8:item> + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Создать на основании</v8:content> + </v8:item> + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Органайзер</v8:content> + </v8:item> + + + CommonPicture.Органайзер + false + + Picture + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Печать</v8:content> + </v8:item> + + + + ru + Команды печати + + + + StdPicture.Print + true + + + + + + + + + СписокСтандартныйПоискНоменклатура + SearchStringRepresentation + + + + + + + СписокСтандартныйПоискНоменклатура + ViewStatusRepresentation + + Left + + + + + + СписокСтандартныйПоискНоменклатура + SearchControl + + + + + + СписокСтандартныйПоискНоменклатураВыбор + СписокПередНачаломДобавления + СписокПриАктивизацииСтроки + + + + СписокНоменклатура.Наименование + + + + + СписокНоменклатура.Артикул + 16 + + + + + СписокНоменклатура.Ссылка + + false + + + + + +
+
+
+
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Панель категорий</v8:content> + </v8:item> + + 35 + Vertical + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Фильтры номенклатуры</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + ИспользоватьФильтры + None + Auto + + + + ИспользоватьФильтрыПриИзменении + + + + НадписьВариантНавигации + None + + + + НадписьВариантНавигацииНавигационнойСсылки + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Командная панель вариант навигации</v8:content> + </v8:item> + + 10 + Right + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Создать</v8:content> + </v8:item> + + + StdPicture.CreateListItem + true + + Picture + + + + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Варианты навигации</v8:content> + </v8:item> + + None + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Навигация иерархия номенклатуры</v8:content> + </v8:item> + + false + + + + Tree + SingleRow +
false
+ DontUse + true + ExpandTopLevel + true + true + AsFile + ИерархияНоменклатуры + ИерархияНоменклатуры.DefaultPicture + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Иерархия номенклатуры</v8:content> + </v8:item> + + + CancelSearch + CopyToClipboard + Delete + Find + HierarchicalList + LevelDown + LevelUp + List + ListSettings + MoveItem + OutputList + Refresh + Tree + + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + true + + false + + + + + + + + + + false + + + + + ИерархияНоменклатуры + SearchStringRepresentation + + + + + + + ИерархияНоменклатуры + ViewStatusRepresentation + + Left + + + + + + ИерархияНоменклатуры + SearchControl + + + + + + ИерархияНоменклатурыПриАктивизацииСтроки + + + + ИерархияНоменклатуры.Ref + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа номенклатуры</v8:content> + </v8:item> + + + + + +
+
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Навигация виды номенклатуры</v8:content> + </v8:item> + + false + + + + ВидНоменклатуры + false + false + true + Items + true + + + + ВидНоменклатурыПриИзменении + + + + Tree + SingleRow +
false
+ DontUse + true + true + true + AsFile + ВидыНоменклатуры + ВидыНоменклатуры.DefaultPicture + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Виды номенклатуры</v8:content> + </v8:item> + + + CancelSearch + CopyToClipboard + Delete + DynamicListStandardSettings + Find + FindByCurrentValue + HierarchicalList + List + ListSettings + LoadDynamicListSettings + OutputList + Refresh + SaveDynamicListSettings + Tree + + false + 59 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + false + false + Auto + true + + false + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Виды номенклатуры контекстное меню стандартные команды</v8:content> + </v8:item> + + Item.ВидыНоменклатуры + + + + + + false + + + + + ВидыНоменклатуры + SearchStringRepresentation + + + + + + + ВидыНоменклатуры + ViewStatusRepresentation + + Left + + + + + + ВидыНоменклатуры + SearchControl + + + + + + ВидыНоменклатурыПроверкаПеретаскивания + ВидыНоменклатурыПриАктивизацииСтроки + ВидыНоменклатурыПеретаскивание + + + + ВидыНоменклатуры.Наименование + + + + + ВидыНоменклатуры.Ссылка + + false + + + + + +
+ + Tree + false +
false
+ false + false + true + ExpandAllLevels + AsFile + ДеревоОтборов + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Дерево отборов</v8:content> + </v8:item> + + + Add + Change + Copy + CopyToClipboard + Delete + EndEdit + HierarchicalList + List + MoveDown + MoveUp + OutputList + SelectAll + SortListAsc + SortListDesc + Tree + + + + false + + + + + ДеревоОтборов + SearchStringRepresentation + + + + + + + ДеревоОтборов + ViewStatusRepresentation + + Left + + + + + + ДеревоОтборов + SearchControl + + + + + + ДеревоОтборовВыбор + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Дерево отборов группа представление</v8:content> + </v8:item> + + InCell + + + + ДеревоОтборов.Отбор + EnterOnInput + Auto + + + + ДеревоОтборовОтборПриИзменении + + + + ДеревоОтборов.Представление + true + EnterOnInput + + + + + + + ДеревоОтборов.ПредставлениеОтбора + EnterOnInput + true + 15 + false + style:ГиперссылкаЦвет + + + + +
+
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страница товары другого качества</v8:content> + </v8:item> + + + + + НоменклатураИсходногоКачества + Items + + + + + true + + + + + + + НоменклатураИсходногоКачестваПриИзменении + + + + List + false +
false
+ false + false + true + true + AsFile + СписокКачества + СписокКачества.Picture + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список качества</v8:content> + </v8:item> + + + Add + Change + CheckAll + Copy + CopyToClipboard + Delete + EndEdit + MoveDown + MoveUp + Pickup + SelectAll + SortListAsc + SortListDesc + UncheckAll + + + + false + + + + + СписокКачества + SearchStringRepresentation + + + + + + + СписокКачества + ViewStatusRepresentation + + Left + + + + + + СписокКачества + SearchControl + + + + + + + СписокКачества.Check + EnterOnInput + Auto + + + + СписокКачестваПометкаПриИзменении + + + + СписокКачества.Value + true + EnterOnInput + + + + +
+
+
+
+
+ + СегментНоменклатуры + true + false + Items + + + + + + + + Enum.СпособыФормированияСегментов.EnumValue.ФормироватьВручную + + + + Enum.СпособыФормированияСегментов.EnumValue.ПериодическиОбновлять + + + + + + true + + + + СегментНоменклатурыПриИзменении + + +
+
+
+
+
+ + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список номенклатура</v8:content> + </v8:item> + + + cfg:DynamicList + + true + + СписокНоменклатура.Артикул + СписокНоменклатура.ВидНоменклатуры + СписокНоменклатура.Наименование + СписокНоменклатура.Родитель + СписокНоменклатура.Ссылка + + + true + true + ВЫБРАТЬ + СпрНоменклатураПереопределяемый.Ссылка КАК Ссылка, + СпрНоменклатураПереопределяемый.Код КАК Код, + СпрНоменклатураПереопределяемый.Наименование КАК Наименование, + СпрНоменклатураПереопределяемый.Артикул КАК Артикул, + СпрНоменклатураПереопределяемый.ВидНоменклатуры КАК ВидНоменклатуры, + СпрНоменклатураПереопределяемый.ЕдиницаИзмерения КАК ЕдиницаИзмерения, + СпрНоменклатураПереопределяемый.СтавкаНДС КАК СтавкаНДС, + СпрНоменклатураПереопределяемый.Родитель КАК Родитель, + ВЫБОР + КОГДА СпрНоменклатураПереопределяемый.ЕстьТоварыДругогоКачества + ТОГДА 4 + ВЫБОР + КОГДА СпрНоменклатураПереопределяемый.ПометкаУдаления + ТОГДА 1 + ИНАЧЕ 0 + КОНЕЦ + ВЫБОР + КОГДА СпрНоменклатураПереопределяемый.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать) + ТОГДА 0 + ИНАЧЕ 2 + КОНЕЦ + ИНАЧЕ ВЫБОР + КОГДА СпрНоменклатураПереопределяемый.ПометкаУдаления + ТОГДА 1 + ИНАЧЕ 0 + КОНЕЦ + ВЫБОР + КОГДА СпрНоменклатураПереопределяемый.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать) + ТОГДА 0 + ИНАЧЕ 2 + КОНЕЦ + КОНЕЦ КАК ИндексКартинки, + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + + "" КАК НоменклатураРаботаСНоменклатурой, + 0 КАК КодСтатусаСопоставленияРаботаСНоменклатурой, + "" КАК ИдентификаторНоменклатурыРаботаСНоменклатурой, + 0 КАК КартинкаРежимаОбновленияРаботаСНоменклатурой + + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + +ИЗ + Справочник.Номенклатура КАК СпрНоменклатураПереопределяемый +ГДЕ + НЕ СпрНоменклатураПереопределяемый.ЭтоГруппа +{ГДЕ + (СпрНоменклатураПереопределяемый.Ссылка В + (ВЫБРАТЬ + СегментыПереопределяемый.Номенклатура + ИЗ + РегистрСведений.НоменклатураСегмента КАК СегментыПереопределяемый + ГДЕ + СегментыПереопределяемый.Сегмент = &СегментНоменклатуры))} + + ВесМожноУказыватьВДокументах + ВесМожноУказыватьВДокументах + + + ЕдиницаДляОтчетов + ЕдиницаДляОтчетов + + + КодВидаНоменклатурнойКлассификации + КодВидаНоменклатурнойКлассификации + + + ВариантОформленияПродажи + ВариантОформленияПродажи + + + ИспользоватьИндивидуальныйШаблонЭтикетки + ИспользоватьИндивидуальныйШаблонЭтикетки + + + ИспользованиеХарактеристик + ИспользованиеХарактеристик + + + ВидАлкогольнойПродукции + ВидАлкогольнойПродукции + + + ДлинаЕдиницаИзмерения + ДлинаЕдиницаИзмерения + + + ВестиУчетПоГТД + ВестиУчетПоГТД + + + ВесЕдиницаИзмерения + ВесЕдиницаИзмерения + + + ВесЗнаменатель + ВесЗнаменатель + + + ВесИспользовать + ВесИспользовать + + + ПлощадьМожноУказыватьВДокументах + ПлощадьМожноУказыватьВДокументах + + + ШаблонЭтикетки + ШаблонЭтикетки + + + ВестиУчетСертификатовНоменклатуры + ВестиУчетСертификатовНоменклатуры + + + ВесЧислитель + ВесЧислитель + + + ОбъемЧислитель + ОбъемЧислитель + + + ГруппаДоступа + ГруппаДоступа + + + ОбъемМожноУказыватьВДокументах + ОбъемМожноУказыватьВДокументах + + + АлкогольнаяПродукция + АлкогольнаяПродукция + + + НаименованиеПолное + НаименованиеПолное + + + ЕдиницаИзмеренияСрокаГодности + ЕдиницаИзмеренияСрокаГодности + + + ЕстьТоварыДругогоКачества + ЕстьТоварыДругогоКачества + + + ИмпортнаяАлкогольнаяПродукция + ИмпортнаяАлкогольнаяПродукция + + + СезоннаяГруппа + СезоннаяГруппа + + + ДлинаЗнаменатель + ДлинаЗнаменатель + + + ХарактеристикаМногооборотнаяТара + ХарактеристикаМногооборотнаяТара + + + ИспользоватьИндивидуальныйШаблонЦенника + ИспользоватьИндивидуальныйШаблонЦенника + + + ДлинаИспользовать + ДлинаИспользовать + + + ДлинаМожноУказыватьВДокументах + ДлинаМожноУказыватьВДокументах + + + ДлинаЧислитель + ДлинаЧислитель + + + КоллекцияНоменклатуры + КоллекцияНоменклатуры + + + ОбъемИспользовать + ОбъемИспользовать + + + СпособОбеспеченияПотребностей + СпособОбеспеченияПотребностей + + + ИспользоватьУпаковки + ИспользоватьУпаковки + + + ПлощадьЗнаменатель + ПлощадьЗнаменатель + + + ОбъемДАЛ + ОбъемДАЛ + + + Качество + Качество + + + КодДляПоиска + КодДляПоиска + + + Артикул + Артикул + + + КоэффициентЕдиницыДляОтчетов + КоэффициентЕдиницыДляОтчетов + + + Марка + Марка + + + КиЗГИСМСпособВыпускаВОборот + КиЗГИСМСпособВыпускаВОборот + + + НаборУпаковок + НаборУпаковок + + + ОсобенностьУчета + ОсобенностьУчета + + + ТипНоменклатуры + ТипНоменклатуры + + + ГруппаФинансовогоУчета + ГруппаФинансовогоУчета + + + ПлощадьЕдиницаИзмерения + ПлощадьЕдиницаИзмерения + + + НоменклатураМногооборотнаяТара + НоменклатураМногооборотнаяТара + + + Описание + Описание + + + ПоставляетсяВМногооборотнойТаре + ПоставляетсяВМногооборотнойТаре + + + Производитель + Производитель + + + ПроизводительИмпортерКонтрагент + ПроизводительИмпортерКонтрагент + + + СхемаОбеспечения + СхемаОбеспечения + + + СкладскаяГруппа + СкладскаяГруппа + + + СрокГодности + СрокГодности + + + РейтингПродаж + РейтингПродаж + + + ТоварнаяКатегория + ТоварнаяКатегория + + + ОбъемЕдиницаИзмерения + ОбъемЕдиницаИзмерения + + + ПлощадьИспользовать + ПлощадьИспользовать + + + ФайлКартинки + ФайлКартинки + + + ФайлОписанияДляСайта + ФайлОписанияДляСайта + + + ОбъемЗнаменатель + ОбъемЗнаменатель + + + ПлощадьЧислитель + ПлощадьЧислитель + + + КодОКП + КодОКП + + + ЦеноваяГруппа + ЦеноваяГруппа + + + ШаблонЦенника + ШаблонЦенника + + + Принципал + Принципал + + + Контрагент + Контрагент + + + ОбособленнаяЗакупкаПродажа + ОбособленнаяЗакупкаПродажа + + + ГруппаАналитическогоУчета + ГруппаАналитическогоУчета + + + КодТНВЭД + КодТНВЭД + + + КодОКВЭД + КодОКВЭД + + + ОблагаетсяНДПИПоПроцентнойСтавке + ОблагаетсяНДПИПоПроцентнойСтавке + + + ВладелецСерий + ВладелецСерий + + + ВладелецХарактеристик + ВладелецХарактеристик + + + ВладелецТоварныхКатегорий + ВладелецТоварныхКатегорий + + + Крепость + Крепость + + + ПродукцияМаркируемаяДляГИСМ + ПродукцияМаркируемаяДляГИСМ + + + КиЗГИСМ + КиЗГИСМ + + + КиЗГИСМВид + КиЗГИСМВид + + + КиЗГИСМGTIN + КиЗГИСМGTIN + + + КиЗГИСМРазмер + КиЗГИСМРазмер + + + ПодконтрольнаяПродукцияВЕТИС + ПодконтрольнаяПродукцияВЕТИС + + + АлкогольнаяПродукцияВоВскрытойТаре + АлкогольнаяПродукцияВоВскрытойТаре + + + КодРаздел7ДекларацииНДС + КодРаздел7ДекларацииНДС + + + ОблагаетсяНДСУПокупателя + ОблагаетсяНДСУПокупателя + + + СтавкаНДС + СтавкаНДС + + + КодОКВЭД2 + КодОКВЭД2 + + + КодОКПД2 + КодОКПД2 + + + НаименованиеВидаНоменклатурнойКлассификации + НаименованиеВидаНоменклатурнойКлассификации + + + ЕдиницаИзмеренияТНВЭД + ЕдиницаИзмеренияТНВЭД + + + СтранаПроисхождения + СтранаПроисхождения + + + ПрослеживаемыйТовар + ПрослеживаемыйТовар + + + КодТРУ + КодТРУ + + + НаименованиеЯзык1 + НаименованиеЯзык1 + + + НаименованиеЯзык2 + НаименованиеЯзык2 + + + ДополнительныеРеквизиты + ДополнительныеРеквизиты + + + ДрагоценныеМатериалы + ДрагоценныеМатериалы + + + Представления + Представления + + + Предопределенный + Предопределенный + + + ИмяПредопределенныхДанных + ИмяПредопределенныхДанных + + + Ссылка + Ссылка + + + Код + Код + + + Наименование + Наименование + + + ВидНоменклатуры + ВидНоменклатуры + + + ЕдиницаИзмерения + ЕдиницаИзмерения + + + Родитель + Родитель + + + ИндексКартинки + ИндексКартинки + + + ru + Индекс картинки + + + + + ПометкаУдаления + ПометкаУдаления + + + ЭтоГруппа + ЭтоГруппа + + + НоменклатураРаботаСНоменклатурой + НоменклатураРаботаСНоменклатурой + + + ru + Номенклатура работа с номенклатурой + + + + + КодСтатусаСопоставленияРаботаСНоменклатурой + КодСтатусаСопоставленияРаботаСНоменклатурой + + + ru + Код статуса сопоставления работа с номенклатурой + + + + + ИдентификаторНоменклатурыРаботаСНоменклатурой + ИдентификаторНоменклатурыРаботаСНоменклатурой + + + ru + Идентификатор номенклатуры работа с номенклатурой + + + + + КартинкаРежимаОбновленияРаботаСНоменклатурой + КартинкаРежимаОбновленияРаботаСНоменклатурой + + + ru + Картинка режима обновления работа с номенклатурой + + + + + УдалитьПодакцизныйТовар + УдалитьПодакцизныйТовар + + + КодПоКВПД + КодПоКВПД + + + СегментНоменклатуры + + + ru + Сегмент номенклатуры + + + + cfg:CatalogRef.СегментыНоменклатуры + + + false + + + ПустаяХарактеристика + + + ru + Пустая характеристика + + + + d014b9a9-c7bf-49d6-b90c-eff148b1ec08 + + + false + + + Сопоставление + + + ru + Сопоставление + + + + cfg:EnumRef.РежимыЗагрузкиХарактеристикРаботаСНоменклатурой + + + false + + + Сопоставлено + + + ru + Сопоставлено + + + + cfg:EnumRef.СтатусыСопоставленияРаботаСНоменклатурой + + + false + + + НеСопоставлено + + + ru + Не сопоставлено + + + + cfg:EnumRef.СтатусыСопоставленияРаботаСНоменклатурой + + + false + + + СтатусыНайдено + + + ru + Статусы найдено + + + + cfg:EnumRef.СтатусыСопоставленияРаботаСНоменклатурой + + false + true + + + СтрокаНайдено + + + ru + Строка найдено + + + + xs:string + + 256 + Variable + + + + false + + + СтрокаНайденыВарианты + + + ru + Строка найдены варианты + + + + xs:string + + 256 + Variable + + + + false + + + СтрокаСопоставить + + + ru + Строка сопоставить + + + + xs:string + + 256 + Variable + + + + false + + Catalog.Номенклатура + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Виды номенклатуры</v8:content> + </v8:item> + + + cfg:DynamicList + + + ВидыНоменклатуры.Ссылка + ВидыНоменклатуры.ЭтоГруппа + + + true + true + ВЫБРАТЬ + СправочникВидыНоменклатуры.Ссылка, + СправочникВидыНоменклатуры.ЭтоГруппа, + СправочникВидыНоменклатуры.Наименование +ИЗ + Справочник.ВидыНоменклатуры КАК СправочникВидыНоменклатуры + + ХарактеристикаМногооборотнаяТара + ХарактеристикаМногооборотнаяТара + + + Родитель + Родитель + + + НаборСвойствХарактеристик + НаборСвойствХарактеристик + + + ВладелецТоварныхКатегорий + ВладелецТоварныхКатегорий + + + АлкогольнаяПродукция + АлкогольнаяПродукция + + + ШаблонРабочегоНаименованияСерии + ШаблонРабочегоНаименованияСерии + + + ИспользоватьСрокГодностиСерии + ИспользоватьСрокГодностиСерии + + + ЕдиницаДляОтчетов + ЕдиницаДляОтчетов + + + ВариантОформленияПродажи + ВариантОформленияПродажи + + + ШаблонЭтикетки + ШаблонЭтикетки + + + ВестиУчетСертификатовНоменклатуры + ВестиУчетСертификатовНоменклатуры + + + ВариантПредставленияНабораВПечатныхФормах + ВариантПредставленияНабораВПечатныхФормах + + + ЗапретРедактированияНаименованияДляПечатиХарактеристики + ЗапретРедактированияНаименованияДляПечатиХарактеристики + + + ВариантРасчетаЦеныНабора + ВариантРасчетаЦеныНабора + + + ВладелецСерий + ВладелецСерий + + + ИспользованиеХарактеристик + ИспользованиеХарактеристик + + + РеквизитыБыстрогоОтбораХарактеристик + РеквизитыБыстрогоОтбораХарактеристик + + + ВидАлкогольнойПродукции + ВидАлкогольнойПродукции + + + РеквизитыДляКонтроляХарактеристик + РеквизитыДляКонтроляХарактеристик + + + ВестиУчетПоГТД + ВестиУчетПоГТД + + + ГруппаДоступа + ГруппаДоступа + + + ВладелецХарактеристик + ВладелецХарактеристик + + + ГруппаАналитическогоУчета + ГруппаАналитическогоУчета + + + ОсобенностьУчета + ОсобенностьУчета + + + ТипНоменклатуры + ТипНоменклатуры + + + КонтролироватьДублиНоменклатуры + КонтролироватьДублиНоменклатуры + + + ГруппаФинансовогоУчета + ГруппаФинансовогоУчета + + + ЕдиницаИзмерения + ЕдиницаИзмерения + + + ЕдиницаИзмеренияСрокаГодности + ЕдиницаИзмеренияСрокаГодности + + + КодТНВЭД + КодТНВЭД + + + ЗапретРедактированияНаименованияДляПечатиНоменклатуры + ЗапретРедактированияНаименованияДляПечатиНоменклатуры + + + ЦеноваяГруппа + ЦеноваяГруппа + + + КодОКП + КодОКП + + + ЗапретРедактированияРабочегоНаименованияНоменклатуры + ЗапретРедактированияРабочегоНаименованияНоменклатуры + + + ЗапретРедактированияРабочегоНаименованияХарактеристики + ЗапретРедактированияРабочегоНаименованияХарактеристики + + + ИмпортнаяАлкогольнаяПродукция + ИмпортнаяАлкогольнаяПродукция + + + СезоннаяГруппа + СезоннаяГруппа + + + ИспользоватьИндивидуальноеНаименованиеПриПечати + ИспользоватьИндивидуальноеНаименованиеПриПечати + + + ИспользоватьКоличествоСерии + ИспользоватьКоличествоСерии + + + ИспользоватьУпаковки + ИспользоватьУпаковки + + + ИспользоватьНомерСерии + ИспользоватьНомерСерии + + + ПолитикаУчетаСерий + ПолитикаУчетаСерий + + + НастройкаИспользованияСерий + НастройкаИспользованияСерий + + + ИспользоватьСерии + ИспользоватьСерии + + + КодОКВЭД2 + КодОКВЭД2 + + + СтавкаНДС + СтавкаНДС + + + ИспользоватьХарактеристики + ИспользоватьХарактеристики + + + ШаблонРабочегоНаименованияНоменклатуры + ШаблонРабочегоНаименованияНоменклатуры + + + НаборУпаковок + НаборУпаковок + + + КонтролироватьДублиХарактеристик + КонтролироватьДублиХарактеристик + + + КоэффициентЕдиницыДляОтчетов + КоэффициентЕдиницыДляОтчетов + + + НаборСвойств + НаборСвойств + + + НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + НастройкиСерийБерутсяИзДругогоВидаНоменклатуры + + + НаборСвойствСерий + НаборСвойствСерий + + + НаименованиеДляПечати + НаименованиеДляПечати + + + НоменклатураМногооборотнаяТара + НоменклатураМногооборотнаяТара + + + ОбособленнаяЗакупкаПродажа + ОбособленнаяЗакупкаПродажа + + + Описание + Описание + + + ПоставляетсяВМногооборотнойТаре + ПоставляетсяВМногооборотнойТаре + + + СхемаОбеспечения + СхемаОбеспечения + + + ПолитикиУчетаСерий + ПолитикиУчетаСерий + + + СкладскаяГруппа + СкладскаяГруппа + + + СодержитДрагоценныеМатериалы + СодержитДрагоценныеМатериалы + + + ШаблонНаименованияДляПечатиНоменклатуры + ШаблонНаименованияДляПечатиНоменклатуры + + + ТочностьУказанияСрокаГодностиСерии + ТочностьУказанияСрокаГодностиСерии + + + КодОКВЭД + КодОКВЭД + + + ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры + ТоварныеКатегорииОбщиеСДругимВидомНоменклатуры + + + ШаблонНаименованияДляПечатиХарактеристики + ШаблонНаименованияДляПечатиХарактеристики + + + ШаблонРабочегоНаименованияХарактеристики + ШаблонРабочегоНаименованияХарактеристики + + + ШаблонЦенника + ШаблонЦенника + + + ШаблонЭтикеткиСерии + ШаблонЭтикеткиСерии + + + СпособОбеспеченияПотребностей + СпособОбеспеченияПотребностей + + + Крепость + Крепость + + + ИспользоватьЗаписьСкладскогоЖурналаВЕТИССерии + ИспользоватьЗаписьСкладскогоЖурналаВЕТИССерии + + + ПродукцияМаркируемаяДляГИСМ + ПродукцияМаркируемаяДляГИСМ + + + КиЗГИСМ + КиЗГИСМ + + + ИспользоватьПроизводителяЕГАИССерии + ИспользоватьПроизводителяЕГАИССерии + + + ИспользоватьRFIDМеткиСерии + ИспользоватьRFIDМеткиСерии + + + ИспользоватьНомерКИЗГИСМСерии + ИспользоватьНомерКИЗГИСМСерии + + + ПодконтрольнаяПродукцияВЕТИС + ПодконтрольнаяПродукцияВЕТИС + + + КодРаздел7ДекларацииНДС + КодРаздел7ДекларацииНДС + + + АвтоматическиГенерироватьСерии + АвтоматическиГенерироватьСерии + + + ИмяПредопределенныхДанных + ИмяПредопределенныхДанных + + + ИспользоватьДатуПроизводстваСерии + ИспользоватьДатуПроизводстваСерии + + + ИспользоватьСправку2ЕГАИССерии + ИспользоватьСправку2ЕГАИССерии + + + ИспользоватьПроизводителяВЕТИССерии + ИспользоватьПроизводителяВЕТИССерии + + + ИспользоватьИдентификаторПартииВЕТИССерии + ИспользоватьИдентификаторПартииВЕТИССерии + + + ОблагаетсяНДСУПокупателя + ОблагаетсяНДСУПокупателя + + + ИспользоватьМРЦМОТПСерии + ИспользоватьМРЦМОТПСерии + + + КодОКПД2 + КодОКПД2 + + + НастройкиКлючаЦенПоНоменклатуре + НастройкиКлючаЦенПоНоменклатуре + + + НастройкиКлючаЦенПоХарактеристике + НастройкиКлючаЦенПоХарактеристике + + + НастройкиКлючаЦенПоСерии + НастройкиКлючаЦенПоСерии + + + НастройкиКлючаЦенПоУпаковке + НастройкиКлючаЦенПоУпаковке + + + ШаблонНаименованияДляПечатиКлючаЦен + ШаблонНаименованияДляПечатиКлючаЦен + + + ШаблонРабочегоНаименованияКлючаЦен + ШаблонРабочегоНаименованияКлючаЦен + + + РазрезыЦенообразования + РазрезыЦенообразования + + + ШаблонНаименованияДляПечатиНоменклатурыИсторияПереходаНаНовыеФормулы + ШаблонНаименованияДляПечатиНоменклатурыИсторияПереходаНаНовыеФормулы + + + ШаблонНаименованияДляПечатиХарактеристикиИсторияПереходаНаНовыеФормулы + ШаблонНаименованияДляПечатиХарактеристикиИсторияПереходаНаНовыеФормулы + + + ШаблонРабочегоНаименованияНоменклатурыИсторияПереходаНаНовыеФормулы + ШаблонРабочегоНаименованияНоменклатурыИсторияПереходаНаНовыеФормулы + + + ШаблонРабочегоНаименованияСерииИсторияПереходаНаНовыеФормулы + ШаблонРабочегоНаименованияСерииИсторияПереходаНаНовыеФормулы + + + ШаблонРабочегоНаименованияХарактеристикиИсторияПереходаНаНовыеФормулы + ШаблонРабочегоНаименованияХарактеристикиИсторияПереходаНаНовыеФормулы + + + РеквизитыДляКонтроляНоменклатуры + РеквизитыДляКонтроляНоменклатуры + + + РеквизитыДляКонтроляСерий + РеквизитыДляКонтроляСерий + + + РеквизитыБыстрогоОтбораНоменклатуры + РеквизитыБыстрогоОтбораНоменклатуры + + + РеквизитыХарактеристикДляКлючаЦен + РеквизитыХарактеристикДляКлючаЦен + + + РеквизитыСерийДляКлючаЦен + РеквизитыСерийДляКлючаЦен + + + Предопределенный + Предопределенный + + + Ссылка + Ссылка + + + ЭтоГруппа + ЭтоГруппа + + + Наименование + Наименование + + + ПометкаУдаления + ПометкаУдаления + + + УдалитьПодакцизныйТовар + УдалитьПодакцизныйТовар + + + ЗапрещенаПродажаЧерезПатент + ЗапрещенаПродажаЧерезПатент + + Catalog.ВидыНоменклатуры + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Поиск</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Иерархия номенклатуры</v8:content> + </v8:item> + + + cfg:DynamicList + + + ИерархияНоменклатуры.Parent + ИерархияНоменклатуры.Ref + + + false + true + Catalog.Номенклатура + + + + ЭтоГруппа + Equal + true + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Дерево отборов</v8:content> + </v8:item> + + + v8:ValueTree + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отбор</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Имя реквизита</v8:content> + </v8:item> + + + xs:string + + 100 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Значение отбора</v8:content> + </v8:item> + + + v8:ValueListType + xs:boolean + xs:string + xs:dateTime + xs:decimal + cfg:AnyIBRef + + 0 + 0 + Any + + + 1000 + Variable + + + DateTime + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Представление</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Это доп реквизит</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Фиксированное значение</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отбор доступен</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отбор установлен</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интервал от</v8:content> + </v8:item> + + + xs:dateTime + xs:decimal + + 15 + 3 + Any + + + Date + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интервал до</v8:content> + </v8:item> + + + xs:dateTime + xs:decimal + + 15 + 3 + Any + + + Date + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Представление отбора</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отбор характеристик</v8:content> + </v8:item> + + + xs:boolean + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать полнотекстовый поиск</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Индекс полнотекстового поиска актуален</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сегмент</v8:content> + </v8:item> + + + cfg:CatalogRef.СегментыНоменклатуры + + + FunctionalOption.ИспользоватьСегментыНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вариант навигации</v8:content> + </v8:item> + + + cfg:EnumRef.ВариантыНавигацииВФормахНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Фильтр по</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать подключаемое оборудование</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Поиск номенклатуры не удачный</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>По точному соответствию</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Информационная база файловая</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Код ошибки поиска</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Текущая иерархия номенклатуры</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Код формы</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список качества</v8:content> + </v8:item> + + + v8:ValueListType + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Товар</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Таблица параметров отбора</v8:content> + </v8:item> + + + v8:ValueTable + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Имя реквизита</v8:content> + </v8:item> + + + xs:string + + 100 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Значение отбора</v8:content> + </v8:item> + + + v8:ValueListType + xs:boolean + xs:string + xs:dateTime + xs:decimal + cfg:AnyIBRef + + 0 + 0 + Any + + + 1000 + Variable + + + DateTime + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Представление</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Фиксированное значение</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интервал числа от</v8:content> + </v8:item> + + + xs:decimal + + 15 + 3 + Any + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интервал числа до</v8:content> + </v8:item> + + + xs:decimal + + 15 + 3 + Any + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интервал даты от</v8:content> + </v8:item> + + + xs:dateTime + + Date + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интервал даты до</v8:content> + </v8:item> + + + xs:dateTime + + Date + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интервал числа</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интервал даты</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Представление отбора</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отбор</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отбор характеристик</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Это доп реквизит</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интервал от</v8:content> + </v8:item> + + + xs:dateTime + xs:decimal + + 15 + 3 + Any + + + Date + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интервал до</v8:content> + </v8:item> + + + xs:dateTime + xs:decimal + + 15 + 3 + Any + + + Date + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Поддерживаемые типы подключаемого оборудования</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать характеристики номенклатуры</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вариант поиска товаров</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать стандартный поиск при подборе товаров</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Есть фильтр по поиску номенклатуры</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Это базовая</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Надпись вариант навигации</v8:content> + </v8:item> + + + v8ui:FormattedString + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Есть право настройки видов номенклатуры</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Цвет текста формы</v8:content> + </v8:item> + + + v8ui:Color + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Параметры подключаемых команд</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура родитель при открытии</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура элемент при открытии</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид номенклатуры при открытии</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыНоменклатуры + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Изменить выделенные</v8:content> + </v8:item> + + + + ru + Изменить выделенные расширенный поиск + + + ИзменитьВыделенныеРасширенныйПоиск + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Найти</v8:content> + </v8:item> + + + + ru + Найти + + + + StdPicture.Find + true + + Поиск + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Поиск по штрихкоду</v8:content> + </v8:item> + + + + ru + Поиск по штрихкоду + + + F7 + + CommonPicture.НовыйПоШтрихкоду + false + + ПоискПоШтрихкодуВыполнить + Picture + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Изменить выделенные</v8:content> + </v8:item> + + + + ru + Изменить выделенные группы + + + ИзменитьВыделенныеГруппы + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура с аналогичными свойствами</v8:content> + </v8:item> + + + + ru + Номенклатура с аналогичными свойствами + + + + CommonPicture.ФильтрПоВидамИСвойствамНоменклатуры + false + + НоменклатураСАналогичнымиСвойствами + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Товары другого качества</v8:content> + </v8:item> + + + + ru + Товары другого качества + + + + CommonPicture.ФильтрПоТоварамДругогоКачества + false + + ТоварыДругогоКачества + + FunctionalOption.ИспользоватьКачествоТоваров + + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сбросить отборы по свойствам</v8:content> + </v8:item> + + + + ru + Сбросить всё + + + + StdPicture.UncheckAll + true + + СброситьОтборыПоСвойствам + Picture + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настроить поиск...</v8:content> + </v8:item> + + + + ru + Настроить поиск + + + НастроитьПоиск + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Изменить выделенные</v8:content> + </v8:item> + + + + ru + Изменить выделенные стандартный поиск + + + ИзменитьВыделенныеСтандартныйПоиск + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Перейти к строке поиска</v8:content> + </v8:item> + + + + ru + Перейти к строке поиска + + + Alt+1 + УстановитьТекущийЭлементСтрокаПоиска + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Изменить вариант навигации</v8:content> + </v8:item> + + + + ru + Изменить вариант навигации + + + ИзменитьВариантНавигации + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отметить дублями выделенные</v8:content> + </v8:item> + + ОтметитьДублямиВыделенныеСтандартныйПоиск + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отметить дублями выделенные</v8:content> + </v8:item> + + ОтметитьДублямиВыделенныеРасширенныйПоиск + + + + + + cfg:CatalogRef.Номенклатура + + + +
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаСписка/Ext/Form/Module.bsl b/src/Catalogs/Номенклатура/Forms/ФормаСписка/Ext/Form/Module.bsl new file mode 100644 index 0000000..701240f --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаСписка/Ext/Form/Module.bsl @@ -0,0 +1,1003 @@ +#Область ОписаниеПеременных + +&НаКлиенте +Перем КэшированныеЗначения; + +#КонецОбласти + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + УстановитьУсловноеОформление(); + + // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест". + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + КодФормы = "Справочник_Номенклатура_ФормаСписка"; + + ПодборТоваровСервер.ПриСозданииНаСервере(ЭтаФорма); + + ДоступенВводБезКонтроля = Справочники.Номенклатура.ДоступенВводБезКонтроля(); + + ОбщегоНазначенияУТ.НастроитьПодключаемоеОборудование(ЭтаФорма); + + ЕстьПравоРедактирования = ПравоДоступа("Редактирование", Метаданные.Справочники.Номенклатура); + + Элементы.КоманднаяПанельСписокСтандартныйПоискНоменклатураФормаИзменитьВыделенные.Видимость = ЕстьПравоРедактирования; + Элементы.КоманднаяПанельСписокРасширенныйПоискНоменклатураФормаИзменитьВыделенные.Видимость = ЕстьПравоРедактирования; + + Если Не ПравоДоступа("Чтение", Метаданные.РегистрыСведений.ШтрихкодыНоменклатуры) Тогда + Элементы.КоманднаяПанельСписокРасширенныйПоискНоменклатураФормаПоискПоШтрихкоду.Видимость = Ложь; + Элементы.КоманднаяПанельСписокСтандартныйПоискНоменклатураФормаПоискПоШтрихкоду.Видимость = Ложь; + КонецЕсли; + + Если ЗначениеЗаполнено(Параметры.НоменклатураФильтраПоСвойствам) Тогда + ПодборТоваровСервер.ОтфильтроватьПоАналогичнымСвойствам(ЭтаФорма, Параметры.НоменклатураФильтраПоСвойствам); + КонецЕсли; + + ПанельКомандПечати = ?(Элементы.СтраницыСписков.ТекущаяСтраница = Элементы.СтраницаРасширенныйПоискНоменклатура, + Элементы.ПодменюПечатьСписокРасширенный, + Элементы.ПодменюПечатьСписокСтандартный); + + // СтандартныеПодсистемы.ПодключаемыеКоманды + ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения(); + ПараметрыРазмещения.КоманднаяПанель = ?(Элементы.СтраницыСписков.ТекущаяСтраница = Элементы.СтраницаРасширенныйПоискНоменклатура, + Элементы.КоманднаяПанельСписокРасширенныйПоискНоменклатура, + Элементы.СписокСтандартныйПоискНоменклатураКоманднаяПанель); + + ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения); + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + + // ИнтеграцияС1СДокументооборотом + ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект, ПанельКомандПечати); + // Конец ИнтеграцияС1СДокументооборотом + + Если ПраваПользователяПовтИсп.ЭтоПартнер() Тогда + Элементы.КоманднаяПанельСписокРасширенныйПоискНоменклатураФормаПоискПоШтрихкоду.Видимость = Ложь; + Элементы.КоманднаяПанельСписокСтандартныйПоискНоменклатураФормаПоискПоШтрихкоду.Видимость = Ложь; + КонецЕсли; + + Элементы.КоманднаяПанельСписокРасширенныйПоискНоменклатураФормаИзменитьВыделенные.Видимость = ЕстьПравоРедактирования; + Элементы.СписокРасширенныйПоискНоменклатураКонтекстноеМенюИзменитьВыделенные.Видимость = ЕстьПравоРедактирования; + Элементы.КоманднаяПанельСписокСтандартныйПоискНоменклатураФормаИзменитьВыделенные.Видимость = ЕстьПравоРедактирования; + Элементы.СписокСтандартныйПоискНоменклатураКонтекстноеМенюИзменитьВыделенные.Видимость = ЕстьПравоРедактирования; + Элементы.ИерархияНоменклатурыКонтекстноеМенюИзменитьВыделенные.Видимость = ЕстьПравоРедактирования; + + Параметры.Свойство("ТекущаяСтрока", НоменклатураЭлементПриОткрытии); + + Если ЗначениеЗаполнено(НоменклатураЭлементПриОткрытии) + И ИспользоватьФильтры Тогда + Если ВариантНавигации = ПредопределенноеЗначение("Перечисление.ВариантыНавигацииВФормахНоменклатуры.ПоИерархии") Тогда + НоменклатураРодительПриОткрытии = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(НоменклатураЭлементПриОткрытии, "Родитель"); + ИначеЕсли ВариантНавигации = ПредопределенноеЗначение("Перечисление.ВариантыНавигацииВФормахНоменклатуры.ПоСвойствам") + Или ВариантНавигации = ПредопределенноеЗначение("Перечисление.ВариантыНавигацииВФормахНоменклатуры.ПоВидамИСвойствам") + Или ВариантНавигации = ПредопределенноеЗначение("Перечисление.ВариантыНавигацииВФормахНоменклатуры.ПоВидам") Тогда + ВидНоменклатуры = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(НоменклатураЭлементПриОткрытии, "ВидНоменклатуры"); + ВидНоменклатурыПриИзмененииНаСервере(); + ВидНоменклатурыПриОткрытии = ВидНоменклатуры; + КонецЕсли; + ИначеЕсли Параметры.Свойство("ОтборПоВидуНоменклатуры") Тогда + ВидНоменклатурыПриОткрытии = ВидНоменклатуры; + КонецЕсли; + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + + Если РаботаСНоменклатурой.ПравоИзмененияДанных() Тогда + + СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка(); + СвойстваСписка.ОсновнаяТаблица = СписокНоменклатура.ОсновнаяТаблица; + СвойстваСписка.ДинамическоеСчитываниеДанных = Истина; + РаботаСНоменклатуройУТ.ПолучитьДополненныйЗапросДинамическогоСписка(СвойстваСписка.ТекстЗапроса); + ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.СписокРасширенныйПоискНоменклатура, СвойстваСписка); + ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.СписокСтандартныйПоискНоменклатура, СвойстваСписка); + + КП = ?(Элементы.СтраницыСписков.ТекущаяСтраница = Элементы.СтраницаРасширенныйПоискНоменклатура, + Элементы.ГруппаКомандыСписокРасширенныйПоискНоменклатура, Элементы.СписокСтандартныйПоискНоменклатура.КоманднаяПанель); + ДС = ?(Элементы.СтраницыСписков.ТекущаяСтраница = Элементы.СтраницаРасширенныйПоискНоменклатура, + Элементы.СписокРасширенныйПоискНоменклатура, Элементы.СписокСтандартныйПоискНоменклатура); + + РаботаСНоменклатурой.ПриСозданииНаСервереФормаСпискаНоменклатуры(ЭтотОбъект, КП, ДС, Истина); + + КонецЕсли; + + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + + СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); + + // СтандартныеПодсистемы.ВерсионированиеОбъектов + ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект); + // Конец СтандартныеПодсистемы.ВерсионированиеОбъектов + + // СтандартныеПодсистемы.БазоваяФункциональность + МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, ,"СписокНоменклатура"); + // Конец СтандартныеПодсистемы.БазоваяФункциональность +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + // Установим позиционирование на выбранный элемент номенклатуры в форме, вызвавшей открытие этой формы выбора. + Если ЗначениеЗаполнено(НоменклатураЭлементПриОткрытии) Тогда + Если ВариантНавигации = ПредопределенноеЗначение("Перечисление.ВариантыНавигацииВФормахНоменклатуры.ПоИерархии") Тогда + Элементы.ИерархияНоменклатуры.ТекущаяСтрока = НоменклатураРодительПриОткрытии; + ПодборТоваровКлиент.ОбработчикАктивизацииСтрокиИерархииНоменклатуры(ЭтаФорма); + КонецЕсли; + ТаблицаФормыНоменклатура = Элементы[ПодборТоваровКлиентСервер.ИмяСпискаНоменклатурыПоВариантуПоиска(ЭтаФорма)]; // ТаблицаФормы + ТаблицаФормыНоменклатура.ТекущаяСтрока = НоменклатураЭлементПриОткрытии; + Элементы.ВидыНоменклатуры.ТекущаяСтрока = ВидНоменклатурыПриОткрытии; + ИначеЕсли ЗначениеЗаполнено(ВидНоменклатурыПриОткрытии) Тогда + Элементы.ВидыНоменклатуры.ТекущаяСтрока = ВидНоменклатурыПриОткрытии; + КонецЕсли; + + МенеджерОборудованияКлиент.НачатьПодключениеОборудованиеПриОткрытииФормы(Неопределено, ЭтаФорма, "СканерШтрихкода"); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриЗакрытии(ЗавершениеРаботы) + + МенеджерОборудованияКлиент.НачатьОтключениеОборудованиеПриЗакрытииФормы(Неопределено, ЭтаФорма); + + Если Не ЗавершениеРаботы Тогда + СохранитьНастройкиФормыНаСервере(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + // ПодключаемоеОборудование + Если ВводДоступен() + И Источник = "ПодключаемоеОборудование" Тогда + + Если ИмяСобытия = "ScanData" Тогда + ОбработатьШтрихкоды(МенеджерОборудованияУТКлиент.ПреобразоватьДанныеСоСканераВСтруктуру(Параметр)); + КонецЕсли; + + КонецЕсли; + // Конец ПодключаемоеОборудование + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + Если ИмяСобытия = РаботаСНоменклатуройКлиент.ОписаниеОповещенийПодсистемы().ЗагрузкаНоменклатуры Тогда + Если Параметр.СозданныеОбъекты.Количество() > 0 Тогда + + ТекущийСписок = ?(Элементы.СтраницыСписков.ТекущаяСтраница = Элементы.СтраницаРасширенныйПоискНоменклатура, + Элементы.СписокРасширенныйПоискНоменклатура, Элементы.СписокСтандартныйПоискНоменклатура); + + ТекущийСписок.ТекущаяСтрока = Параметр.СозданныеОбъекты[0].Номенклатура; + + КонецЕсли; + ИначеЕсли ИмяСобытия = РаботаСНоменклатуройКлиент.ОписаниеОповещенийПодсистемы().СопоставлениеНоменклатуры Тогда + + ТекущийСписок = ?(Элементы.СтраницыСписков.ТекущаяСтраница = Элементы.СтраницаРасширенныйПоискНоменклатура, + Элементы.СписокРасширенныйПоискНоменклатура, Элементы.СписокСтандартныйПоискНоменклатура); + + ТекущийСписок.Обновить(); + + КонецЕсли; + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + + Если ИмяСобытия = "Запись_Номенклатура" Тогда + Если ЗначениеЗаполнено(СтрокаПоискаНоменклатура) Тогда + ВыполнитьПоискНоменклатуры(); + КонецЕсли; + Если ЗначениеЗаполнено(Источник) Тогда + ТаблицаФормыНоменклатура = Элементы[ПодборТоваровКлиентСервер.ИмяСпискаНоменклатурыПоВариантуПоиска(ЭтотОбъект)]; // ТаблицаФормы + ТаблицаФормыНоменклатура.ТекущаяСтрока = Источник; + КонецЕсли; + КонецЕсли; + + Если ИмяСобытия = "ФильтрПоАналогичнымСвойствам_Номенклатура" Тогда + Если ЗначениеЗаполнено(Параметр) Тогда + ОтфильтроватьПоАналогичнымСвойствам(Параметр); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +#Область ОбработчикиСобытийСтрокПоиска + +&НаКлиенте +Процедура СтрокаПоискаНоменклатураПриИзменении(Элемент) + + ВыполнитьПоискНоменклатуры(); + +КонецПроцедуры + +&НаКлиенте +Процедура СтрокаПоискаНоменклатураОчистка(Элемент, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + СтрокаПоискаНоменклатура = ""; + + СнятьОтборПоСтрокеПоискаНоменклатурыНаСервере(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийФлаговТочногоСоответствия + +&НаКлиенте +Процедура НайтиНоменклатуруПоТочномуСоответствиюПриИзменении(Элемент) + + ВыполнитьПоискНоменклатуры(); + +КонецПроцедуры + +#КонецОбласти + +#Область Прочее + +&НаКлиенте +Процедура СегментНоменклатурыПриИзменении(Элемент) + + СегментНоменклатурыПриИзмененииНаСервере(); + + Если ЗначениеЗаполнено(СтрокаПоискаНоменклатура) Тогда + ВыполнитьПоискНоменклатуры(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВидНоменклатурыПриИзменении(Элемент) + + ВидНоменклатурыПриИзмененииНаСервере(); + + Если ЗначениеЗаполнено(СтрокаПоискаНоменклатура) Тогда + ВыполнитьПоискНоменклатуры(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИспользоватьФильтрыПриИзменении(Элемент) + + ИспользоватьФильтрыПриИзмененииНаСервере(); + + Если ЗначениеЗаполнено(СтрокаПоискаНоменклатура) Тогда + ВыполнитьПоискНоменклатуры(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура НоменклатураИсходногоКачестваПриИзменении(Элемент) + + НоменклатураИсходногоКачестваПриИзмененииНаСервере(); + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок + +&НаКлиенте +Процедура СписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) + + Если Не Копирование И Не Группа Тогда + + Отказ = Истина; + + ПараметрыСозданияВФорму = Новый Структура("Родитель, ВидНоменклатуры, АдресТаблицыПараметров, АдресТаблицыСопоставления"); + + Если ИспользоватьФильтры Тогда + + Если ВариантНавигации = ПредопределенноеЗначение("Перечисление.ВариантыНавигацииВФормахНоменклатуры.ПоВидамИСвойствам") + Или ВариантНавигации = ПредопределенноеЗначение("Перечисление.ВариантыНавигацииВФормахНоменклатуры.ПоСвойствам") Тогда + + Если ЗначениеЗаполнено(ВидНоменклатуры) Тогда + + СтруктураАдресовТаблиц = АдресТаблицПараметровДереваОтборовНаСервере(); + + ПараметрыСозданияВФорму.АдресТаблицыПараметров = СтруктураАдресовТаблиц.АдресТаблицыПараметров; + ПараметрыСозданияВФорму.АдресТаблицыСопоставления = СтруктураАдресовТаблиц.АдресТаблицыСопоставления; + + ПараметрыСозданияВФорму.ВидНоменклатуры = ВидНоменклатуры; + + КонецЕсли; + ИначеЕсли ВариантНавигации = ПредопределенноеЗначение("Перечисление.ВариантыНавигацииВФормахНоменклатуры.ПоВидам") Тогда + Если ЗначениеЗаполнено(ВидНоменклатуры) Тогда + ПараметрыСозданияВФорму.ВидНоменклатуры = ВидНоменклатуры; + КонецЕсли; + Иначе + + ПараметрыСозданияВФорму.Родитель = ?(Элементы.ИерархияНоменклатуры.ТекущиеДанные = Неопределено, ПредопределенноеЗначение("Справочник.Номенклатура.ПустаяСсылка"), + Элементы.ИерархияНоменклатуры.ТекущиеДанные.Ссылка); + + КонецЕсли; + + КонецЕсли; + + ОткрытьФорму("Справочник.Номенклатура.ФормаОбъекта", Новый Структура("ДополнительныеПараметры", ПараметрыСозданияВФорму), ЭтаФорма); + + ИначеЕсли Группа Тогда + + ТекущиеДанные = Элементы.ИерархияНоменклатуры.ТекущиеДанные; + + Если ТекущиеДанные <> Неопределено Тогда + + Отказ = Истина; + + ПараметрыСозданияВФорму = Новый Структура("Родитель", ТекущиеДанные.Ссылка); + ОткрытьФорму("Справочник.Номенклатура.ФормаГруппы", Новый Структура("ДополнительныеПараметры", ПараметрыСозданияВФорму), ЭтаФорма); + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СписокПриАктивизацииСтроки(Элемент) + + ПодборТоваровКлиент.ПриАктивизацииСтрокиСпискаНоменклатуры(ЭтаФорма); + + // СтандартныеПодсистемы.ПодключаемыеКоманды + ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект); + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыДеревоОтборов + +&НаКлиенте +Процедура ДеревоОтборовВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ПодборТоваровКлиент.ДеревоОтборовВыбор(ЭтаФорма, Новый ОписаниеОповещения("ДеревоОтборовПриИзмененииЗавершение", ЭтотОбъект)); + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоОтборовПриИзмененииЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Если Результат = Неопределено Тогда + Возврат; + ИначеЕсли Результат Тогда + ПодборТоваровКлиент.ДеревоОтборовПриИзмененииЗавершение(ЭтаФорма); + + ДеревоОтборовОтборПриИзмененииНаСервере(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ДеревоОтборовОтборПриИзменении(Элемент) + + ПодборТоваровКлиент.ДеревоОтборовОтборПриИзменении(ЭтаФорма, Новый ОписаниеОповещения("ДеревоОтборовПриИзмененииЗавершение", ЭтотОбъект)); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыВидыНоменклатуры + +&НаКлиенте +Процедура ВидыНоменклатурыПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле) + Если ТипЗнч(ПараметрыПеретаскивания.Значение) <> Тип("СправочникСсылка.ВидыНоменклатуры") Тогда + СтандартнаяОбработка = Ложь; + КонецЕсли; +КонецПроцедуры + +&НаКлиенте +Процедура ВидыНоменклатурыПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле) + Если ТипЗнч(ПараметрыПеретаскивания.Значение) <> Тип("СправочникСсылка.ВидыНоменклатуры") Тогда + СтандартнаяОбработка = Ложь; + ВидыНоменклатурыПеретаскиваниеНаСервере(ПараметрыПеретаскивания.Значение, СтандартнаяОбработка, Строка); + КонецЕсли; +КонецПроцедуры + +&НаСервере +Процедура ВидыНоменклатурыПеретаскиваниеНаСервере(МассивНоменклатур, СтандартнаяОбработка, ВидНоменклатуры) + + ОбновитьСписок = Ложь; + + Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВидНоменклатуры, "ЭтоГруппа") Тогда + СтандартнаяОбработка = Ложь; + Иначе + Для Каждого Номенклатура Из МассивНоменклатур Цикл + НоменклатураОбъект = Номенклатура.ПолучитьОбъект(); // СправочникОбъект.Номенклатура + Если НоменклатураОбъект.ВидНоменклатуры <> ВидНоменклатуры Тогда + НоменклатураОбъект.ВидНоменклатуры = ВидНоменклатуры; + НоменклатураОбъект.Записать(); + ОбновитьСписок = Истина; + КонецЕсли; + КонецЦикла; + КонецЕсли; + + Если ОбновитьСписок Тогда + ТаблицаФормыНоменклатура = Элементы[ПодборТоваровКлиентСервер.ИмяСпискаНоменклатурыПоВариантуПоиска(ЭтаФорма)]; // ТаблицаФормы + ТаблицаФормыНоменклатура.Обновить(); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыИерархияНоменклатуры + +&НаКлиенте +Процедура ИерархияНоменклатурыПриАктивизацииСтроки(Элемент) + + ПодборТоваровКлиент.ПриАктивизацииСтрокиИерархииНоменклатуры(ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ИерархияНоменклатурыПриАктивизацииСтрокиОбработчикОжидания() + + ПодборТоваровКлиент.ОбработчикАктивизацииСтрокиИерархииНоменклатуры(ЭтаФорма); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыСписокКачества + +&НаКлиенте +Процедура СписокКачестваПометкаПриИзменении(Элемент) + + СписокКачестваПометкаПриИзмененииНаСервере(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ИзменитьВыделенныеРасширенныйПоиск(Команда) + + ГрупповоеИзменениеОбъектовКлиент.ИзменитьВыделенные(Элементы.СписокРасширенныйПоискНоменклатура); + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьВыделенныеСтандартныйПоиск(Команда) + + ГрупповоеИзменениеОбъектовКлиент.ИзменитьВыделенные(Элементы.СписокСтандартныйПоискНоменклатура); + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьВыделенныеГруппы(Команда) + + ГрупповоеИзменениеОбъектовКлиент.ИзменитьВыделенные(Элементы.ИерархияНоменклатуры); + +КонецПроцедуры + +&НаКлиенте +Процедура Поиск(Команда) + + ВыполнитьПоискНоменклатуры(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПоискПоШтрихкодуВыполнить(Команда) + + ОчиститьСообщения(); + + Оповещение = Новый ОписаниеОповещения("ПоискПоШтрихкодуЗавершение", ЭтотОбъект); + ШтрихкодированиеНоменклатурыКлиент.ПоказатьВводШтрихкода(Оповещение); + +КонецПроцедуры + +&НаКлиенте +Процедура НоменклатураСАналогичнымиСвойствами(Команда) + + ОчиститьСообщения(); + + Если ПодборТоваровКлиент.ЕстьВыделенныеСтрокиВСпискеНоменклатуры(ЭтотОбъект) Тогда + НоменклатураСАналогичнымиСвойствамиНаСервере(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ТоварыДругогоКачества(Команда) + + Если ПодборТоваровКлиент.ЕстьВыделенныеСтрокиВСпискеНоменклатуры(ЭтотОбъект) Тогда + ТоварыДругогоКачестваНаСервере(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СброситьОтборыПоСвойствам(Команда) + + СброситьОтборыПоСвойствамНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура НастроитьПоиск(Команда) + + ПодборТоваровКлиент.НастроитьПоиск(ЭтаФорма); + +КонецПроцедуры + +// ИнтеграцияС1СДокументооборотом +&НаКлиенте +Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда) + + СписокКоманды = ?(Элементы.СтраницыСписков.ТекущаяСтраница = Элементы.СтраницаРасширенныйПоискНоменклатура, + Элементы.СписокРасширенныйПоискНоменклатура, + Элементы.СписокСтандартныйПоискНоменклатура); + + ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, СписокКоманды); + +КонецПроцедуры +// Конец ИнтеграцияС1СДокументооборотом + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда); + +КонецПроцедуры + +&НаСервере +Процедура ОтфильтроватьПоАналогичнымСвойствам(НоменклатураФильтраПоСвойствам) + ПодборТоваровСервер.ОтфильтроватьПоАналогичнымСвойствам(ЭтаФорма, НоменклатураФильтраПоСвойствам); +КонецПроцедуры + +&НаКлиенте +Процедура ОтметитьДублямиВыделенныеРасширенныйПоиск(Команда) + ПоискИЗаменаДублейНСИКлиент.ОтметитьДублямиВыделенные(Элементы.СписокРасширенныйПоискНоменклатура); +КонецПроцедуры + +&НаКлиенте +Процедура ОтметитьДублямиВыделенныеСтандартныйПоиск(Команда) + ПоискИЗаменаДублейНСИКлиент.ОтметитьДублямиВыделенные(Элементы.СписокСтандартныйПоискНоменклатура); +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура УстановитьУсловноеОформление() + + УсловноеОформление.Элементы.Очистить(); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СтрокаПоискаНоменклатура.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПоискНоменклатурыНеУдачный"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", ЦветаСтиля.ПолеСОшибкойФон); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ДеревоОтборовПредставлениеОтбора.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДеревоОтборов.ФиксированноеЗначение"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ГиперссылкаЦвет); + Элемент.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(WindowsШрифты.DefaultGUIFont, , , Ложь, Ложь, Истина, Ложь, )); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ДеревоОтборовПредставление.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДеревоОтборов.Отбор"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + Элемент.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(WindowsШрифты.DefaultGUIFont, , , Истина, Ложь, Ложь, Ложь, )); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ИерархияНоменклатуры.Имя); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ДеревоОтборов.Имя); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ВидыНоменклатуры.Имя); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СписокКачества.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИспользоватьФильтры"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Ложь; + + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", ЦветаСтиля.FormBackColor); + Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента); + + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ВидНоменклатуры.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИспользоватьФильтры"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВидНоменклатуры"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено; + Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина); + + // + +КонецПроцедуры + +#Область ШтрихкодыИТорговоеОборудование + +&НаКлиенте +Процедура ПоискПоШтрихкодуЗавершение(ДанныхШтрихкода, ДополнительныеПараметры) Экспорт + + ОбработатьШтрихкоды(ДанныхШтрихкода); + +КонецПроцедуры + +// МеханизмВнешнегоОборудования +&НаКлиенте +Процедура ОбработатьШтрихкоды(ДанныеШтрихкода) + + ПараметрыОбработки = ШтрихкодированиеНоменклатурыКлиент.ПараметрыОбработкиШтрихкодов(); + ПараметрыОбработки.Штрихкоды = ДанныеШтрихкода; + ПараметрыОбработки.БлокироватьДанныеФормы = Ложь; + ПараметрыОбработки.ДействияСНеизвестнымиШтрихкодами = "ТолькоЗарегистрировать"; + ПараметрыОбработки.ПереноситьВДокументУточненныеТовары = Ложь; + + Номенклатура = НоменклатураПоШтрихкоду(ПараметрыОбработки, КэшированныеЗначения); + + Если Номенклатура <> Неопределено Тогда + ТаблицаФормыНоменклатура = Элементы[ПодборТоваровКлиентСервер.ИмяСпискаНоменклатурыПоВариантуПоиска(ЭтотОбъект)]; // ТаблицаФормы + ТаблицаФормыНоменклатура.ТекущаяСтрока = Номенклатура; + + ПоказатьЗначение(, Номенклатура); + Иначе + ШтрихкодированиеНоменклатурыКлиент.ОбработатьНеизвестныеШтрихкоды(ПараметрыОбработки, КэшированныеЗначения, ЭтотОбъект); + КонецЕсли; + +КонецПроцедуры +// Конец МеханизмВнешнегоОборудования + +&НаСервереБезКонтекста +Функция НоменклатураПоШтрихкоду(ПараметрыОбработки, КэшированныеЗначения) + + Возврат ШтрихкодированиеНоменклатурыСервер.НоменклатураПоШтрихкоду(ПараметрыОбработки, КэшированныеЗначения); + +КонецФункции + +#КонецОбласти + +#Область Поиск + +&НаКлиенте +Процедура ВыполнитьПоискНоменклатуры() + + ПодборТоваровКлиент.ВыполнениеРасширенногоПоискаВозможно(ЭтаФорма, + Новый ОписаниеОповещения("ВыполнитьПоискНоменклатурыЗавершение", ЭтотОбъект)); + +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьПоискНоменклатурыЗавершение(Результат, ДополнительныеПараметры) Экспорт + + ВыполнитьПоискНоменклатурыНаСервере(); + ПодборТоваровКлиент.ПослеВыполненияПоискаНоменклатуры(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура ВыполнитьПоискНоменклатурыНаСервере() + + ПодборТоваровСервер.ВыполнитьПоискНоменклатуры(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура СнятьОтборПоСтрокеПоискаНоменклатурыНаСервере() + + ПодборТоваровКлиентСервер.СнятьОтборПоСтрокеПоискаНоменклатуры(ЭтаФорма); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийНаСервере + +&НаСервере +Процедура ИспользоватьФильтрыПриИзмененииНаСервере() + + ПодборТоваровСервер.ПриИзмененииИспользованияФильтров(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура ВидНоменклатурыПриИзмененииНаСервере() + + ПодборТоваровСервер.ПриИзмененииВидаНоменклатуры(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура СегментНоменклатурыПриИзмененииНаСервере() + + ПодборТоваровСервер.ПриИзмененииСегментаНоменклатуры(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура НоменклатураСАналогичнымиСвойствамиНаСервере() + + ПодборТоваровСервер.ПриИзмененииОтображенияНоменклатураСАналогичнымиСвойствами(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура ДеревоОтборовОтборПриИзмененииНаСервере() + + ПодборТоваровСервер.ДеревоОтборовОтборПриИзменении(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура НоменклатураИсходногоКачестваПриИзмененииНаСервере() + + ПодборТоваровСервер.НоменклатураИсходногоКачестваПриИзменении(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура СписокКачестваПометкаПриИзмененииНаСервере() + + ПодборТоваровСервер.СписокКачестваПометкаПриИзменении(ЭтаФорма); + +КонецПроцедуры + +#КонецОбласти + +#Область ГорячиеКлавиши + +&НаКлиенте +Процедура УстановитьТекущийЭлементСтрокаПоиска(Команда) + + ПодборТоваровКлиент.УстановитьТекущийЭлементСтрокаПоиска(ЭтаФорма); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиОжидания + +&НаКлиенте +Процедура СписокПриАктивизацииСтрокиОбработчикОжидания() + + ПодборТоваровКлиент.УстановитьТекущуюСтрокуИерархииНоменклатуры(ЭтаФорма); + +КонецПроцедуры + +#КонецОбласти + +#Область УправлениеВариантомНавигации + +&НаКлиенте +Процедура ВидыНоменклатурыПриАктивизацииСтроки(Элемент) + + ПодборТоваровКлиент.ПриАктивизацииСтрокиСпискаВидыНоменклатуры(ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ВидыНоменклатурыПриАктивизацииСтрокиОбработчикОжидания() + + ТекущиеДанные = Элементы.ВидыНоменклатуры.ТекущиеДанные; + + Если ТекущиеДанные <> Неопределено Тогда + + ВидНоменклатурыПриИзмененииНаСервере(); + + Если ЗначениеЗаполнено(СтрокаПоискаНоменклатура) Тогда + ВыполнитьПоискНоменклатуры(); + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура НадписьВариантНавигацииНавигационнойСсылки(Элемент, НавигационнаяСсылка, СтандартнаяОбработка) + + ВидНоменклатурыДоПерехода = ВидНоменклатуры; + НадписьВариантНавигацииНавигационнойСсылкиНаСервере(НавигационнаяСсылка, СтандартнаяОбработка); + + Если ВариантНавигации = ПредопределенноеЗначение("Перечисление.ВариантыНавигацииВФормахНоменклатуры.ПоВидамИСвойствам") + Или ВариантНавигации = ПредопределенноеЗначение("Перечисление.ВариантыНавигацииВФормахНоменклатуры.ПоВидам") Тогда + Элементы.ВидыНоменклатуры.ТекущаяСтрока = ВидНоменклатурыДоПерехода; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура НадписьВариантНавигацииНавигационнойСсылкиНаСервере(НавигационнаяСсылка, СтандартнаяОбработка) + + ПодборТоваровСервер.НадписьВариантНавигацииНавигационнойСсылки(ЭтаФорма, НавигационнаяСсылка, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьВариантНавигации(Команда) + ПодборТоваровКлиент.ИзменитьВариантНавигации(ЭтотОбъект); +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьВариантНавигацииЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Если Результат = Неопределено + Или ВариантНавигации = Результат.Значение Тогда + Возврат; + КонецЕсли; + + ВариантНавигации = Результат.Значение; + ВариантНавигацииПриИзмененииНаСервере(); + +КонецПроцедуры + +&НаСервере +Процедура ВариантНавигацииПриИзмененииНаСервере() + + ПодборТоваровСервер.ПриИзмененииВариантаНавигации(ЭтаФорма); + +КонецПроцедуры + +#КонецОбласти + +#Область Прочее + +&НаСервере +Функция АдресТаблицПараметровДереваОтборовНаСервере() + + Структура = Новый Структура("АдресТаблицыПараметров, АдресТаблицыСопоставления"); + + Структура.АдресТаблицыПараметров = ПодборТоваровСервер.АдресТаблицыПараметровДереваОтборов(ЭтаФорма); + Структура.АдресТаблицыСопоставления = ПодборТоваровСервер.АдресТаблицыСопоставленияДереваОтборов(ЭтаФорма); + + Возврат Структура; + +КонецФункции + +&НаСервере +Процедура СохранитьНастройкиФормыНаСервере() + + ПодборТоваровСервер.СохранитьНастройкиФормы(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура ТоварыДругогоКачестваНаСервере() + + ПодборТоваровСервер.УстановитьОтборПоНоменклатуреДругогоКачества(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура СброситьОтборыПоСвойствамНаСервере() + + ПодборТоваровСервер.СброситьОтборыПоСвойствам(ЭтаФорма); + +КонецПроцедуры + +// СтандартныеПодсистемы.ПодключаемыеКоманды +&НаКлиенте +Процедура Подключаемый_ВыполнитьКоманду(Команда) + + СписокДляПечати = ?(Элементы.СтраницыСписков.ТекущаяСтраница = Элементы.СтраницаРасширенныйПоискНоменклатура, + Элементы.СписокРасширенныйПоискНоменклатура, + Элементы.СписокСтандартныйПоискНоменклатура); + ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, СписокДляПечати); + +КонецПроцедуры + +&НаСервере +Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт + + СписокДляПечати = ?(Элементы.СтраницыСписков.ТекущаяСтраница = Элементы.СтраницаРасширенныйПоискНоменклатура, + Элементы.СписокРасширенныйПоискНоменклатура, + Элементы.СписокСтандартныйПоискНоменклатура); + ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, СписокДляПечати, Результат); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ОбновитьКоманды() + + СписокДляПечати = ?(Элементы.СтраницыСписков.ТекущаяСтраница = Элементы.СтраницаРасширенныйПоискНоменклатура, + Элементы.СписокРасширенныйПоискНоменклатура, + Элементы.СписокСтандартныйПоискНоменклатура); + ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, СписокДляПечати); + +КонецПроцедуры +// Конец СтандартныеПодсистемы.ПодключаемыеКоманды + +// ЭлектронноеВзаимодействие.РаботаСНоменклатурой + +&НаКлиенте +Процедура Подключаемый_ВыполнитьКомандуРаботаСНоменклатурой(Команда) + + РаботаСНоменклатуройКлиент.ВыполнитьПодключаемуюКоманду(ЭтотОбъект, Команда); + +КонецПроцедуры + +// Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + +#КонецОбласти + +#КонецОбласти + +#Область Производительность + +&НаКлиенте +Процедура СписокСтандартныйПоискНоменклатураВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + // &ЗамерПроизводительности + ОценкаПроизводительностиКлиент.НачатьЗамерВремени(Истина, + "Справочник.Номенклатура.ФормаСписка.Элемент.СписокСтандартныйПоискНоменклатура.Выбор"); + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + РаботаСНоменклатуройКлиент.ВыборВТаблицеФормы(ЭтотОбъект, Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка); + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + +КонецПроцедуры + +&НаКлиенте +Процедура СписокРасширенныйПоискНоменклатураВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + // &ЗамерПроизводительности + ОценкаПроизводительностиКлиент.НачатьЗамерВремени(Истина, + "Справочник.Номенклатура.ФормаСписка.Элемент.СписокРасширенныйПоискНоменклатура.Выбор"); + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + РаботаСНоменклатуройКлиент.ВыборВТаблицеФормы(ЭтотОбъект, Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка); + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + +КонецПроцедуры + +#КонецОбласти diff --git a/src/Catalogs/Номенклатура/Forms/ФормаСписка/Ext/Help.xml b/src/Catalogs/Номенклатура/Forms/ФормаСписка/Ext/Help.xml new file mode 100644 index 0000000..d983f4c --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаСписка/Ext/Help.xml @@ -0,0 +1,4 @@ + + + ru + \ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаСписка/Ext/Help/ru.html b/src/Catalogs/Номенклатура/Forms/ФормаСписка/Ext/Help/ru.html new file mode 100644 index 0000000..85897a1 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаСписка/Ext/Help/ru.html @@ -0,0 +1,22 @@ + +

Номенклатура

+

Справочник предназначен для хранения информации о номенклатурных позициях следующих типов: товар, услуга, работа, тара и набор.

+

Подробное описание сценариев ведения справочника приведено в документации https://its.1c.ru/db/utdoc#bookmark:Goods:Goods

+

Позиции номенклатуры могут быть классифицированы по видам номенклатуры.

+

Вид номенклатуры – это дополнительная классификация товаров более обобщенная чем тип, и позволяющая отличать номенклатурные позиции по различным параметрам, например, характеристикам. Причем для более детальной классификации, рекомендуется использование нескольких видов номенклатуры с общим типом.
Вид номенклатуры можно поменять после создания номенклатуры. При этом новый и старый вид номенклатуры должны отвечать следующим требованиям:
- установлен один тип номенклатуры;
- одинаково установлен признак алкогольная продукция;
- одинаково установлен признак содержит драгоценные металлы или камни;
- характеристики не используются, или они индивидуальные для номенклатуры, или общие для нескольких видов (при этом оба вида - новый и старый - должны использовать один набор характеристик);
- серии не используются или настроены одинаково.

+

Пример. Если необходимо разделять услуги, которые оказывает наше предприятие, и услуги, оказываемые сторонними организациями, то можно создать два вида номенклатуры: внутренние услуги и сторонние услуги с одним и тем же типом – услуга.

Дополнительные материалы на ИТС

+

Список номенклатуры

+

Создание номенклатуры

+

Подбор аналогичных товаров (со схожими свойствами)

+

Подбор товаров другого качества

+

Групповое изменение объектов

+

Список номенклатуры

+


В форме справочника отображается общий перечень всех зарегистрированных типов номенклатуры.
Для возможности регистрации номенклатуры с типами Тара и Набор необходимо предварительное включение функциональных опций Многооборотная тара и Наборы номенклатуры при продаже в разделе НСИ и администрирование - Номенклатура - Разрезы учета.

Для списка товаров доступны предопределенные отборы (флаг Фильтр по):

+
  • виду и свойствам,
  • иерархии,
  • товарам другого качества (при условии задействованой функциональной опции Качество товаров в разделе НСИ и администрирование - Номенклатура - Разрезы учета),

При условии задействования функциональной опции Сегменты номенклатуры в разделе НСИ и администрирование - CRM и маркетинг - Маркетинг доступен дополнительный отбор по сегменту номенклатуры.

При использовании фильтра по виду и свойствам в качестве полей поиска и их значений указываются те реквизиты, которые были определены для вида номенклатуры. Причем в качестве полей поиска могут быть использованы любые дополнительные реквизиты, заданные пользователем как для номенклатуры, так и для её характеристик.

+

Для вида номенклатуры Холодильники в качестве полей для панели быстрого отбора заданы Марка и Производитель. В списке полей панели быстрого отбора будут перечислены все указанные для холодильников марки (Стинол, Атлант и т.д) и производители (Завод бытовой техники, Холодильный комбинат). Установив соответствующие отметки можно быстро найти холодильники марки Стинол, которые были произведены заводом бытовой техники.

Создание номенклатуры

+


Регистрация новой позиции номенклатуры может быть осуществлена в двух режимах: с использованием помощника или без него. Для первого случая предназначена команда Создать, а для второго - команда Добавить элемент. В последнем случае (отказе использования помощника) системой не контролируется уникальность реквизитов созданной номенклатуры. В связи с чем, данная команда доступна только тем пользователям, для которых установлено право на создание номенклатуры без контроля уникальности.

+

Подбор аналогичных товаров (со схожими свойствами)

+
  • Выделите в списке нужную позицию номенклатуры.
  • Выполните в контекстном меню команду Товары со схожими свойствами.

В списке останутся только те товары, которые имеют свойства аналогичные исходному товару. Список свойств, по которым происходит сравнение, определяется в виде номенклатуры.

+

Подбор товаров другого качества

+
  • Выделите в списке нужную позицию номенклатуры.
  • Выполните в контекстном меню команду Товары другого качества.

Групповое изменение объектов

+
  • Выделите позиции номенклатуры, реквизиты которых нужно изменить.
  • Выберите команду Изменить выделенные.
  • Откроется форма Групповое изменение реквизитов.
  • Измените реквизиты выделенных объектов.

 

\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаУстановкиЗначенийОтбора.xml b/src/Catalogs/Номенклатура/Forms/ФормаУстановкиЗначенийОтбора.xml new file mode 100644 index 0000000..87292e1 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаУстановкиЗначенийОтбора.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаУстановкиЗначенийОтбора + + + ru + Форма установки значений отбора + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаУстановкиЗначенийОтбора/Ext/Form.xml b/src/Catalogs/Номенклатура/Forms/ФормаУстановкиЗначенийОтбора/Ext/Form.xml new file mode 100644 index 0000000..7f3373c --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаУстановкиЗначенийОтбора/Ext/Form.xml @@ -0,0 +1,321 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Установите значение отбора</v8:content> + </v8:item> + + false + Bottom + + Right + false + + + + + + + ОбработкаВыбора + ПриСозданииНаСервере + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа пользовательских настроек</v8:content> + </v8:item> + + Usual + None + false + + + + List + true + true + true + AsFile + СписокЗначенийОтбора + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список значений отбора</v8:content> + </v8:item> + + + + + false + + + + + + + + + + СписокЗначенийОтбора + SearchStringRepresentation + + + + + + + СписокЗначенийОтбора + ViewStatusRepresentation + + Left + + + + + + СписокЗначенийОтбора + SearchControl + + + + + + СписокЗначенийОтбораПередНачаломДобавления + + + + СписокЗначенийОтбора.Пометка + true + None + EnterOnInput + Auto + + + + + СписокЗначенийОтбора.ЗначениеОтбора + false + + + + +
+
+ + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Имя реквизита</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список значений отбора</v8:content> + </v8:item> + + + v8:ValueTable + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Пометка</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Значение отбора</v8:content> + </v8:item> + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Тип значения отбора</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Владелец отбор</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Полное имя объекта</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>ОК</v8:content> + </v8:item> + + + + ru + ОК + + + ОК + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отмена</v8:content> + </v8:item> + + + + ru + Отмена + + + Отмена + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Подобрать</v8:content> + </v8:item> + + + + ru + Подобрать + + + Подобрать + DontUse + + + + + + xs:dateTime + xs:decimal + + 15 + 3 + Any + + + Date + + + + + + xs:dateTime + xs:decimal + + 15 + 3 + Any + + + Date + + + + + + + + + xs:string + + 0 + Variable + + + + + + cfg:CatalogRef.ВидыНоменклатуры + + + + + + + + xs:boolean + + + + + xs:boolean + + + +
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаУстановкиЗначенийОтбора/Ext/Form/Module.bsl b/src/Catalogs/Номенклатура/Forms/ФормаУстановкиЗначенийОтбора/Ext/Form/Module.bsl new file mode 100644 index 0000000..6cabf9e --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаУстановкиЗначенийОтбора/Ext/Form/Module.bsl @@ -0,0 +1,171 @@ + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест". + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + ИмяРеквизита = Параметры.ИмяРеквизита; + + Для Каждого ЭлементСписка Из Параметры.ЗначениеОтбора Цикл + НоваяСтрока = СписокЗначенийОтбора.Добавить(); + НоваяСтрока.Пометка = Истина; + НоваяСтрока.ЗначениеОтбора = ЭлементСписка.Значение; + КонецЦикла; + + Запрос = Новый Запрос; + Если Не Параметры.ЭтоДопРеквизит Тогда + + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | Номенклатура." + ИмяРеквизита + " КАК ЗначениеРеквизита + |ИЗ + | Справочник.Номенклатура КАК Номенклатура + |ГДЕ + | Номенклатура.ВидНоменклатуры = &ВидНоменклатуры + | И Номенклатура." + ИмяРеквизита + " <> """" + | "; + + ИначеЕсли Параметры.ОтборПоНоменклатуре Тогда + + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | ДополнительныеРеквизиты.Значение КАК ЗначениеРеквизита, + | ДополнительныеРеквизиты.Свойство КАК Свойство + |ИЗ + | Справочник.Номенклатура.ДополнительныеРеквизиты КАК ДополнительныеРеквизиты + |ГДЕ + | ДополнительныеРеквизиты.Свойство.Заголовок = &Свойство + | И ДополнительныеРеквизиты.Ссылка.ВидНоменклатуры = &ВидНоменклатуры"; + + ИначеЕсли Не Параметры.ОтборПоНоменклатуре Тогда + + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | ХарактеристикиДополнительныеРеквизиты.Значение КАК ЗначениеРеквизита, + | ХарактеристикиДополнительныеРеквизиты.Свойство КАК Свойство + |ИЗ + | Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиДополнительныеРеквизиты + |ГДЕ + | ХарактеристикиДополнительныеРеквизиты.Свойство.Заголовок = &Свойство + | И ВЫБОР + | КОГДА ТИПЗНАЧЕНИЯ(ХарактеристикиДополнительныеРеквизиты.Ссылка.Владелец) = ТИП(Справочник.ВидыНоменклатуры) + | ТОГДА ХарактеристикиДополнительныеРеквизиты.Ссылка.Владелец = &ВидНоменклатуры + | ИНАЧЕ ХарактеристикиДополнительныеРеквизиты.Ссылка.Владелец.ВидНоменклатуры = &ВидНоменклатуры + | КОНЕЦ"; + + КонецЕсли; + Запрос.УстановитьПараметр("Свойство", ИмяРеквизита); + Запрос.УстановитьПараметр("ВидНоменклатуры", Параметры.ВидНоменклатуры); + Выборка = Запрос.Выполнить().Выбрать(); + Выборка.Следующий(); + ТипЗначенияОтбора = ТипЗнч(Выборка.ЗначениеРеквизита); + + Если ТипЗначенияОтбора = Тип("СправочникСсылка.ЗначенияСвойствОбъектов") Тогда + + МассивПараметров = Новый Массив(); + НовыйПараметр = Новый ПараметрВыбора("Отбор.Владелец", Выборка.Свойство); + МассивПараметров.Добавить(НовыйПараметр); + + Элементы.СписокЗначенийОтбораЗначениеОтбора.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров); + ВладелецОтбор = Выборка.Свойство; + КонецЕсли; + + ПолноеИмяОбъекта = Метаданные.НайтиПоТипу(ТипЗначенияОтбора).ПолноеИмя(); + + СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) + + Если ЗначениеЗаполнено(ВыбранноеЗначение) Тогда + Для Каждого Значение Из ВыбранноеЗначение Цикл + НоваяСтрока = СписокЗначенийОтбора.Добавить(); + НоваяСтрока.ЗначениеОтбора = Значение; + НоваяСтрока.Пометка = Истина; + КонецЦикла; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Отмена(Команда) + + Закрыть(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОК(Команда) + + НеверныйИнтервал = Ложь; + + ЗначениеОтбора = Новый СписокЗначений; + Для Каждого ЭлементСпискаЗначений Из СписокЗначенийОтбора Цикл + Если ЭлементСпискаЗначений.Пометка + И ЗначениеЗаполнено(ЭлементСпискаЗначений.ЗначениеОтбора) + И ЗначениеОтбора.НайтиПоЗначению(ЭлементСпискаЗначений.ЗначениеОтбора) = Неопределено Тогда + ЗначениеОтбора.Добавить(ЭлементСпискаЗначений.ЗначениеОтбора); + КонецЕсли; + КонецЦикла; + + СтруктураВозврата = Новый Структура("ЗначениеОтбора", ЗначениеОтбора); + + Закрыть(СтруктураВозврата); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура СписокЗначенийОтбораПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр) + + Если Копирование Тогда + Возврат; + КонецЕсли; + + НоваяСтрока = СписокЗначенийОтбора.Добавить(); + НоваяСтрока.Пометка = Истина; + НоваяСтрока.ЗначениеОтбора = Новый (ТипЗначенияОтбора); + + КоличествоСтрок = СписокЗначенийОтбора.Количество(); + Элементы.СписокЗначенийОтбора.ТекущаяСтрока = СписокЗначенийОтбора[КоличествоСтрок - 1].ПолучитьИдентификатор(); + + Отказ = Истина; + +КонецПроцедуры + +&НаКлиенте +Процедура Подобрать(Команда) + + Если ЗначениеЗаполнено(ВладелецОтбор) Тогда + Отбор = Новый Структура("Владелец", ВладелецОтбор); + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ЗакрыватьПриВыборе",Ложь); + ПараметрыФормы.Вставить("МножественныйВыбор",Истина); + ПараметрыФормы.Вставить("РежимВыбора",Истина); + ПараметрыФормы.Вставить("Отбор",Отбор); + Иначе + ПараметрыФормы = Новый Структура("ЗакрыватьПриВыборе, МножественныйВыбор, РежимВыбора", Ложь, Истина, Истина); + КонецЕсли; + + ОткрытьФорму(ПолноеИмяОбъекта + ".ФормаВыбора",ПараметрыФормы,ЭтаФорма,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры + +#КонецОбласти diff --git a/src/Catalogs/Номенклатура/Forms/ФормаУстановкиИнтервала.xml b/src/Catalogs/Номенклатура/Forms/ФормаУстановкиИнтервала.xml new file mode 100644 index 0000000..2d571f0 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаУстановкиИнтервала.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаУстановкиИнтервала + + + ru + Форма установки интервала + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаУстановкиИнтервала/Ext/Form.xml b/src/Catalogs/Номенклатура/Forms/ФормаУстановкиИнтервала/Ext/Form.xml new file mode 100644 index 0000000..4576138 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаУстановкиИнтервала/Ext/Form.xml @@ -0,0 +1,373 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Установите интервал значений</v8:content> + </v8:item> + + false + Bottom + + Right + false + + + + + + + ПриСозданииНаСервере + + + + ИмяРеквизита + + None + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страницы видов отборов</v8:content> + </v8:item> + + None + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страница ввода интервала</v8:content> + </v8:item> + + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страницы типов интервалов</v8:content> + </v8:item> + + None + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страница типа число</v8:content> + </v8:item> + + Horizontal + false + + + + ЗначениеЧислоОт + true + + + + + ЗначениеЧислоДо + true + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страница типа дата</v8:content> + </v8:item> + + Horizontal + false + + + + ЗначениеДатаОт + true + + + + + ЗначениеДатаДо + true + + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страница ввода строки</v8:content> + </v8:item> + + false + + + + ЗначениеВыбораСтрока + None + true + true + true + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>от</v8:content> + </v8:item> + + + xs:decimal + + 15 + 3 + Any + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>до</v8:content> + </v8:item> + + + xs:decimal + + 15 + 3 + Any + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Имя реквизита</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Число</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Тип значения дата</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Значение выбора строка</v8:content> + </v8:item> + + + xs:string + + 1024 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>до</v8:content> + </v8:item> + + + xs:dateTime + + DateTime + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>от</v8:content> + </v8:item> + + + xs:dateTime + + DateTime + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>ОК</v8:content> + </v8:item> + + + + ru + ОК + + + ОК + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отмена</v8:content> + </v8:item> + + + + ru + Отмена + + + Отмена + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Установить интервал</v8:content> + </v8:item> + + + + ru + Установить интервал + + + + StdPicture.SetDateInterval + true + + УстановитьИнтервал + DontUse + + + + + + xs:dateTime + xs:decimal + + 15 + 3 + Any + + + Date + + + + + + xs:dateTime + xs:decimal + + 15 + 3 + Any + + + Date + + + + + + + + + xs:string + + 0 + Variable + + + + + + + + + + +
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаУстановкиИнтервала/Ext/Form/Module.bsl b/src/Catalogs/Номенклатура/Forms/ФормаУстановкиИнтервала/Ext/Form/Module.bsl new file mode 100644 index 0000000..367f1f5 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаУстановкиИнтервала/Ext/Form/Module.bsl @@ -0,0 +1,106 @@ + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест". + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + Если Параметры.ТипЗначения = Тип("Строка") Тогда + + ЭтаФорма.Заголовок = НСтр("ru = 'Установите значение отбора'"); + Элементы.СтраницыВидовОтборов.ТекущаяСтраница = Элементы.СтраницаВводаСтроки; + ЗначениеВыбораСтрока = Параметры.ЗначениеОтбора; + + Элементы.ЗначениеВыбораСтрока.СписокВыбора.Очистить(); + Для Каждого ЭлементСписка Из Параметры.СписокСтрокОтбора Цикл + Элементы.ЗначениеВыбораСтрока.СписокВыбора.Добавить(ЭлементСписка.Значение, ЭлементСписка.Представление); + КонецЦикла; + + Иначе + + ЭтаФорма.Заголовок = НСтр("ru = 'Установите интервал значений отбора'"); + Элементы.СтраницыВидовОтборов.ТекущаяСтраница = Элементы.СтраницаВводаИнтервала; + + Если Параметры.ТипЗначения = Тип("Дата") Тогда + Элементы.СтраницыТиповИнтервалов.ТекущаяСтраница = Элементы.СтраницаТипаДата; + ЗначениеДатаОт = Параметры.ЗначениеОт; + ЗначениеДатаДо = Параметры.ЗначениеДо; + ТипЗначенияДата = Истина; + Иначе + Элементы.СтраницыТиповИнтервалов.ТекущаяСтраница = Элементы.СтраницаТипаЧисло; + ЗначениеЧислоОт = Параметры.ЗначениеОт; + ЗначениеЧислоДо = Параметры.ЗначениеДо; + КонецЕсли; + + КонецЕсли; + + ИмяРеквизита = Параметры.ИмяРеквизита; + + СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Отмена(Команда) + + Закрыть(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОК(Команда) + + НеверныйИнтервал = Ложь; + + Если Элементы.СтраницыВидовОтборов.ТекущаяСтраница = Элементы.СтраницаВводаИнтервала Тогда + + СтруктураВозврата = Новый Структура("ИнтервалОт, ИнтервалДо"); + + Если ТипЗначенияДата Тогда + СтруктураВозврата.ИнтервалОт = ЗначениеДатаОт; + СтруктураВозврата.ИнтервалДо = ЗначениеДатаДо; + + НеверныйИнтервал = (ЗначениеДатаОт > ЗначениеДатаДо); + Иначе + СтруктураВозврата.ИнтервалОт = ЗначениеЧислоОт; + СтруктураВозврата.ИнтервалДо = ЗначениеЧислоДо; + + НеверныйИнтервал = (ЗначениеЧислоОт > ЗначениеЧислоДо); + КонецЕсли; + + Иначе + СтруктураВозврата = Новый Структура("ЗначениеОтбора", ЗначениеВыбораСтрока); + КонецЕсли; + + Если НеверныйИнтервал Тогда + ПоказатьПредупреждение(Неопределено, НСтр("ru = 'Указан неверный диапазон значений!'")); + Возврат; + КонецЕсли; + + Закрыть(СтруктураВозврата); + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьИнтервал(Команда) + + ОбщегоНазначенияУТКлиент.РедактироватьПериод(ЭтаФорма, Новый Структура("ДатаНачала, ДатаОкончания", "ЗначениеДатаОт", "ЗначениеДатаДо")); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда); + +КонецПроцедуры + +#КонецОбласти diff --git a/src/Catalogs/Номенклатура/Forms/ФормаЭлемента.xml b/src/Catalogs/Номенклатура/Forms/ФормаЭлемента.xml new file mode 100644 index 0000000..1336d80 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаЭлемента.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаЭлемента + + + ru + Форма элемента + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаЭлемента/Ext/Form.xml b/src/Catalogs/Номенклатура/Forms/ФормаЭлемента/Ext/Form.xml new file mode 100644 index 0000000..5b01f02 --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаЭлемента/Ext/Form.xml @@ -0,0 +1,7175 @@ + +
+ Items + + false + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Создать на основании</v8:content> + </v8:item> + + + CommonPicture.ЗаполнитьПоШаблону + false + + Picture + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Форма глобальные команды</v8:content> + </v8:item> + + Form + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Печать</v8:content> + </v8:item> + + + + ru + Команды печати + + + + StdPicture.Print + true + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отчеты</v8:content> + </v8:item> + + + CommonPicture.Отчеты + false + + PictureAndText + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Подменю отчеты важное</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Подменю отчеты перейти</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Подменю отчеты см также</v8:content> + </v8:item> + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Перейти</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Подменю перейти важное</v8:content> + </v8:item> + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Подменю перейти перейти</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Кнопок основное</v8:content> + </v8:item> + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Кнопок описание</v8:content> + </v8:item> + + + + ru + Описание + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Кнопок параметры учета</v8:content> + </v8:item> + + + + ru + Основные параметры учета + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Условия хранения</v8:content> + </v8:item> + + + + ru + Единицы измерения и условия хранения + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Кнопок планирование</v8:content> + </v8:item> + + + + ru + Планирование и маркетинг + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Кнопок производство</v8:content> + </v8:item> + + + + ru + Обеспечение и производство + + + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Кнопок финансовый учет</v8:content> + </v8:item> + + + + ru + Регламентированный и финансовый учет + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Кнопок цены</v8:content> + </v8:item> + + + + ru + Цены + + + + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>См. также</v8:content> + </v8:item> + + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Заполнение</v8:content> + </v8:item> + + + + ru + Дополнительные команды заполнения + + + + CommonPicture.ЗаполнитьФорму + false + + + + + + + + + ПослеЗаписи + ОбработкаВыбора + ПослеЗаписиНаСервере + ОбработкаОповещения + ПриЧтенииНаСервере + ПриОткрытии + ПередЗакрытием + ПередЗаписью + ПриСозданииНаСервере + ПередЗаписьюНаСервере + ПриЗаписиНаСервере + ПриЗакрытии + ОбработкаНавигационнойСсылки + ОбработкаПроверкиЗаполненияНаСервере + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страницы карточка номенклатуры</v8:content> + </v8:item> + + TabsOnTop + + + СтраницыКарточкаНоменклатурыПриСменеСтраницы + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Карточка</v8:content> + </v8:item> + + + + + КарточкаНоменклатуры + None + true + true + + + + КарточкаНоменклатурыОбработкаРасшифровки + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизиты</v8:content> + </v8:item> + + 20 + true + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизиты</v8:content> + </v8:item> + + Vertical + Usual + None + false + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа совпадения</v8:content> + </v8:item> + + + + ru + Группа совпадения + + + Vertical + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа подсказка есть совпадения</v8:content> + </v8:item> + + AlwaysHorizontal + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Картинка предупреждение</v8:content> + </v8:item> + + + CommonPicture.Предупреждение32 + false + + + + + + false + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Имеются совпадения по некоторым реквизитам. +<i>Можно выбрать существующий элемент.</></v8:content> + </v8:item> + + + + + + + + + List + true + true + true + true + СовпаденияНоменклатуры + + Add + Change + Copy + Delete + MoveDown + MoveUp + + None + None + None + + + + false + + + + + СовпаденияНоменклатуры + SearchStringRepresentation + + + + + + + СовпаденияНоменклатуры + ViewStatusRepresentation + + + + + + + СовпаденияНоменклатуры + SearchControl + + + + + + СовпаденияНоменклатурыВыбор + + + + СовпаденияНоменклатуры.Ссылка + EnterOnInput + true + + + + + СовпаденияНоменклатуры.Уверенность + EnterOnInput + true + + + + + СовпаденияНоменклатуры.ИндексКартинки + None + EnterOnInput + + StdPicture.InputFieldOpen + true + + + StdPicture.InputFieldOpen + true + + + + + +
+
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа шапка реквизиты</v8:content> + </v8:item> + + Vertical + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройка видимости формы</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид номенклатуры и аналогичные свойства</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + Объект.ВидНоменклатуры + false + true + false + style:ЦветФонаВыделения + + + + ВидНоменклатурыПриИзменении + + + + Объект.ВидНоменклатуры + false + None + + + ru + Для использования других видов номенклатуры необходимо включить "Администрирование" - "Номенклатура" - "Множество видов номенклатуры". + + + Balloon + Auto + + + + ВидНоменклатурыПриИзменении + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link Номенклатура с аналогичными свойствами>Номенклатура с аналогичными свойствами</></v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + + + false + true + + + + + НастройкаВидимостиФормы + None + Tumbler + 3 + + + + 0 + + + + ru + Показать основные + + + ПоказатьОсновные + + + + + 0 + + + + ru + Показать все + + + ПоказатьВсе + + + + + 0 + + + + ru + Свернуть все + + + СвернутьВсеГруппы + + + + + + + НастройкаВидимостиФормыПриИзменении + + + + + + Штрихкод + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Штрихкод</v8:content> + </v8:item> + + false + true + style:ЦветФонаВыделения + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа работа с номенклатурой</v8:content> + </v8:item> + + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страницы удалить после выключения совместимости</v8:content> + </v8:item> + + None + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страница удалить после выключения совместимости</v8:content> + </v8:item> + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа контрагенты наименование картинка</v8:content> + </v8:item> + + AlwaysHorizontal + Usual + None + false + + + + 17 + + + + + НаименованиеКартинка + true + None + 1 + false + false + style:FormBackColor + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Наименование и команды</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Наименование</v8:content> + </v8:item> + + Vertical + Usual + None + false + + + + Объект.Description + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Рабочее наименование</v8:content> + </v8:item> + + false + false + + + + НаименованиеПриИзменении + + + + Объект.НаименованиеПолное + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Наименование для печати</v8:content> + </v8:item> + + false + + + + НаименованиеПолноеПриИзменении + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Заполнить по шаблону</v8:content> + </v8:item> + + Vertical + Usual + None + false + + + + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Шапка</v8:content> + </v8:item> + + Horizontal + Usual + None + LeftWide + false + + + + Объект.Артикул + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Артикул</v8:content> + </v8:item> + + Left + false + + + + + АртикулКартинка + false + true + None + 10 + 1 + false + false + style:FormBackColor + + + + + Объект.Code + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Код</v8:content> + </v8:item> + + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link 1>Штрихкоды</><link 1> (</><link 1>1</><link 1>)</></v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группировка лево право</v8:content> + </v8:item> + + Top + Horizontal + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Лево</v8:content> + </v8:item> + + 45 + false + Vertical + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Описание</v8:content> + </v8:item> + + Vertical + Collapsible + Picture + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Файл картинки</v8:content> + </v8:item> + + Vertical + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Командная панель изображение</v8:content> + </v8:item> + + + + + + + + + + + + АдресКартинки + true + None + false + AutoSize + true + + + ru + Добавить изображение + + + style:ЦветТекстаНевыбраннойКартинки + + AsFile + + false + + + + + + + + + + + АдресКартинкиНажатие + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Описания</v8:content> + </v8:item> + + Vertical + Usual + None + false + + + + Объект.Описание + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Текстовое описание</v8:content> + </v8:item> + + Top + false + 4 + false + true + + + + ОписаниеНачалоВыбора + + + + ПутьКФайлуОписанию + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Файл описания для сайта</v8:content> + </v8:item> + + true + true + true + false + + + + ФайлОписанияДляСайтаНачалоВыбора + ФайлОписанияДляСайтаОткрытие + ФайлОписанияДляСайтаОчистка + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link 1>Файлы</><link 1> (0)</></v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Учет сертификаты номенклатуры</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + Объект.ВестиУчетСертификатовНоменклатуры + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Учет сертификатов номенклатуры</v8:content> + </v8:item> + + Right + Auto + + + + НастроитьФормуИОбновитьКарточкуКлиент + + + + false + 1 + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link 1>Список</><link 1> (0)</> <img 0:188d8f0e-94da-44bb-8ed3-21aa01e973b9/></v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Дополнительные реквизиты</v8:content> + </v8:item> + + Vertical + Collapsible + Picture + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Дополнительные реквизиты</v8:content> + </v8:item> + + Vertical + Usual + None + false + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сведения о производителе</v8:content> + </v8:item> + + Vertical + Collapsible + Picture + + + + Объект.ПроизводительИмпортерКонтрагент + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Производитель, импортер (контрагент)</v8:content> + </v8:item> + + + + + + Объект.Производитель + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Производитель (бренд)</v8:content> + </v8:item> + + + + + ПроизводительПриИзменении + + + + Объект.Марка + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Марка (бренд)</v8:content> + </v8:item> + + + + + + Объект.СтранаПроисхождения + + + + СтранаПроисхожденияПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реализация услуги по агентскому договору</v8:content> + </v8:item> + + style:FormTextColor + Vertical + Usual + None + + + + Объект.Принципал + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Принципал</v8:content> + </v8:item> + + false + + + + ПринципалПриИзменении + + + + Объект.Контрагент + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Контрагент</v8:content> + </v8:item> + + false + + + + НастроитьФормуИОбновитьКарточкуКлиент + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link СоглашенияПоХарактеристикам>В соглашения добавлены 5 из 6 характеристик</></v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Планирование и маркетинг</v8:content> + </v8:item> + + Vertical + Collapsible + Picture + + + + Объект.ТоварнаяКатегория + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Товарная категория</v8:content> + </v8:item> + + + + + + Объект.КоллекцияНоменклатуры + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Коллекция (сезон)</v8:content> + </v8:item> + + + + + + Объект.СезоннаяГруппа + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сезонная группа</v8:content> + </v8:item> + + + + + + Объект.РейтингПродаж + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Рейтинг продаж</v8:content> + </v8:item> + + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link 1>Совместные продажи</></v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link 2>С</><bgcolorstyle -1><link 2>егменты</></><link 2> (</><link 2>Метизы)</></v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Обеспечение и производство</v8:content> + </v8:item> + + Vertical + Collapsible + Picture + + + + Объект.ОбособленнаяЗакупкаПродажа + Right + Auto + + + + + Объект.СпособОбеспеченияПотребностей + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Способ обеспечения потребностей</v8:content> + </v8:item> + + Left + + + + + Объект.СхемаОбеспечения + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Схема обеспечения</v8:content> + </v8:item> + + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link Варианты комплектации>Варианты</><link Варианты комплектации> комплектации</></v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link 1>Настройка поддержания запасов</></v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link 1>Настройка способов обеспечения потребностей</></v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link 1>Настройка передачи материалов в производство</></v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link 1>Производство</></v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Контроль качества</v8:content> + </v8:item> + + Vertical + Collapsible + Picture + + + + Объект.КонтролироватьКачествоПоступившегоТовара + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Контроль качества поступившего товара</v8:content> + </v8:item> + + Right + Auto + + + + КонтролироватьКачествоПоступившегоТовараПриИзменении + + + + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа срок контроля</v8:content> + </v8:item> + + AlwaysHorizontal + None + false + + + + 1 + 1 + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отступ</v8:content> + </v8:item> + + + + + + Объект.СрокКонтроляКачества + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Срок контроля</v8:content> + </v8:item> + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>дн.</v8:content> + </v8:item> + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Цены</v8:content> + </v8:item> + + Vertical + Collapsible + Picture + + + + Объект.ЦеноваяГруппа + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ценовая группа</v8:content> + </v8:item> + + false + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link 1>Прайс-лист компании</></v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link 23>Прайс-листы поставщиков</></v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link 1>История изменения цен компании</></v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link 23>История изменения цен поставщиков</></v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Печать ценников и этикеток</v8:content> + </v8:item> + + Vertical + Collapsible + Picture + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Шаблон этикетки</v8:content> + </v8:item> + + Vertical + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать общий шаблон этикетки</v8:content> + </v8:item> + + Horizontal + Usual + None + false + false + + + + ИспользоватьИндивидуальныйШаблонЭтикетки + None + Auto + 1 + + + + 0 + + + + ru + Общий для вида шаблон этикетки + + + 0 + + + + + + + ИспользоватьИндивидуальныйШаблонЭтикеткаПриИзменении + + + + false + style:ТекстИнформационнойНадписи + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><не указан></v8:content> + </v8:item> + + + + + + Объект.ВидНоменклатуры.ШаблонЭтикетки + false + None + true + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать индивидуальный шаблон этикетки</v8:content> + </v8:item> + + Horizontal + Usual + None + false + false + + + + ИспользоватьИндивидуальныйШаблонЭтикетки + None + Auto + 1 + + + + 0 + + + + ru + Индивидуальный шаблон этикетки + + + 1 + + + + + + + ИспользоватьИндивидуальныйШаблонЭтикеткаПриИзменении + + + + Объект.ШаблонЭтикетки + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Шаблон этикетки</v8:content> + </v8:item> + + None + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Шаблон ценника</v8:content> + </v8:item> + + Vertical + Usual + NormalSeparation + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать общий шаблон ценника</v8:content> + </v8:item> + + Horizontal + Usual + None + false + false + + + + ИспользоватьИндивидуальныйШаблонЦенника + None + Auto + 1 + + + + 0 + + + + ru + Общий для вида шаблон ценника + + + 0 + + + + + + + ИспользоватьИндивидуальныйШаблонЦенникПриИзменении + + + + false + style:ТекстИнформационнойНадписи + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><не указан></v8:content> + </v8:item> + + + + + + Объект.ВидНоменклатуры.ШаблонЦенника + false + None + true + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать индивидуальный шаблон ценника</v8:content> + </v8:item> + + Horizontal + Usual + None + false + false + + + + ИспользоватьИндивидуальныйШаблонЦенника + None + Auto + 1 + + + + 0 + + + + ru + Индивидуальный шаблон ценника + + + 1 + + + + + + + ИспользоватьИндивидуальныйШаблонЦенникПриИзменении + + + + Объект.ШаблонЦенника + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Шаблон ценника</v8:content> + </v8:item> + + None + + + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Право</v8:content> + </v8:item> + + 48 + false + Vertical + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Основные параметры учета</v8:content> + </v8:item> + + Vertical + Collapsible + Picture + + + + Объект.ВидНоменклатуры + false + style:ЦветФонаВыделения + + + + ВидНоменклатурыПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интеграция с ФГИС</v8:content> + </v8:item> + + Vertical + false + + + + ВидПродукцииГИСМТ + 50 + + + + ВидПродукцииГИСМТПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа интеграция ФГИС</v8:content> + </v8:item> + + None + false + + + + ФлагФГИС + Right + Auto + + + + ФлагФГИСПриИзменении + + + + ВидПродукцииФГИС + 50 + + + + ВидПродукцииФГИСПриИзменении + + + + ВидыПродукцииФГИС + + + + ВидыПродукцииФГИСОбработкаНавигационнойСсылки + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ставка НДС</v8:content> + </v8:item> + + AlwaysHorizontal + Usual + None + false + + + + Объект.СтавкаНДС + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ставка НДС</v8:content> + </v8:item> + + 9 + false + false + + + + НастроитьФормуИОбновитьКарточкуКлиент + + + + СтавкаНДСКартинка + false + true + None + 10 + 1 + false + false + style:FormBackColor + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link СтавкиНДСНоменклатуры>Все ставки (0)</></v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + + + Объект.ВидНоменклатуры + false + None + + + ru + Для использования других видов номенклатуры необходимо включить "Администрирование" - "Номенклатура" - "Множество видов номенклатуры". + + + Balloon + Auto + + + + ВидНоменклатурыПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Тип номенклатуры набора</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + Объект.ТипНоменклатуры + true + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link 2>Состав</><link 2> набора (1</><link 2>)</></v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Характеристики номенклатуры</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + Объект.ИспользованиеХарактеристик + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Характеристики</v8:content> + </v8:item> + + + + + + false + 1 + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link 2>Список</><link 2> (2)</></v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + + + НастройкаИспользованияСерий + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Серии</v8:content> + </v8:item> + + + + + + Объект.КодТНВЭД + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>ТН ВЭД</v8:content> + </v8:item> + + + + ru + Классификатор товарной номенклатуры внешнеэкономической деятельности + + + 12 + false + false + + + + КодТНВЭДПриИзменении + КодТНВЭДНачалоВыбора + + + + Объект.ВариантОформленияПродажи + true + 1 + + + + + Объект.Parent + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа списка</v8:content> + </v8:item> + + false + + + + + Объект.ГруппаДоступа + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа доступа</v8:content> + </v8:item> + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Качество</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + Объект.Качество + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Качество</v8:content> + </v8:item> + + false + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link Товары другого качества>Товары другого качества</></v8:content> + </v8:item> + + Center + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Единицы измерения и условия хранения</v8:content> + </v8:item> + + Vertical + Collapsible + Picture + + + + Объект.ИспользоватьУпаковки + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Упаковки</v8:content> + </v8:item> + + Right + Auto + + + + ИспользоватьУпаковкиПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Упаковки:</v8:content> + </v8:item> + + style:FormTextColor + Horizontal + Usual + None + false + + + + 1 + false + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Упаковки:</v8:content> + </v8:item> + + style:FormTextColor + Vertical + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа общий набор упаковок</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + ИспользованиеУпаковок + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Упаковки</v8:content> + </v8:item> + + None + Auto + 1 + + + + 0 + + + + ru + Индивидуальный набор + + + ИндивидуальныйНабор + + + + + + + ИспользованиеУпаковокИндивидуальныйНаборПриИзменении + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link 2>Список</><link 2> </><link 2>(0)</></v8:content> + </v8:item> + + Center + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Общий набор упаковок</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + ИспользованиеУпаковок + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Упаковки</v8:content> + </v8:item> + + None + Auto + 1 + + + + 0 + + + + ru + Общий набор + + + ОбщийНабор + + + + + + + ИспользованиеУпаковокОбщийНаборПриИзменении + + + + Объект.НаборУпаковок + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Набор упаковок</v8:content> + </v8:item> + + None + + + + НаборУпаковокПриИзменении + НаборУпаковокОткрытие + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link 2>Список</><link 2> </><link 2>(0)</></v8:content> + </v8:item> + + Center + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link Прогнозы расхода упаковок>Прогнозы расхода упаковок</></v8:content> + </v8:item> + + Center + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Единица измерения поставляется в таре</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + Объект.ЕдиницаИзмерения + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Единица хранения</v8:content> + </v8:item> + + 9 + false + false + false + true + ShowInInputField + false + false + + + + ЕдиницаИзмеренияПриИзменении + + + + ЕдиницаИзмеренияКартинка + false + true + None + 10 + 1 + false + false + style:FormBackColor + + + + + Объект.ПоставляетсяВМногооборотнойТаре + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>поставляется в таре</v8:content> + </v8:item> + + Right + Auto + + + + НастроитьФормуИОбновитьКарточкуКлиент + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Тара колонки</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + 1 + false + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Тара колонки право</v8:content> + </v8:item> + + Vertical + Usual + None + false + + + + Объект.НоменклатураМногооборотнаяТара + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Многооборотная тара</v8:content> + </v8:item> + + + + + НоменклатураМногооборотнаяТараПриИзменении + + + + Объект.ХарактеристикаМногооборотнаяТара + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Характеристики тары</v8:content> + </v8:item> + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Единица для отчетов</v8:content> + </v8:item> + + style:FormTextColor + Horizontal + Usual + None + false + + + + Объект.ЕдиницаДляОтчетов + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Единица для отчетов</v8:content> + </v8:item> + + 9 + false + false + true + ShowInInputField + false + false + + + + НастроитьФормуИОбновитьКарточкуКлиент + ЕдиницаДляОтчетовНачалоВыбора + + + + Объект.КоэффициентЕдиницыДляОтчетов + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>содержит</v8:content> + </v8:item> + + 6 + + + + + Объект.ЕдиницаИзмерения + None + None + 13 + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вес</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + Объект.ВесИспользовать + Right + Auto + + + + ВесИспользоватьПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вес значения</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + Объект.ВесЗнаменатель + None + 6 + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>шт весит</v8:content> + </v8:item> + + + + + + Объект.ВесЧислитель + None + 7 + + + + + Объект.ВесЕдиницаИзмерения + None + true + + + + ВесЕдиницаИзмеренияНажатие + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вес колонки</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + 1 + false + + + + + ВесМожноУказыватьВДокументахСтрока + None + Auto + 1 + + + + 0 + + + + ru + Указан справочно + + + Справочно + + + + + 0 + + + + ru + Можно указывать количество в кг в документах + + + МожноВыбиратьВДокументах + + + + + + + ВесМожноУказыватьВДокументахПриИзменении + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Объем</v8:content> + </v8:item> + + + + ru + Группа вес + + + Horizontal + Usual + None + false + + + + Объект.ОбъемИспользовать + Right + Auto + + + + ОбъемИспользоватьПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Объем значения</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + Объект.ОбъемЗнаменатель + None + 6 + false + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>шт занимает объем</v8:content> + </v8:item> + + + + + + Объект.ОбъемЧислитель + None + 7 + false + + + + + Объект.ОбъемЕдиницаИзмерения + None + true + + + + ОбъемЕдиницаИзмеренияНажатие + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Объем</v8:content> + </v8:item> + + + + ru + Группа отладка1 + + + Horizontal + Usual + None + false + + + + 1 + false + + + + + ОбъемМожноУказыватьВДокументахСтрока + None + Auto + 1 + + + + 0 + + + + ru + Указан справочно + + + Справочно + + + + + 0 + + + + ru + Можно указывать количество в м3 в документах + + + МожноВыбиратьВДокументах + + + + + + + ОбъемМожноУказыватьВДокументахПриИзменении + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Длина</v8:content> + </v8:item> + + + + ru + Группа вес + + + Horizontal + Usual + None + false + + + + Объект.ДлинаИспользовать + Right + Auto + + + + ДлинаИспользоватьПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Длина значения</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + Объект.ДлинаЗнаменатель + None + 6 + false + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>шт имеет длину</v8:content> + </v8:item> + + + + + + Объект.ДлинаЧислитель + None + 7 + false + + + + + Объект.ДлинаЕдиницаИзмерения + None + true + + + + ДлинаЕдиницаИзмеренияНажатие + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Длина</v8:content> + </v8:item> + + + + ru + Группа отладка1 + + + Horizontal + Usual + None + false + + + + 1 + false + + + + + ДлинаМожноУказыватьВДокументахСтрока + None + Auto + 1 + + + + 0 + + + + ru + Указана справочно + + + Справочно + + + + + 0 + + + + ru + Можно указывать количество в м в документах + + + МожноВыбиратьВДокументах + + + + + + + ДлинаМожноУказыватьВДокументахПриИзменении + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа вес</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + Объект.ПлощадьИспользовать + Right + Auto + + + + ПлощадьИспользоватьПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Площадь значения</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + Объект.ПлощадьЗнаменатель + None + 6 + false + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>шт имеет площадь</v8:content> + </v8:item> + + + + + + Объект.ПлощадьЧислитель + None + 7 + false + + + + + Объект.ПлощадьЕдиницаИзмерения + None + true + + + + ПлощадьЕдиницаИзмеренияНажатие + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Площадь</v8:content> + </v8:item> + + + + ru + Группа отладка1 + + + Horizontal + Usual + None + false + + + + 1 + false + + + + + ПлощадьМожноУказыватьВДокументахСтрока + None + Auto + 1 + + + + 0 + + + + ru + Указана справочно + + + Справочно + + + + + 0 + + + + ru + Можно указывать количество в м2 в документах + + + МожноВыбиратьВДокументах + + + + + + + ПлощадьМожноУказыватьВДокументахПриИзменении + + + + + + Объект.СкладскаяГруппа + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Складская группа</v8:content> + </v8:item> + + false + true + ShowInInputField + + + + + false + 1 + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link Размещение номенклатуры по ячейкам (справочно)>Размещение номенклатуры по ячейкам (справочно)</></v8:content> + </v8:item> + + Center + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Срок годности</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + Объект.СрокГодности + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Срок годности</v8:content> + </v8:item> + + 9 + true + + + + + Объект.ЕдиницаИзмеренияСрокаГодности + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>единица измерения срока годности</v8:content> + </v8:item> + + None + 5 + false + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Финансовый учет</v8:content> + </v8:item> + + Vertical + Collapsible + Picture + + + + Объект.ГруппаАналитическогоУчета + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа аналитического учета</v8:content> + </v8:item> + + + + + + Объект.ГруппаФинансовогоУчета + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа финансового учета</v8:content> + </v8:item> + + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content><link 2>Распределение продаж по направлениям деятельности</></v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиОбработкаНавигационнойСсылки + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Регламентированный учет</v8:content> + </v8:item> + + Vertical + Collapsible + Picture + + + + Объект.ВестиУчетПоГТД + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Импортный товар (учет по ГТД)</v8:content> + </v8:item> + + Right + Auto + + + + ВестиУчетПоГТДПриИзменении + + + + Объект.ПрослеживаемыйТовар + Right + + + ru + Если установлен признак "Прослеживаемый товар", тогда должен быть указан прослеживаемый "Код ТН ВЭД" + + + Button + Auto + + + + ПрослеживаемыйТоварПриИзменении + + + + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа "Прослеживаемость в производстве"</v8:content> + </v8:item> + + None + false + + + + 1 + 1 + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отступ "Группа "Прослеживаемость в производстве""</v8:content> + </v8:item> + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>РНПТ может переноситься на продукцию +(в случае использования в производстве)</v8:content> + </v8:item> + + Right + Auto + + + + ПереноситьРНПТМатериалаПриИзменении + + + + + + Объект.ПродаетсяПоРазрешению + Right + Auto + + + + + Объект.ОблагаетсяНДСУПокупателя + Right + Auto + + + + НастроитьФормуИОбновитьКарточкуКлиент + + + + ТоварУчаствуетВДеятельностиПоСтавкеНДС0 + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Товар участвует в деятельности по ставке НДС 0%</v8:content> + </v8:item> + + Right + Button + Auto + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Если номенклатура участвует в деятельности, облагаемой НДС по ставке 0%, укажите классификацию операций. +Это позволит заполнять регламентные отчеты по НДС в разрезе кодов операций. +Конкретный код операции определяется автоматически при заполнении документа "Подтверждение нулевой ставки НДС" и зависит от следующих параметров: +отношений взаимозависимости контрагента и организации, принадлежности контрагента к офшору, +страны реализации и признака сырьевого товара. + +Для группового изменения реквизита "Операции НДС 0%" можно воспользоваться помощником в рабочем месте "<link e1cib/data/Справочник.Операции0.Форма.НастройкаКодовОпераций>Настройка кодов операций НДС 0%</>".</v8:content> + </v8:item> + + + + ТоварУчаствуетВДеятельностиПоСтавкеНДС0ПриИзменении + + + + Объект.Операции0 + false + + + + Операции0НачалоВыбора + + + + Объект.КодРаздел7ДекларацииНДС + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Операция декларации по НДС</v8:content> + </v8:item> + + false + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Код операции для заполнения раздела 7 декларации по НДС</v8:content> + </v8:item> + + + + + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Содержание драгоценных материалов</v8:content> + </v8:item> + + style:ГиперссылкаЦвет + false + false + Vertical + PopUp + None + + + ru + ЧН=0 + + + Объект.ДрагоценныеМатериалы.RowsCount + + + + UseContentHeight + true + true + true + AsFile + Объект.ДрагоценныеМатериалы + + + + + + + ДрагоценныеМатериалы + SearchStringRepresentation + + + + + + + ДрагоценныеМатериалы + ViewStatusRepresentation + + Left + + + + + + ДрагоценныеМатериалы + SearchControl + + + + + + + Объект.ДрагоценныеМатериалы.LineNumber + EnterOnInput + + + + + Объект.ДрагоценныеМатериалы.ДрагоценныйМатериал + EnterOnInput + + + + ДрагоценныеМатериалыДрагоценныйМатериалПриИзменении + + + + Объект.ДрагоценныеМатериалы.Количество + EnterOnInput + + + + + Объект.ДрагоценныеМатериалы.ЕдиницаИзмерения + EnterOnInput + + + + + Объект.ДрагоценныеМатериалы.Расположение + EnterOnInput + + + + + Объект.ДрагоценныеМатериалы.Комментарий + EnterOnInput + + + + +
+
+
+
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сведения по алкогольной продукции</v8:content> + </v8:item> + + true + Vertical + Collapsible + Picture + + + + Объект.ВидАлкогольнойПродукции + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид алкогольной продукции</v8:content> + </v8:item> + + false + true + ShowInInputField + + + + ВидАлкогольнойПродукцииПриИзменении + + + + Объект.ИмпортнаяАлкогольнаяПродукция + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Происхождение</v8:content> + </v8:item> + + true + + + + 0 + + + + ru + Россия + + + false + + + + + 0 + + + + ru + Импорт + + + true + + + + + + + + Объект.АлкогольнаяПродукцияВоВскрытойТаре + Right + ShowBottom + Auto + + + true + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>учет до вступления в силу приказа Росалкогольрегулирования от 31 мая 2023 г. N 156</v8:content> + </v8:item> + + + + АлкогольнаяПродукцияВоВскрытойТареПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Объем в декалитрах</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + Объект.ОбъемДАЛ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Объем</v8:content> + </v8:item> + + 9 + false + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>дал</v8:content> + </v8:item> + + + + ru + декалитры + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Крепость</v8:content> + </v8:item> + + Horizontal + Usual + None + false + + + + Объект.Крепость + 9 + + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>% об.</v8:content> + </v8:item> + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Общероссийские классификаторы</v8:content> + </v8:item> + + Vertical + Collapsible + Picture + + + + Объект.КодОКВЭД + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>ОКВЭД</v8:content> + </v8:item> + + + + ru + Общероссийский классификатор видов экономической деятельности + + + 12 + false + + + + КодОКВЭДПриИзменении + + + + Объект.КодОКВЭД2 + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>ОКВЭД 2</v8:content> + </v8:item> + + + + ru + Общероссийский классификатор видов экономической деятельности + + + 12 + false + true + + + + КодОКВЭД2ПриИзменении + КодОКВЭД2АвтоПодбор + КодОКВЭД2НачалоВыбора + + + + Объект.КодОКП + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>ОКП</v8:content> + </v8:item> + + + + ru + Общероссийский классификатор продукции + + + 12 + false + + + + КодОКППриИзменении + + + + Объект.КодОКПД2 + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>ОКПД2</v8:content> + </v8:item> + + + + ru + Общероссийский классификатор продукции + + + 12 + false + false + + + + КодОКПД2ПриИзменении + КодОКПД2НачалоВыбора + + + + Объект.КодПоКВПД + 12 + false + + + + + Объект.КодВидаНоменклатурнойКлассификации + Top + 23 + false + true + true + false + + + + КодВидаНоменклатурнойКлассификацииНачалоВыбора + КодВидаНоменклатурнойКлассификацииОчистка + + + + Объект.КодТРУ + 16 + false + + + + КодТРУПриИзменении + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Акцизы</v8:content> + </v8:item> + + Vertical + Collapsible + Picture + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Категории</v8:content> + </v8:item> + + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Гиперссылка перейти текущая подакцизная категория номенклатуры</v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиТекущаяПодакцизнаяКатегорияНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>История подакцизных категорий (0)</v8:content> + </v8:item> + + + + + ГиперссылкаПерейтиПодакцизнаяКатегорияНоменклатуры + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа описания акциза</v8:content> + </v8:item> + + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Описание подакцизной категории</v8:content> + </v8:item> + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа данных при копировании подакцизного товара</v8:content> + </v8:item> + + + + ru + Группа данных при копировании подакцизного товара + + + false + + + + false + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Есть подакцизные категории. Необходимо записать.</v8:content> + </v8:item> + + + + + + + + +
+
+
+
+
+
+ +
+
+
+
+ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Подсказки 1С:Бизнес-сеть</v8:content> + </v8:item> + + true + Horizontal + Usual + None + false + + +
+ + + + cfg:CatalogObject.Номенклатура + + true + true + + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Файл описания для сайта</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать индивидуальный шаблон этикетки</v8:content> + </v8:item> + + + xs:decimal + + 1 + 0 + Nonnegative + + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать индивидуальный шаблон ценника</v8:content> + </v8:item> + + + xs:decimal + + 1 + 0 + Nonnegative + + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройка использования серий</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + FunctionalOption.ИспользоватьСерииНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вес можно указывать в документах строка</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Объем можно указывать в документах строка</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Площадь можно указывать в документах строка</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Длина можно указывать в документах строка</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройка видимости формы</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Штрихкод</v8:content> + </v8:item> + + + xs:string + + 200 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использование упаковок</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + mxl:SpreadsheetDocument + + + + + + + + 33 + + + 0 + + true + + + 1 + 62 + 62 + + 1 + 1 + 7 + + + 1 + 9 + 23 + + + 2 + 1 + 7 + + + 2 + 9 + 23 + + + 3 + 1 + 7 + + + 3 + 9 + 7 + + + 4 + 1 + 7 + + + 4 + 9 + 7 + + + 6 + 1 + 13 + + + 6 + 17 + 15 + + + 7 + 1 + 11 + 13 + + + 7 + 17 + 5 + + + 7 + 23 + 9 + + + 8 + 17 + 1 + 5 + + + 8 + 23 + 9 + + + 9 + 23 + 4 + + + 10 + 17 + 1 + 5 + + + 10 + 23 + 9 + + + 11 + 23 + 6 + + + 12 + 17 + 5 + + + 12 + 23 + 9 + + + 13 + 17 + 1 + 5 + + + 13 + 23 + 1 + 9 + + + 15 + 17 + 5 + + + 15 + 23 + 9 + + + 16 + 17 + 5 + + + 16 + 23 + 9 + + + 17 + 17 + 5 + + + 17 + 23 + 9 + + + 18 + 17 + 7 + + + 20 + 1 + 2 + 13 + + + 20 + 17 + 15 + + + 21 + 17 + 1 + 5 + + + 21 + 23 + 9 + + + 22 + 23 + 5 + + + 23 + 17 + 5 + + + 23 + 23 + 9 + + + 24 + 1 + 13 + + + 24 + 17 + 5 + + + 24 + 23 + 9 + + + 25 + 1 + 5 + + + 25 + 7 + 7 + + + 25 + 17 + 5 + + + 25 + 23 + 9 + + + 26 + 1 + 5 + + + 26 + 7 + 7 + + + 26 + 17 + 5 + + + 26 + 23 + 9 + + + 27 + 1 + 5 + + + 27 + 7 + 7 + + + 27 + 17 + 5 + + + 27 + 23 + 9 + + + 28 + 1 + 5 + + + 28 + 7 + 7 + + + 28 + 17 + 5 + + + 28 + 23 + 9 + + + 29 + 17 + 5 + + + 29 + 23 + 9 + + + 30 + 1 + 13 + + + 30 + 17 + 5 + + + 30 + 23 + 9 + + + 31 + 1 + 5 + + + 31 + 7 + 7 + + + 31 + 17 + 5 + + + 31 + 23 + 9 + + + 32 + 1 + 5 + + + 32 + 7 + 7 + + + 33 + 17 + 15 + + + 34 + 1 + 13 + + + 34 + 17 + 5 + + + 34 + 23 + 9 + + + 35 + 1 + 5 + + + 35 + 7 + 7 + + + 35 + 17 + 5 + + + 35 + 23 + 9 + + + 36 + 1 + 5 + + + 36 + 7 + 7 + + + 36 + 17 + 5 + + + 36 + 23 + 9 + + + 37 + 1 + 5 + + + 37 + 7 + 7 + + + 37 + 17 + 1 + 5 + + + 37 + 23 + 9 + + + 38 + 1 + 5 + + + 38 + 7 + 7 + + + 38 + 23 + 6 + + + 39 + 1 + 5 + + + 39 + 17 + 10 + + + 40 + 1 + 5 + + + 40 + 17 + 1 + 5 + + + 40 + 23 + 1 + 9 + + + 42 + 1 + 13 + + + 42 + 17 + 1 + 5 + + + 42 + 23 + 1 + 9 + + + 43 + 1 + 8 + + + 44 + 1 + 11 + + + 44 + 17 + 13 + + + 45 + 1 + 5 + + + 45 + 17 + 7 + + + 47 + 1 + 13 + + + 47 + 17 + 1 + 5 + + + 47 + 23 + 1 + 9 + + + 48 + 1 + 5 + + + 48 + 7 + 7 + + + 49 + 1 + 5 + + + 49 + 17 + 1 + 5 + + + 49 + 23 + 1 + 9 + + + 50 + 1 + 8 + + + 51 + 17 + 5 + + + 51 + 23 + 9 + + + 52 + 1 + 13 + + + 52 + 17 + 5 + + + 52 + 23 + 9 + + + 53 + 1 + 13 + + + 54 + 2 + 12 + + + 54 + 17 + 15 + + + 55 + 17 + 2 + 2 + + + 55 + 20 + 2 + 12 + + + 56 + 1 + 13 + + + 57 + 2 + 12 + + + 58 + 17 + 1 + 2 + + + 58 + 20 + 1 + 12 + + + 60 + 17 + 2 + + + 60 + 20 + 12 + + + ВариантОформленияПродажи_Перейти_ВидНоменклатуры + + Rectangle + 13 + 14 + 23 + 32 + + + + ВидНоменклатуры + + Rectangle + 7 + 7 + 23 + 32 + + + + ГруппаДоступа + + Rectangle + 16 + 16 + 23 + 32 + + + + ГруппаУпаковки + + Rectangle + 21 + 21 + 23 + 32 + + + + ЕдиницаИзмерения + + Rectangle + 23 + 23 + 23 + 32 + + + + Качество + + Rectangle + 17 + 17 + 23 + 32 + + + + Родитель + + Rectangle + 15 + 15 + 23 + 32 + + + + Серии_Перейти_ВидНоменклатуры + + Rectangle + 12 + 12 + 23 + 32 + + + + ТипНоменклатуры_Перейти_ВидНоменклатуры + + Rectangle + 8 + 8 + 23 + 32 + + + + Характеристики_Перейти_ВидНоменклатуры + + Rectangle + 10 + 10 + 23 + 32 + + + + 72 + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизиты вида номенклатуры</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вариант комплектации номенклатуры</v8:content> + </v8:item> + + + cfg:CatalogRef.ВариантыКомплектацииНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать товарные категории</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Требуется открытие печатной формы</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Коэффициент пересчета в кубические метры</v8:content> + </v8:item> + + + xs:decimal + + 12 + 6 + Nonnegative + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Кэш для передачи сформированных наименований элемента с клиента на сервер</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Режим видимости показать только важные</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Таблица настроек реквизитов</v8:content> + </v8:item> + + + v8:ValueTable + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Имя реквизита</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Это доп реквизит</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Представление</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Путь к данным</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Свойство</v8:content> + </v8:item> + + + cfg:ChartOfCharacteristicTypesRef.ДополнительныеРеквизитыИСведения + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Значение</v8:content> + </v8:item> + + + xs:boolean + xs:string + xs:dateTime + xs:decimal + cfg:AnyIBRef + + 10 + 0 + Any + + + 0 + Variable + + + Date + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Заполнять обязательно</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Уникален</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Отображать при создании</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использование</v8:content> + </v8:item> + + + xs:boolean + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Таблица найдено</v8:content> + </v8:item> + + + v8:ValueTable + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ссылка</v8:content> + </v8:item> + + + cfg:CatalogRef.Номенклатура + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Найдено по штрихкоду</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Найдено по доп реквизитам</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Найдено по наименованию</v8:content> + </v8:item> + + + xs:boolean + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Для выбора</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Контроль уникальности перед записью проведен</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Регистрировать штрихкод при записи</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Данные файла картинки</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Данные файла HTML</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Адрес описания HTML</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройки копирования заданы</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Формировать рабочее наименование</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Формировать наименование для печати</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Есть право редактирования</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Текущий элемент выбор</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Регистрировать штрихкод</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать подключаемое оборудование</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Поддерживаемые типы подключаемого оборудования</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Параметры подключаемых команд</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать сервис работа с номенклатурой</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Изображения из сервиса</v8:content> + </v8:item> + + + v8:ValueListType + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Штрихкоды сервис</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>При получении данных картинки возникла ошибка</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Параметры создания</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Параметры копирования дополнительных данных</v8:content> + </v8:item> + + + v8:ValueListType + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Адрес временного хранилища таблица найдено</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Форма инициализирована</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид номенклатуры до изменения</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ставка НДС до изменения</v8:content> + </v8:item> + + + cfg:CatalogRef.СтавкиНДС + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Дата начала применения ставки НДС</v8:content> + </v8:item> + + + xs:dateTime + + Date + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Страна происхождения до изменения</v8:content> + </v8:item> + + + cfg:CatalogRef.СтраныМира + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Код ТН ВЭД до изменения</v8:content> + </v8:item> + + + cfg:CatalogRef.КлассификаторТНВЭД + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Наименование ОКВЭД2</v8:content> + </v8:item> + + + xs:string + + 500 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Товар участвует в деятельности по ставке НДС0</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Это базовая версия</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Совпадения номенклатуры</v8:content> + </v8:item> + + + v8:ValueTable + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура</v8:content> + </v8:item> + + + cfg:DefinedType.РаспознаваемыеРеквизитыДокументаБРД + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Индекс картинки</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Уверенность</v8:content> + </v8:item> + + + xs:string + + 4 + Variable + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизиты создаваемого объекта</v8:content> + </v8:item> + + + v8:ValueTable + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Значение</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Картинка</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Имя</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Высота картинки</v8:content> + </v8:item> + + + xs:decimal + + 3 + 0 + Nonnegative + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Синоним</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Координаты</v8:content> + </v8:item> + + + v8:ValueListType + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Искать подходящие</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Хеш картинки</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Обязательный</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Реквизиты заполнения</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Выбор групп и элементов</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Подходящие обязательное равенство</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Распознанный текст</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Артикул картинка</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Единица измерения картинка</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Наименование картинка</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ставка НДСКартинка</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид продукции ВЕТИС</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыПродукцииИС + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид продукции ГИСМТ</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыПродукцииИС + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид продукции ЕГАИС</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыПродукцииИС + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид продукции ЗЕРНО</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыПродукцииИС + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид продукции САТУРН</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыПродукцииИС + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид продукции ФГИС</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыПродукцииИС + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Виды продукции ФГИС</v8:content> + </v8:item> + + + v8ui:FormattedString + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Данные подсистем ФГИС</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Флаг ФГИС</v8:content> + </v8:item> + + + xs:boolean + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ключ видов продукции</v8:content> + </v8:item> + + + cfg:CatalogRef.КлючиВидовПродукцииИС + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Используется подсистема ВЕТИС</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Используется подсистема ГИСМТ</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Используется подсистема ЕГАИС</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Используется подсистема ЗЕРНО</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Используется подсистема САТУРН</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Требуется обновление классификатора видов продукции ИС</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Интерактивная загрузка классификаторов доступна</v8:content> + </v8:item> + + + xs:boolean + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Из присоединенных файлов</v8:content> + </v8:item> + + + + ru + Выбрать картинку из присоединенных файлов + + + ВыбратьКартинкуИзПрисоединенныхФайлов + true + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Добавить</v8:content> + </v8:item> + + + + ru + Добавить изображение + + + + StdPicture.CreateListItem + true + + ДобавитьИзображение + true + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Изменить изображение</v8:content> + </v8:item> + + + + ru + Изменить изображение + + + + StdPicture.Change + true + + ИзменитьИзображение + true + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Очистить</v8:content> + </v8:item> + + + + ru + Очистить изображение + + + + StdPicture.Delete + true + + ОчиститьИзображение + true + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Просмотреть</v8:content> + </v8:item> + + + + ru + Просмотреть изображение + + + + StdPicture.InputFieldOpen + true + + ПросмотретьИзображение + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Рассчитать объем в декалитрах</v8:content> + </v8:item> + + + + ru + Рассчитать объем в декалитрах + + + + StdPicture.MoveLeft + true + + РассчитатьОбъемВДекалитрах + Picture + true + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Заполнить</v8:content> + </v8:item> + + + + ru + Заполнить наименование для печати по шаблону + + + ЗаполнитьНаименованиеДляПечатиПоШаблону + true + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Заполнить</v8:content> + </v8:item> + + + + ru + Заполнить рабочее наименование по шаблону + + + ЗаполнитьРабочееНаименованиеПоШаблону + true + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Упаковки</v8:content> + </v8:item> + + + + ru + Упаковки + + + КомандаПерейти + + FunctionalOption.ИспользоватьУпаковкиНоменклатуры + + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Характеристики</v8:content> + </v8:item> + + + + ru + Характеристики + + + КомандаПерейти + + FunctionalOption.ИспользоватьХарактеристикиНоменклатуры + + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Совместные продажи</v8:content> + </v8:item> + + + + ru + Совместные продажи + + + КомандаПерейти + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Товары другого качества</v8:content> + </v8:item> + + + + ru + Список товаров другого качества + + + КомандаПерейти + + FunctionalOption.ИспользоватьКачествоТоваров + + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сертификаты</v8:content> + </v8:item> + + + + ru + Сертификаты + + + КомандаПерейти + + FunctionalOption.ИспользоватьСертификатыНоменклатуры + + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Размещение номенклатуры по ячейкам (справочно)</v8:content> + </v8:item> + + + + ru + Размещение номенклатуры по ячейкам (справочно) + + + КомандаПерейти + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Прогнозы расхода упаковок</v8:content> + </v8:item> + + + + ru + Прогнозы расхода упаковок + + + КомандаПерейти + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Прайс-листы поставщиков</v8:content> + </v8:item> + + + + ru + Прайс-листы поставщиков + + + КомандаПерейти + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Прайс-лист компании</v8:content> + </v8:item> + + + + ru + Прайс-лист компании + + + КомандаПерейти + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Распределение продаж по направлениям деятельности</v8:content> + </v8:item> + + + + ru + Распределение продаж по направлениям деятельности + + + КомандаПерейти + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Варианты комплектации</v8:content> + </v8:item> + + + + ru + Варианты комплектации + + + КомандаПерейти + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номенклатура с аналогичными свойствами</v8:content> + </v8:item> + + + + ru + Номенклатура с аналогичными свойствами + + + КомандаПерейти + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Проверить уникальность</v8:content> + </v8:item> + + + + ru + Проверить уникальность + + + ПроверитьУникальность + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Штрихкоды</v8:content> + </v8:item> + + + + ru + Штрихкоды + + + КомандаПерейти + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Файлы</v8:content> + </v8:item> + + + + ru + Файлы + + + КомандаПерейти + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сегменты</v8:content> + </v8:item> + + + + ru + Сегменты + + + КомандаПерейти + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Производство</v8:content> + </v8:item> + + + + ru + Производство + + + КомандаПерейти + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройка способов обеспечения потребностей</v8:content> + </v8:item> + + + + ru + Настройка способов обеспечения потребностей + + + КомандаПерейти + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройка передачи материалов в производство</v8:content> + </v8:item> + + + + ru + Настройка передачи материалов в производство + + + КомандаПерейти + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Упаковки набора</v8:content> + </v8:item> + + + + ru + Упаковки набора + + + КомандаПерейти + + FunctionalOption.ИспользоватьУпаковкиНоменклатуры + + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>История изменения цен компании</v8:content> + </v8:item> + + + + ru + Команда перейти история изменения цен компании + + + КомандаПерейти + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>История изменения цен поставщиков</v8:content> + </v8:item> + + + + ru + Команда перейти история изменения цен поставщиков + + + КомандаПерейти + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Настройка поддержания запасов</v8:content> + </v8:item> + + + + ru + Настройка поддержания запасов + + + КомандаПерейти + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Состав набора</v8:content> + </v8:item> + + + + ru + Состав набора + + + КомандаПерейти + DontUse + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Выбрать</v8:content> + </v8:item> + + + + ru + Выбрать похожую позицию номенклатуры + + + ВыбратьПохожуюПозициюНоменклатуры + + + + + + xs:boolean + + + + + + + + xs:boolean + + + + + + + InformationRegister.Ассортимент.StandardCommand.OpenByValue.Номенклатура + Auto + false + + false + + + + 0 + Auto + false + + false + + + + InformationRegister.НастройкаРаспределенияПоНаправлениямДеятельности.StandardCommand.OpenByValue.Номенклатура + Auto + false + + false + + + + InformationRegister.НоменклатураСегмента.StandardCommand.OpenByValue.Номенклатура + Auto + false + + false + + + + InformationRegister.ПрогнозыРасходаУпаковок.StandardCommand.OpenByValue.Номенклатура + Auto + false + + false + + + + 0 + Auto + false + + false + + + + InformationRegister.РазмещениеНоменклатурыПоСкладскимЯчейкам.StandardCommand.OpenByValue.Номенклатура + Auto + false + + false + + + + 0 + Auto + false + + false + + + + 0 + Auto + false + + false + + + + Report.СостояниеАссортимента.Command.СостояниеАссортимента + Auto + false + + false + + + + InformationRegister.ШтрихкодыНоменклатуры.Command.ШтрихкодыНоменклатуры + Auto + false + + false + + + + InformationRegister.ABCXYZКлассификацияНоменклатуры.Command.ABCXYZКлассификация + Auto + false + + false + + + + CommonCommand.ИнтеграцияС1СДокументооборот + Auto + false + + + CommonCommand.ЗадачиПоПредмету + Auto + false + + false + + + + CommonCommand.ИсторияИзменений + Auto + false + + false + + + + CommonCommand.МоиЗаметкиПоПредмету + Auto + false + + false + + + + Report.ТоварыНаСкладахПоСрокамГодности.Command.ПоНоменклатуре + Auto + false + + false + + + + Report.ТоварыВЯчейках.Command.ПоНоменклатуре + Auto + false + + false + + + + CommonCommand.ПрисоединенныеФайлы + Auto + false + + false + + + + InformationRegister.ЗаданияКРаспределениюЗапасов.StandardCommand.OpenByValue.Номенклатура + Auto + false + + false + + + + InformationRegister.ИзображенияЗапросовКоммерческихПредложений.StandardCommand.OpenByValue.Номенклатура + Auto + false + + false + + + + InformationRegister.ШтрихкодыНоменклатуры.StandardCommand.OpenByValue.Номенклатура + Auto + false + + false + + + + + + BusinessProcess.Задание.StandardCommand.CreateBasedOn + Auto + false + + false + + + + CommonCommand.ИнтеграцияС1СДокументооборотСоздатьБизнесПроцесс + Auto + false + + false + + + + CommonCommand.ИнтеграцияС1СДокументооборотСоздатьПисьмо + Auto + false + + false + + + + + \ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаЭлемента/Ext/Form/Module.bsl b/src/Catalogs/Номенклатура/Forms/ФормаЭлемента/Ext/Form/Module.bsl new file mode 100644 index 0000000..064070c --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаЭлемента/Ext/Form/Module.bsl @@ -0,0 +1,5624 @@ + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + УстановитьУсловноеОформление(); + + Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. + Возврат; + КонецЕсли; + + ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект); + + ОбщегоНазначенияУТ.НастроитьПодключаемоеОборудование(ЭтотОбъект); + + ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект); + + УправлениеДоступом.ПриСозданииФормыЗначенияДоступа(ЭтотОбъект); + + // СтандартныеПодсистемы.ПодключаемыеКоманды + ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект); + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + + // СтандартныеПодсистемы.БазоваяФункциональность + МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + // Конец СтандартныеПодсистемы.БазоваяФункциональность + + // ИнтеграцияС1СДокументооборотом + ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект); + // Конец ИнтеграцияС1СДокументооборотом + + //++ Локализация + Если Объект.Ссылка.Пустая() Тогда + ИнтеграцияИС.ИнициализироватьНастройкиФормыДляУстановкиКлючаВидовПродукции(ЭтотОбъект); + КонецЕсли; + //-- Локализация + + ЕстьПравоРедактирования = Справочники.ГруппыДоступаНоменклатуры.ЕстьПравоИзменения(Объект); + + ПараметрыДополнительныхСвойств = Новый Структура; + ПараметрыДополнительныхСвойств.Вставить("Объект", Объект); + ПараметрыДополнительныхСвойств.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты"); + ПараметрыДополнительныхСвойств.Вставить("СкрытьУдаленные", Ложь); + УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыДополнительныхСвойств); + + Если НЕ ЕстьПравоРедактирования + И НЕ ЗначениеЗаполнено(Параметры.ЗначениеКопирования) Тогда + Элементы.СтраницыКарточкаНоменклатуры.ОтображениеСтраниц = ОтображениеСтраницФормы.Нет; + Элементы.СтраницаРеквизитыНоменклатуры.Видимость = Ложь; + КарточкаНоменклатуры = Справочники.Номенклатура.ТабличныйДокументКарточкиНоменклатуры(Объект, Неопределено, Ложь); + Если ОбщегоНазначенияУТКлиентСервер.АвторизованВнешнийПользователь() Тогда + Элементы.ПодменюПерейти.Видимость = Ложь; + КонецЕсли; + ОбновитьКешРеквизитовВидаНоменклатуры(); + ПриСозданииНаСервереЛокализация(Отказ, СтандартнаяОбработка); + СобытияФорм.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка); + НастроитьФормуИОбновитьКарточку(); + Возврат; + КонецЕсли; + + // Запрет редактирования + ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект); + + ИспользоватьТоварныеКатегории = ПолучитьФункциональнуюОпцию("ИспользоватьТоварныеКатегории"); + ИспользоватьМногострановойУчет = ПолучитьФункциональнуюОпцию("ИспользоватьМногострановойУчет"); + ЭтоБазоваяВерсия = ПолучитьФункциональнуюОпцию("БазоваяВерсия"); + + Если Параметры.РежимВыбора = Истина Тогда + ДляВыбора = Истина; + КонецЕсли; + + Если Не ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоВидовНоменклатуры") Тогда + МассивВидов = Справочники.ВидыНоменклатуры.ПолучитьПредустановленныеВидыНоменклатуры(); + Элементы.ВидНоменклатурыПереключатель.СписокВыбора.ЗагрузитьЗначения(МассивВидов); + Элементы.ВидНоменклатурыПереключательОбязательныеПоля.СписокВыбора.ЗагрузитьЗначения(МассивВидов); + КонецЕсли; + + КоэффициентПересчетаВКубическиеМетры = + НоменклатураСервер.КоэффициентПересчетаВКубическиеМетры(Константы.ЕдиницаИзмеренияОбъема.Получить()); + + Если ЗначениеЗаполнено(Объект.Ссылка) Тогда + // Установим доступность + // ... формы в целом + ТолькоПросмотр = Не ЕстьПравоРедактирования; + + // ... полей шаблонов этикетки и ценника + Элементы.ИспользоватьИндивидуальныйШаблонЦенника.ТолькоПросмотр = Не ПравоДоступа("Редактирование", Метаданные.Справочники.Номенклатура.Реквизиты.ИспользоватьИндивидуальныйШаблонЦенника); + Элементы.ИспользоватьИндивидуальныйШаблонЭтикетки.ТолькоПросмотр = Не ПравоДоступа("Редактирование", Метаданные.Справочники.Номенклатура.Реквизиты.ИспользоватьИндивидуальныйШаблонЭтикетки); + + // ... поля картинки и кнопок его панели + ЕстьПравоРедактированияКартинки = ПравоДоступа("Редактирование", Метаданные.Справочники.Номенклатура.Реквизиты.ФайлКартинки); + Элементы.ФайлКартинки.Доступность = ЕстьПравоРедактированияКартинки; + Элементы.ДобавитьИзображение.Доступность = ЕстьПравоРедактированияКартинки; + Элементы.ИзменитьИзображение.Доступность = ЕстьПравоРедактированияКартинки; + Элементы.ОчиститьИзображение.Доступность = ЕстьПравоРедактированияКартинки; + Элементы.ВыбратьКартинкуИзПрисоединенныхФайлов.Видимость = ЕстьПравоРедактированияКартинки; + + // ... поля описание для сайта и кнопки его выбора + ЕстьПравоРедактированияОписания = ПравоДоступа("Редактирование", Метаданные.Справочники.Номенклатура.Реквизиты.ФайлОписанияДляСайта); + Элементы.ФайлОписанияДляСайта.ТолькоПросмотр = Не ЕстьПравоРедактированияОписания; + + // Режим редактирования + Элементы.СтраницыКарточкаНоменклатуры.ТекущаяСтраница = Элементы.СтраницаКарточкаНоменклатуры; + НастройкаВидимостиФормы = "СвернутьВсеГруппы"; + РежимВидимостиПоказатьТолькоВажные = Ложь; + + СкрытьРаскрытьВсеГруппы(Истина); + Элементы.ГруппаГруппировкаЛевоПраво.Видимость=Ложь; + + Элементы.НастройкаВидимостиФормы.СписокВыбора.Удалить(0); + + ОбновитьКешРеквизитовВидаНоменклатуры(); + ОбновитьЭлементыДополнительныхРеквизитов(Ложь); + НастроитьДоступностьБлокируемыхРеквизитов(); + + Иначе + + ПараметрыСозданияСтруктура = Новый Структура; + ПараметрыСозданияСтруктура.Вставить("Наименование", ""); + + Для Каждого ИспользуетсяДопЯзык Из МультиязычностьСервер.СведенияОЯзыках().Используется Цикл + Если ИспользуетсяДопЯзык.Значение = Истина Тогда + ПараметрыСозданияСтруктура.Вставить(СтрШаблон("Наименование%1", ИспользуетсяДопЯзык.Ключ), ""); + КонецЕсли; + КонецЦикла; + + ПараметрыСозданияСтруктура.Вставить("НаименованиеПолное", ""); + ПараметрыСозданияСтруктура.Вставить("ИсточникКопирования", Параметры.ЗначениеКопирования); + + ПереданныеДополнительныеПараметры = Неопределено; + Если Параметры.Свойство("ДополнительныеПараметры", ПереданныеДополнительныеПараметры) И ПереданныеДополнительныеПараметры <> Неопределено Тогда + ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(ПараметрыСозданияСтруктура, ПереданныеДополнительныеПараметры, Истина); + КонецЕсли; + + Если Параметры.Свойство("ТекстЗаполнения") + И Не ПустаяСтрока(Параметры.ТекстЗаполнения) Тогда + + ПараметрыСозданияСтруктура.Наименование = Параметры.ТекстЗаполнения; + + КонецЕсли; + + ПараметрыСоздания = Новый ФиксированнаяСтруктура(ПараметрыСозданияСтруктура); + + Если ЗначениеЗаполнено(Параметры.ЗначениеКопирования) Тогда + // Режим копирования + Элементы.СтраницыКарточкаНоменклатуры.ТекущаяСтраница = Элементы.СтраницаРеквизитыНоменклатуры; + НастройкаВидимостиФормы = "ПоказатьВсе"; + РежимВидимостиПоказатьТолькоВажные = Ложь; + + СкрытьРаскрытьВсеГруппы(Ложь); + + ЗаполнитьПоОбъектуКопирования(); + + ВидНоменклатурыДоИзменения = Объект.ВидНоменклатуры; + Иначе + // Режим создания + Элементы.СтраницыКарточкаНоменклатуры.ТекущаяСтраница = Элементы.СтраницаРеквизитыНоменклатуры; + НастройкаВидимостиФормы = "ПоказатьОсновные"; + РежимВидимостиПоказатьТолькоВажные = Истина; + + СкрытьРаскрытьВсеГруппы(Ложь); + КонецЕсли; + + ЗаполнитьПоПараметрамСоздания(); + + //++ Локализация + ЗаполнитьИОтобразитьКартинкиРеквизитов(); + //-- Локализация + + ПриСозданииЧтенииНаСервере(); + + КонецЕсли; + + ПриСозданииНаСервереЛокализация(Отказ, СтандартнаяОбработка); + + СобытияФорм.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка); + + НастроитьФормуИОбновитьКарточку(); + + ФормаИнициализирована = Истина; + +КонецПроцедуры + +&НаСервере +Процедура ПриЧтенииНаСервере(ТекущийОбъект) + + // СтандартныеПодсистемы.УправлениеДоступом + УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + // Конец СтандартныеПодсистемы.УправлениеДоступом + + УправлениеСвойствами.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + + МодификацияКонфигурацииПереопределяемый.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + // СтандартныеПодсистемы.БазоваяФункциональность + МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + // Конец СтандартныеПодсистемы.БазоваяФункциональность + + // СтандартныеПодсистемы.ПодключаемыеКоманды + ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект); + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + РаботаСНоменклатурой.ПерезаполнитьВстроенныеРеквизиты(ЭтотОбъект); + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + + //++ Локализация + ЗаполнитьКлючВидовПродукции(Объект.Ссылка); + ИнтеграцияИС.ИнициализироватьНастройкиФормыДляУстановкиКлючаВидовПродукции(ЭтотОбъект); + ИнтеграцияИС.ЗаполнитьДанныеПоКлючуВидовПродукции(ЭтотОбъект); + //-- Локализация + + ПараметрыСозданияСтруктура = Новый Структура(); + ПараметрыСозданияСтруктура.Вставить("Наименование", Объект.Наименование); + ПараметрыСозданияСтруктура.Вставить("НаименованиеПолное", Объект.НаименованиеПолное); + + ПараметрыСоздания = Новый ФиксированнаяСтруктура(ПараметрыСозданияСтруктура); + + ВариантКомплектацииНоменклатуры = НаборыВызовСервера.ВариантКомплектацииНоменклатурыПоУмолчанию( + Объект.Ссылка, + Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка()); + + ОбновитьАдресКартинки(Ложь); + + Если Не Объект.ФайлОписанияДляСайта.Пустая() Тогда + ПутьКФайлуОписанию = Строка(Объект.ФайлОписанияДляСайта); + КонецЕсли; + + Если ФормаИнициализирована Тогда + ОбновитьКешРеквизитовВидаНоменклатуры(); + ОбновитьЭлементыДополнительныхРеквизитов(); + НастроитьФормуИОбновитьКарточку(); + НастроитьДоступностьБлокируемыхРеквизитов(); + КонецЕсли; + + ВидНоменклатурыДоИзменения = Объект.ВидНоменклатуры; + + СтавкаНДСДоИзменения = Объект.СтавкаНДС; + ДатаНачалаПримененияСтавкиНДС = Неопределено; + + ПриСозданииЧтенииНаСервере(); + +КонецПроцедуры + +&НаСервере +Процедура ПриСозданииЧтенииНаСервере() + + ПреобразоватьМожноУказыватьВДокументахВСтроку("Вес"); + ПреобразоватьМожноУказыватьВДокументахВСтроку("Объем"); + ПреобразоватьМожноУказыватьВДокументахВСтроку("Площадь"); + ПреобразоватьМожноУказыватьВДокументахВСтроку("Длина"); + + Если Объект.ИспользоватьИндивидуальныйШаблонЦенника Тогда + ИспользоватьИндивидуальныйШаблонЦенника = 1; + КонецЕсли; + + Если Объект.ИспользоватьИндивидуальныйШаблонЭтикетки Тогда + ИспользоватьИндивидуальныйШаблонЭтикетки = 1; + КонецЕсли; + + Если Объект.НаборУпаковок = Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры Тогда + ИспользованиеУпаковок = "ИндивидуальныйНабор"; + Иначе + ИспользованиеУпаковок = "ОбщийНабор"; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + Если Не ЕстьПравоРедактирования Тогда + ПриОткрытииЛокализация(Отказ); + Возврат; + КонецЕсли; + + // СтандартныеПодсистемы.Свойства + УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект); + // Конец СтандартныеПодсистемы.Свойства + + МенеджерОборудованияКлиент.НачатьПодключениеОборудованиеПриОткрытииФормы(Неопределено, ЭтотОбъект, "СканерШтрихкода"); + + // СтандартныеПодсистемы.ПодключаемыеКоманды + ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект); + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + + ПриОткрытииЛокализация(Отказ); + СобытияФормКлиент.ПриОткрытии(ЭтотОбъект, Отказ); + +КонецПроцедуры + +&НаСервере +Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) + + // СтандартныеПодсистемы.Свойства + УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты); + // Конец СтандартныеПодсистемы.Свойства + СобытияФорм.ОбработкаПроверкиЗаполненияНаСервере(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты); + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) + + Если Не НастройкиКопированияЗаданы + Или Не КонтрольУникальностиПередЗаписьюПроведен Тогда + ПодготовитьДанныеДляИнтерактиваПередЗаписью(Отказ); + КонецЕсли; + + Если Отказ Тогда + + Если НастройкаВидимостиФормы = "СвернутьВсеГруппы" Тогда + НастройкаВидимостиФормы = "ПоказатьВсе"; + КонецЕсли; + + СкрытьРаскрытьВсеГруппы(Ложь); + + КонецЕсли; + + Если Не Отказ + И ЗначениеЗаполнено(Объект.Ссылка) + И Объект.СтавкаНДС <> СтавкаНДСДоИзменения + И Не ЗначениеЗаполнено(ДатаНачалаПримененияСтавкиНДС) Тогда + + Отказ = Истина; + + ЗаголовокФормыВвода = НСтр("ru = 'Ставка НДС применяется с:'"); + ОписаниеОповещения = Новый ОписаниеОповещения("УстановитьДатуНачалаПримененияСтавкиНДСЗавершение", ЭтотОбъект); + + ПоказатьВводДаты(ОписаниеОповещения, , ЗаголовокФормыВвода, ЧастиДаты.Дата); + + КонецЕсли; + + Если Не Отказ + И ПараметрыКопированияДополнительныхДанных.Количество() > 0 + И Не НастройкиКопированияЗаданы Тогда + + Отказ = Истина; + + ПараметрыФормы = Новый Структура(); + ПараметрыФормы.Вставить("ИсточникКопирования", ПараметрыСоздания.ИсточникКопирования); + ПараметрыФормы.Вставить("ПараметрыКопированияДополнительныхДанных", ПараметрыКопированияДополнительныхДанных); + + ОткрытьФорму("Справочник.Номенклатура.Форма.НастройкиПараметровКопированияДополнительныхДанных", + ПараметрыФормы, + ЭтотОбъект,,,, + Новый ОписаниеОповещения("НастройкиПараметровКопированияДополнительныхДанныхЗавершение", ЭтотОбъект), + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца + ); + + КонецЕсли; + + Если ЗначениеЗаполнено(АдресВременногоХранилищаТаблицаНайдено) Тогда + + Отказ = Истина; + + ПараметрыФормы = Новый Структура("АдресВременногоХранилищаТаблицаНайдено, ЭтоЗапись", АдресВременногоХранилищаТаблицаНайдено,Истина); + + ОткрытьФорму("Справочник.Номенклатура.Форма.КонтрольУникальности", + ПараметрыФормы, + ЭтотОбъект,,,, + Новый ОписаниеОповещения("ПроверитьУникальностьЗавершение", ЭтотОбъект), + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца + ); + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПодготовитьДанныеДляИнтерактиваПередЗаписью(Отказ) + + ПроверитьЗаполнениеОбязательныхРеквизитов(Отказ); + + Если Не Отказ Тогда + // Контроль уникальности вызываем всегда, т.к. нужно обязательно проверить уникальность рабочего наименования. + АдресВременногоХранилищаТаблицаНайдено = ПроверитьУникальностьСформироватьНаименования(Истина, Отказ); + ПараметрыКопированияДополнительныхДанных.Очистить(); + КонецЕсли; + + Если Не Отказ + И ПараметрыСоздания().Свойство("ИсточникКопирования") + И ЗначениеЗаполнено(ПараметрыСоздания().ИсточникКопирования) + И Не НастройкиКопированияЗаданы Тогда + СоответствияСкопированныхОбъектов = Новый Структура; + + Если Объект.ИспользованиеХарактеристик + = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры Тогда + СоответствияСкопированныхОбъектов.Вставить("Характеристики"); + КонецЕсли; + + ВариантПереноса = + НоменклатураСервер.ВариантПереносаНастроекПоХарактеристикам(Объект, + ПараметрыСоздания().ИсточникКопирования, + СоответствияСкопированныхОбъектов); + Если ВариантПереноса = "ВзятьИзСоответствия" Тогда + ПараметрыКопированияДополнительныхДанных.Добавить("КопироватьИндивидуальныеХарактеристики", + НСтр("ru = 'Копировать индивидуальные характеристики'"), + Истина); + КонецЕсли; + + Если Объект.ИспользоватьУпаковки + И Объект.НаборУпаковок = Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры Тогда + СоответствияСкопированныхОбъектов.Вставить("Упаковки"); + КонецЕсли; + + ВариантПереноса = + НоменклатураСервер.ВариантПереносаНастроекПоУпаковкам(Объект, + ПараметрыСоздания().ИсточникКопирования, + СоответствияСкопированныхОбъектов); + + Если ВариантПереноса = "ВзятьИзСоответствия" Тогда + ПараметрыКопированияДополнительныхДанных.Добавить("КопироватьИндивидуальныеУпаковки", + НСтр("ru = 'Копировать индивидуальные упаковки'"), + Истина); + КонецЕсли; + + Если ПолучитьФункциональнуюОпцию("ИспользоватьПодакцизныеТовары") + И УчетПодакцизныхТоваров.ЭтоПодакцизныйТовар(ПараметрыСоздания().ИсточникКопирования) + И УчетПодакцизныхТоваров.ПодакцизныеКатегорииТовара(ПараметрыСоздания().ИсточникКопирования).Количество() > 0 Тогда + СоответствияСкопированныхОбъектов.Вставить("ПодакцизныеКатегории"); + ЕдиницаИзмеренияИсточника = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПараметрыСоздания().ИсточникКопирования, "ЕдиницаИзмерения"); + + Если ЕдиницаИзмеренияИсточника = Объект.ЕдиницаИзмерения Тогда + ПараметрыКопированияДополнительныхДанных.Добавить("КопироватьПодакцизныеКатегории", + НСтр("ru = 'Копировать подакцизные категории'"), + Истина); + Иначе + ПараметрыКопированияДополнительныхДанных.Добавить("КопироватьПодакцизныеКатегорииБезКоэффициента", + НСтр("ru = 'Копировать подакцизные категории (без коэффициента)'"), + Истина); + КонецЕсли; + + КонецЕсли; + + НоменклатураЛокализация.ПараметрыКопированияДополнительныхДанных( + Объект, + ПараметрыСоздания(), + ПараметрыКопированияДополнительныхДанных, + СоответствияСкопированныхОбъектов); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) + + Если ОписаниеОповещенияОЗакрытии <> Неопределено Тогда + Если ТипЗнч(ОписаниеОповещенияОЗакрытии.ДополнительныеПараметры) = Тип("Структура") Тогда + ОписаниеОповещенияОЗакрытии.ДополнительныеПараметры.Вставить("НоменклатураСсылка", Объект.Ссылка); + КонецЕсли; + КонецЕсли; + + ПередЗакрытиемЛокализация(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) + + Если ИсточникВыбора.ИмяФормы = "РегистрСведений.СтавкиНДСНоменклатуры.Форма.ФормаНоменклатуры" Тогда + Если ВыбранноеЗначение = Истина Тогда + Прочитать(); + Иначе + НастроитьФормуИОбновитьКарточку(); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) + + ПараметрыЗаписи.Вставить("ЭтоНоваяНоменклатура", Не ЗначениеЗаполнено(Объект.Ссылка)); + + ТекущийОбъект.ИспользоватьИндивидуальныйШаблонЭтикетки = Булево(ИспользоватьИндивидуальныйШаблонЭтикетки); + ТекущийОбъект.ИспользоватьИндивидуальныйШаблонЦенника = Булево(ИспользоватьИндивидуальныйШаблонЦенника); + + ТекущийОбъект.ДополнительныеСвойства.Вставить("НаименованиеДляПечатиСформировано"); + ТекущийОбъект.ДополнительныеСвойства.Вставить("РабочееНаименованиеСформировано"); + ТекущийОбъект.ДополнительныеСвойства.Вставить("СменаВидаНоменклатурыОтработана"); + ТекущийОбъект.ДополнительныеСвойства.Вставить("РабочееНаименованиеПроверено", Истина); + + Если ЗначениеЗаполнено(ДатаНачалаПримененияСтавкиНДС) Тогда + ТекущийОбъект.ДополнительныеСвойства.Вставить("ДатаНачалаПримененияСтавкиНДС", ДатаНачалаПримененияСтавкиНДС); + КонецЕсли; + + // СтандартныеПодсистемы.БазоваяФункциональность + МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + // Конец СтандартныеПодсистемы.БазоваяФункциональность + + // Обработчик механизма "Свойства" + УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект); + + МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтотОбъект, Отказ, ТекущийОбъект, ПараметрыЗаписи); + + // ИнтеграцияС1СДокументооборотом + ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи); + // Конец ИнтеграцияС1СДокументооборотом + + ПараметрКопирования = ПараметрыКопированияДополнительныхДанных.НайтиПоЗначению("КопироватьПодакцизныеКатегории"); + Если ПараметрКопирования <> Неопределено + И ПараметрКопирования.Пометка Тогда + + УчетПодакцизныхТоваров.ПроверитьДанныеКопированияПодакцизныхКатегорий( + ПараметрыСоздания().ИсточникКопирования, Отказ); + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) + + СобытияФорм.ПриЗаписиНаСервере(ЭтотОбъект, Отказ, ТекущийОбъект, ПараметрыЗаписи); + ПриЗаписиНаСервереЛокализация(Отказ, ТекущийОбъект, ПараметрыЗаписи); + +КонецПроцедуры + +&НаСервере +Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) + + //++ Локализация + ЗаполнитьКлючВидовПродукции(Объект.Ссылка); + ИнтеграцияИС.ЗаполнитьДанныеПоКлючуВидовПродукции(ЭтотОбъект); + //-- Локализация + + // СтандартныеПодсистемы.УправлениеДоступом + УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи); + // Конец СтандартныеПодсистемы.УправлениеДоступом + + // СтандартныеПодсистемы.БазоваяФункциональность + МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + // Конец СтандартныеПодсистемы.БазоваяФункциональность + Если ЗначениеЗаполнено(ДанныеФайлаHTML) + Или ЗначениеЗаполнено(ДанныеФайлаКартинки) Тогда + + Если ЗначениеЗаполнено(ДанныеФайлаКартинки) Тогда + + ПараметрыФайлаКартинки = РаботаСФайлами.ПараметрыДобавленияФайла(); + ПараметрыФайлаКартинки.Автор = Пользователи.АвторизованныйПользователь(); + ПараметрыФайлаКартинки.ВладелецФайлов = ТекущийОбъект.Ссылка; + ПараметрыФайлаКартинки.ИмяБезРасширения = ДанныеФайлаКартинки.ИмяБезРасширения; + ПараметрыФайлаКартинки.РасширениеБезТочки = ДанныеФайлаКартинки.Расширение; + + ПрисоединенныйФайл = РаботаСФайлами.ДобавитьФайл(ПараметрыФайлаКартинки, АдресКартинки); + + ТекущийОбъект.ФайлКартинки = ПрисоединенныйФайл; + + ДанныеФайлаКартинки = Неопределено; + + КонецЕсли; + + Если ЗначениеЗаполнено(ДанныеФайлаHTML) Тогда + + ПараметрыФайлаHTML = РаботаСФайлами.ПараметрыДобавленияФайла(); + ПараметрыФайлаHTML.Автор = Пользователи.АвторизованныйПользователь(); + ПараметрыФайлаHTML.ВладелецФайлов = ТекущийОбъект.Ссылка; + ПараметрыФайлаHTML.ИмяБезРасширения = ДанныеФайлаHTML.ИмяБезРасширения; + ПараметрыФайлаHTML.РасширениеБезТочки = ДанныеФайлаHTML.Расширение; + + ПрисоединенныйФайл = РаботаСФайлами.ДобавитьФайл(ПараметрыФайлаHTML, АдресОписанияHTML); + + ТекущийОбъект.ФайлОписанияДляСайта = ПрисоединенныйФайл; + + ДанныеФайлаHTML = Неопределено; + + КонецЕсли; + + ИсточникКопирования = ?(ПараметрыСоздания().Свойство("ИсточникКопирования"), + ПараметрыСоздания().ИсточникКопирования, + Неопределено); + + ТекущийОбъект.Записать(); + + Прочитать(); + + Если ЗначениеЗаполнено(ИсточникКопирования) Тогда + ПараметрыСозданияСтруктура = Новый Структура(ПараметрыСоздания); + ПараметрыСозданияСтруктура.Вставить("ИсточникКопирования", ИсточникКопирования); + + ПараметрыСоздания = Новый ФиксированнаяСтруктура(ПараметрыСозданияСтруктура); + КонецЕсли; + + КонецЕсли; + + СоответствияСкопированныхОбъектов = Новый Структура; + + ПараметрКопирования = ПараметрыКопированияДополнительныхДанных.НайтиПоЗначению("КопироватьИндивидуальныеУпаковки"); + Если ПараметрКопирования <> Неопределено + И ПараметрКопирования.Пометка Тогда + Справочники.УпаковкиЕдиницыИзмерения.СкопироватьИерархиюУпаковок(Объект.Ссылка, + ПараметрыСоздания().ИсточникКопирования, + СоответствияСкопированныхОбъектов); + КонецЕсли; + + ПараметрКопирования = ПараметрыКопированияДополнительныхДанных.НайтиПоЗначению("КопироватьИндивидуальныеХарактеристики"); + Если ПараметрКопирования <> Неопределено + И ПараметрКопирования.Пометка Тогда + + СоответствиеХарактеристик = Новый Соответствие; + + Запрос = Новый Запрос; + Запрос.Текст = " + |ВЫБРАТЬ + | ХарактеристикиНоменклатуры.Ссылка, + | ХарактеристикиНоменклатуры.Наименование, + | ХарактеристикиНоменклатуры.НаименованиеПолное, + | ХарактеристикиНоменклатуры.ДополнительныеРеквизиты.( + | Ссылка, + | НомерСтроки, + | Свойство, + | Значение, + | ТекстоваяСтрока + | ) + |ИЗ + | Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры + |ГДЕ + | ХарактеристикиНоменклатуры.Владелец = &Владелец + | И (Не ХарактеристикиНоменклатуры.ПометкаУдаления)"; + + Запрос.УстановитьПараметр("Владелец", ПараметрыСоздания().ИсточникКопирования); + + ВыборкаХарактеристик = Запрос.Выполнить().Выбрать(); + + Пока ВыборкаХарактеристик.Следующий() Цикл + + ХарактеристикаОбъект = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент(); + + ХарактеристикаОбъект.Наименование = ВыборкаХарактеристик.Наименование; + ХарактеристикаОбъект.НаименованиеПолное = ВыборкаХарактеристик.НаименованиеПолное; + + ВыборкаДополнительныеРеквизиты = ВыборкаХарактеристик.ДополнительныеРеквизиты; // ВыборкаИзРезультатаЗапроса + + ВыборкаДопРеквизитов = ВыборкаДополнительныеРеквизиты.Выбрать(); + + Пока ВыборкаДопРеквизитов.Следующий() Цикл + + СтрокаДопРеквизитов = ХарактеристикаОбъект.ДополнительныеРеквизиты.Добавить(); + ЗаполнитьЗначенияСвойств(СтрокаДопРеквизитов,ВыборкаДопРеквизитов); + + КонецЦикла; + + ХарактеристикаОбъект.Владелец = Объект.Ссылка; + ХарактеристикаОбъект.Записать(); + + СоответствиеХарактеристик.Вставить(ВыборкаХарактеристик.Ссылка, ХарактеристикаОбъект.Ссылка); + + КонецЦикла; + + СоответствияСкопированныхОбъектов.Вставить("Характеристики", СоответствиеХарактеристик); + КонецЕсли; + + ПараметрКопирования = ПараметрыКопированияДополнительныхДанных.НайтиПоЗначению("КопироватьПодакцизныеКатегории"); + Если ПараметрКопирования <> Неопределено + И ПараметрКопирования.Пометка Тогда + + УчетПодакцизныхТоваров.СкопироватьПодакцизныеКатегории(Объект.Ссылка, + ПараметрыСоздания().ИсточникКопирования, Истина); + + КонецЕсли; + + ПараметрКопирования = ПараметрыКопированияДополнительныхДанных.НайтиПоЗначению("КопироватьПодакцизныеКатегорииБезКоэффициента"); + Если ПараметрКопирования <> Неопределено + И ПараметрКопирования.Пометка Тогда + + УчетПодакцизныхТоваров.СкопироватьПодакцизныеКатегории(Объект.Ссылка, + ПараметрыСоздания().ИсточникКопирования, Ложь); + + КонецЕсли; + + Элементы.ТекстДанныхПоНезаписаннымПодакцизнымКатегориям.Видимость = Ложь; + + НоменклатураЛокализация.СкопироватьДополнительныеДанные(Объект, + ПараметрыСоздания(), + ПараметрыКопированияДополнительныхДанных, + СоответствияСкопированныхОбъектов); + + Если Не Элементы.СтраницаКарточкаНоменклатуры.Доступность Тогда + РежимВидимостиПоказатьТолькоВажные = Ложь; + НастройкаВидимостиФормы = "ПоказатьВсе"; + НастроитьФормуИОбновитьКарточку(); + СкрытьРаскрытьВсеГруппы(Ложь); + Иначе + НастроитьФормуИОбновитьКарточку(); + КонецЕсли; + + СтавкаНДСДоИзменения = Объект.СтавкаНДС; + ДатаНачалаПримененияСтавкиНДС = Неопределено; + + ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект); + НастроитьДоступностьБлокируемыхРеквизитов(); + + ПараметрыКопированияДополнительныхДанных.Очистить(); + + СобытияФорм.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи); + МодификацияКонфигурацииПереопределяемый.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи); + + ПослеЗаписиНаСервереЛокализация(ТекущийОбъект, ПараметрыЗаписи); + +КонецПроцедуры + +&НаКлиенте +Процедура ПослеЗаписи(ПараметрыЗаписи) + + Оповестить("Запись_Номенклатура", ПараметрыЗаписи, Объект.Ссылка); + + Если ЗначениеЗаполнено(Штрихкод) Тогда + + ТекстВопроса =НСтр("ru = 'Зарегистрировать штрихкод?'"); + + Оповещение = Новый ОписаниеОповещения("ЗарегистрироватьШтрихкодЗавершение", ЭтотОбъект); + ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет, НСтр("ru = 'Регистрация штрихкода'")); + КонецЕсли; + + СобытияФормКлиент.ПослеЗаписи(ЭтотОбъект, ПараметрыЗаписи); + + МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтотОбъект, ПараметрыЗаписи); + + ПослеЗаписиЛокализация(ПараметрыЗаписи); + + // СтандартныеПодсистемы.ПодключаемыеКоманды + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда + МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент"); + МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи); + КонецЕсли; + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + // Обработчик механизма "Свойства" + Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтотОбъект, ИмяСобытия, Параметр) Тогда + ОбновитьЭлементыДополнительныхРеквизитов(); + УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект); + КонецЕсли; + + // ПодключаемоеОборудование + Если Источник = "ПодключаемоеОборудование" И ВводДоступен() Тогда + Если ИмяСобытия = "ScanData" Тогда + Если Элементы.Штрихкод.Видимость + И Элементы.Штрихкод.Доступность Тогда + Штрихкод = МенеджерОборудованияУТКлиент.ПреобразоватьДанныеСоСканераВСтруктуру(Параметр).Штрихкод; + КонецЕсли; + КонецЕсли; + КонецЕсли; + // Конец ПодключаемоеОборудование + + Если ИмяСобытия = "Запись_ВидыНоменклатуры" Тогда + + ПриЗаписиВидаНоменклатуры(); + ИначеЕсли ИмяСобытия = "Запись_ШтрихкодыНоменклатуры" + И Параметр = Объект.Ссылка Тогда + + НастроитьФормуИОбновитьКарточку(); + + ИначеЕсли ИмяСобытия = "Запись_ТоварыДругогоКачества" + И Параметр = Объект.Ссылка Тогда + + ОбработатьЗаписьТовараДругогоКачества(); + + ИначеЕсли ИмяСобытия = "Запись_ВариантыКомплектацииНоменклатуры" + И Параметр.Свойство("ВладелецКомплекта") + И Параметр.ВладелецКомплекта = Объект.Ссылка Тогда + + Если Объект.ИспользованиеХарактеристик = ПредопределенноеЗначение("Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать") + И Параметр.Свойство("Основной") + И Параметр.Основной Тогда + + ВариантКомплектацииНоменклатуры = Параметр.Комплект; + + КонецЕсли; + + НастроитьФормуИОбновитьКарточку(); + + ИначеЕсли ИмяСобытия = "Запись_ХарактеристикиНоменклатуры" + И ЗначениеЗаполнено(Источник) Тогда + + ОбработкаОповещенияЗапись_ХарактеристикиНоменклатуры(Источник); + + ИначеЕсли ИмяСобытия = "Запись_УпаковкиНоменклатурыСписок" + И (Параметр = Объект.Ссылка Или Параметр = Объект.НаборУпаковок) Тогда + + НастроитьФормуИОбновитьКарточку(); + + ИначеЕсли ИмяСобытия = "Запись_СертификатНоменклатуры" Тогда + ОбработкаОповещенияЗапись_Запись_СертификатыНоменклатурыСписок(Параметр); + ИначеЕсли ИмяСобытия = "ВключитьУдалитьВСегмент" + И Параметр = Объект.Ссылка Тогда + + НастроитьФормуИОбновитьКарточку(); + + ИначеЕсли ИмяСобытия = "Запись_СоглашенияСПоставщиками" Тогда + НастроитьФормуИОбновитьКарточку(); + ИначеЕсли ИмяСобытия = "ВыбранаУпаковкаДляОтчетов" Тогда + + Если ТипЗнч(Параметр) = Тип("Структура") + И Параметр.Свойство("Коэффициент") Тогда + Объект.КоэффициентЕдиницыДляОтчетов = Параметр.Коэффициент; + КонецЕсли; + + ИначеЕсли ИмяСобытия = "Запись_СтавкиНДСНоменклатуры" + И Источник.Номенклатура = Объект.Ссылка Тогда + + Если ТипЗнч(Параметр) = Тип("Структура") + И Параметр.Свойство("ЭтоАктуальнаяСтавка") + И Параметр.ЭтоАктуальнаяСтавка Тогда + + Прочитать(); + + Иначе + НастроитьФормуИОбновитьКарточку(); + КонецЕсли + + ИначеЕсли ИмяСобытия = "Запись_ПодакцизнаяКатегорияНоменклатуры" + И Параметр.Номенклатура = Объект.Ссылка Тогда + НастроитьФормуИОбновитьКарточку(); + ИначеЕсли ИмяСобытия = "ГиперссылкаПерейтиСформироватьПараметрыИВопрос" + И Источник = ЭтотОбъект Тогда + + ГиперссылкаПерейтиСформироватьПараметрыИВопрос(Параметр.ИмяЭлемента, Параметр.Гиперссылка); + + КонецЕсли; + + Если ИмяСобытия = "Запись_Файл" Тогда + ОбработатьЗаписиФайла(ИмяСобытия, Параметр, Источник); + КонецЕсли; + + СобытияФормКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник); + +КонецПроцедуры + +&НаСервере +Процедура ОбработкаОповещенияЗапись_Запись_СертификатыНоменклатурыСписок(Сертификат) + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ОбластиДействияСертификатовНоменклатуры.СертификатНоменклатуры + |ИЗ + | РегистрСведений.ОбластиДействияСертификатовНоменклатуры КАК ОбластиДействияСертификатовНоменклатуры + |ГДЕ + | (ОбластиДействияСертификатовНоменклатуры.Номенклатура = &Номенклатура + | ИЛИ ОбластиДействияСертификатовНоменклатуры.ВидНоменклатуры = &ВидНоменклатуры + | И ОбластиДействияСертификатовНоменклатуры.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) + | И НЕ ОбластиДействияСертификатовНоменклатуры.СертификатНоменклатуры.ПометкаУдаления + | И ОбластиДействияСертификатовНоменклатуры.СертификатНоменклатуры.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСертификатовНоменклатуры.Действующий) + | И ОбластиДействияСертификатовНоменклатуры.СертификатНоменклатуры = &СертификатНоменклатуры"; + + Запрос.УстановитьПараметр("Номенклатура", Объект.Ссылка); + Запрос.УстановитьПараметр("ВидНоменклатуры", Объект.ВидНоменклатуры); + Запрос.УстановитьПараметр("СертификатНоменклатуры", Сертификат); + + Если Не Запрос.Выполнить().Пустой() Тогда + НастроитьФормуИОбновитьКарточку(); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ОбработкаОповещенияЗапись_ХарактеристикиНоменклатуры(Характеристика) + + Владелец = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Характеристика,"Владелец"); + + Если Объект.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры + И Владелец = Объект.Ссылка + Или Объект.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры + И Владелец = Объект.ВидНоменклатуры + Или Объект.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры + И Владелец = Объект.ВладелецХарактеристик Тогда + НастроитьФормуИОбновитьКарточку(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаНавигационнойСсылки(НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + + СобытияФормКлиент.ОбработкаНавигационнойСсылки(ЭтотОбъект, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка) + // СтандартныеПодсистемы.БазоваяФункциональность + МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + // Конец СтандартныеПодсистемы.БазоваяФункциональность +КонецПроцедуры + +&НаКлиенте +Процедура НастроитьФормуИОбновитьКарточкуКлиент(Элемент) + + НастроитьФормуИОбновитьКарточку(); + +КонецПроцедуры + +&НаКлиенте +Процедура СтраницыКарточкаНоменклатурыПриСменеСтраницы(Элемент, ТекущаяСтраница) + + ОбработатьСменуСтраницКарточкиНоменклатуры(ТекущаяСтраница); + +КонецПроцедуры + +&НаКлиенте +Процедура СтраницыКарточкаНоменклатурыПриСменеСтраницыЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт + + Если РезультатВопроса = КодВозвратаДиалога.Да Тогда + Записать(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура КонтролироватьКачествоПоступившегоТовараПриИзменении(Элемент) + + НастроитьФормуИОбновитьКарточку(); + Если Не Объект.КонтролироватьКачествоПоступившегоТовара Тогда + Объект.СрокКонтроляКачества = 0; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВидНоменклатурыПриИзменении(Элемент) + + ОчиститьСообщения(); + + ВидНоменклатурыПриИзмененииНастройкаФормы(); + + СобытияФормКлиент.ПриИзмененииЭлемента(ЭтотОбъект, Элемент); + +КонецПроцедуры + +#Область НастройкаИнтеграцииСФГИС + +&НаКлиенте +Процедура ВидПродукцииГИСМТПриИзменении(Элемент) + + //++ Локализация + ИнтеграцияИСКлиент.ВидПродукцииГИСМТПриИзменении(ЭтотОбъект); + НастроитьФормуИОбновитьКарточку(); + //-- Локализация + +КонецПроцедуры + +&НаКлиенте +Процедура ФлагФГИСПриИзменении(Элемент) + + //++ Локализация + ИнтеграцияИСКлиент.ФлагФГИСПриИзменении(ЭтотОбъект); + НастроитьФормуИОбновитьКарточку(); + //-- Локализация + +КонецПроцедуры + +&НаКлиенте +Процедура ВидПродукцииФГИСПриИзменении(Элемент) + + //++ Локализация + ИнтеграцияИСКлиент.ВидПродукцииФГИСПриИзменении(ЭтотОбъект); + НастроитьФормуИОбновитьКарточку(); + //-- Локализация + +КонецПроцедуры + +&НаКлиенте +Процедура ВидыПродукцииФГИСОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + + //++ Локализация + СтандартнаяОбработка = Ложь; + + Если ТребуетсяОбновлениеКлассификатораВидовПродукции Тогда + + Если ИнтерактивнаяЗагрузкаКлассификаторовДоступна Тогда + + ОписаниеОповещения = Новый ОписаниеОповещения("Подключаемый_ПослеЗагрузкиКлассификаторов", ЭтотОбъект); + + ПараметрыОбновления = РаботаСКлассификаторамиКлиент.НовыйПараметрыОбновленияКлассификаторов(); + ПараметрыОбновления.Владелец = ЭтотОбъект; + ПараметрыОбновления.ОписаниеОповещения = ОписаниеОповещения; + ПараметрыОбновления.Идентификаторы = Новый Массив; + ПараметрыОбновления.Идентификаторы.Добавить( + ОбщегоНазначенияИСКлиентСервер.ИдентификаторКлассификатораВидовПродукцииИС()); + + РаботаСКлассификаторамиКлиент.ОбновитьКлассификаторы(ПараметрыОбновления); + + Иначе + + ПоказатьПредупреждение(, НСтр("ru = 'Интерактивная загрузка классификаторов недоступна. Обратитесь к администратору.'")); + + КонецЕсли; + + Иначе + + ПараметрыОткрытияФормы = Новый Структура; + ПараметрыОткрытияФормы.Вставить("КлючВидовПродукции", КлючВидовПродукции); + + ОткрытьФорму("ОбщаяФорма.НастройкаИнтеграцииИС", + ПараметрыОткрытияФормы,, + УникальныйИдентификатор,,, + Новый ОписаниеОповещения("НастройкаИнтеграцииСФГИСЗавершение", ЭтотОбъект), + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + + КонецЕсли; + //-- Локализация + +КонецПроцедуры + +#КонецОбласти + +&НаКлиенте +Процедура ИспользоватьУпаковкиПриИзменении(Элемент) + + Если Не Объект.ИспользоватьУпаковки Тогда + Объект.НаборУпаковок = Неопределено; + Иначе + Объект.НаборУпаковок = РеквизитыВидаНоменклатуры.НаборУпаковок; + Если Объект.НаборУпаковок = ПредопределенноеЗначение("Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры") Тогда + ИспользованиеУпаковок = "ИндивидуальныйНабор"; + КонецЕсли; + Объект.ПоставляетсяВМногооборотнойТаре = Ложь; + Объект.НоменклатураМногооборотнаяТара = Неопределено; + Объект.ХарактеристикаМногооборотнаяТара = Неопределено; + КонецЕсли; + + НастроитьФормуИОбновитьКарточку(); + + СобытияФормКлиент.ПриИзмененииЭлемента(ЭтотОбъект, Элемент); + +КонецПроцедуры + +&НаКлиенте +Процедура ИспользованиеУпаковокИндивидуальныйНаборПриИзменении(Элемент) + Объект.НаборУпаковок = ПредопределенноеЗначение("Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры"); + НастроитьФормуИОбновитьКарточку(); + СобытияФормКлиент.ПриИзмененииЭлемента(ЭтотОбъект, Элемент); +КонецПроцедуры + +&НаКлиенте +Процедура ИспользованиеУпаковокОбщийНаборПриИзменении(Элемент) + Объект.НаборУпаковок = Неопределено; + НастроитьФормуИОбновитьКарточку(); + СобытияФормКлиент.ПриИзмененииЭлемента(ЭтотОбъект, Элемент); +КонецПроцедуры + +&НаКлиенте +Процедура НаборУпаковокПриИзменении(Элемент) + + НаборУпаковокПриИзмененииСервер(); + +КонецПроцедуры + +&НаСервере +Процедура НаборУпаковокПриИзмененииСервер() + + ИндивидуальныеУпаковки = Объект.НаборУпаковок = Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры; + + Если Объект.ИспользоватьУпаковки + И Не ИндивидуальныеУпаковки Тогда + + РеквизитыОбъекта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта( + Объект.НаборУпаковок, + Новый Структура("ЕдиницаИзмерения, ЕдиницаДляОтчетов, КоэффициентЕдиницыДляОтчетов")); + НеЗаполняемыеРеквизиты = ""; + Если Не ЗначениеЗаполнено(РеквизитыОбъекта.ЕдиницаДляОтчетов) Тогда + НеЗаполняемыеРеквизиты = "ЕдиницаДляОтчетов, КоэффициентЕдиницыДляОтчетов"; + КонецЕсли; + ЗаполнитьЗначенияСвойств(Объект, РеквизитыОбъекта, , НеЗаполняемыеРеквизиты); + КонецЕсли; + + НастроитьФормуИОбновитьКарточку(); + +КонецПроцедуры + +&НаКлиенте +Процедура НаборУпаковокОткрытие(Элемент, СтандартнаяОбработка) + + Если Объект.НаборУпаковок = ПредопределенноеЗначение("Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры") Тогда + + СтандартнаяОбработка = Ложь; + + Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда + + Если Не Записать() Тогда + + ТекстСообщения = НСтр("ru='Ошибка записи элемента!'"); + ПоказатьПредупреждение(Неопределено, ТекстСообщения); + Возврат; + + КонецЕсли; + + КонецЕсли; + + Отбор = Новый Структура; + Отбор.Вставить("Владелец", Объект.Ссылка); + + ОткрытьФорму("Справочник.УпаковкиЕдиницыИзмерения.ФормаСписка", Новый Структура("Отбор", Отбор), ЭтотОбъект); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЕдиницаИзмеренияПриИзменении(Элемент) + + ЕдиницаИзмеренияПриИзмененииСервер(); + СобытияФормКлиент.ПриИзмененииЭлемента(ЭтотОбъект, Элемент); + +КонецПроцедуры + +&НаКлиенте +Процедура НоменклатураМногооборотнаяТараПриИзменении(Элемент) + + НоменклатураМногооборотнаяТараПриИзмененииСервер(); + +КонецПроцедуры + +&НаСервере +Процедура НоменклатураМногооборотнаяТараПриИзмененииСервер() + + ИспользуютсяХарактеристикиМногооборотнойТары = Справочники.Номенклатура.ХарактеристикиИспользуются(Объект.НоменклатураМногооборотнаяТара); + + СтруктураДействий = Новый Структура; + СтруктураДействий.Вставить("ПроверитьХарактеристикуПоВладельцу", Объект.ХарактеристикаМногооборотнаяТара); + + СтруктураСтроки = Новый Структура; + СтруктураСтроки.Вставить("Номенклатура", Объект.НоменклатураМногооборотнаяТара); + СтруктураСтроки.Вставить("Характеристика", Объект.ХарактеристикаМногооборотнаяТара); + СтруктураСтроки.Вставить("ХарактеристикиИспользуются", ИспользуютсяХарактеристикиМногооборотнойТары); + + ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(СтруктураСтроки, СтруктураДействий, Неопределено); + + Объект.НоменклатураМногооборотнаяТара = СтруктураСтроки.Номенклатура; + Объект.ХарактеристикаМногооборотнаяТара = СтруктураСтроки.Характеристика; + + ИспользуютсяХарактеристикиМногооборотнойТары = СтруктураСтроки.ХарактеристикиИспользуются; + + НастроитьФормуИОбновитьКарточку(); + +КонецПроцедуры + +&НаКлиенте +Процедура ЕдиницаДляОтчетовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + Если Объект.ИспользоватьУпаковки Тогда + СтандартнаяОбработка = Ложь; + + СтруктураПараметров = Новый Структура; + СтруктураПараметров.Вставить("Номенклатура", Объект.Ссылка); + СтруктураПараметров.Вставить("НаборУпаковок", Объект.НаборУпаковок); + СтруктураПараметров.Вставить("ЕдиницаХранения", Объект.ЕдиницаИзмерения); + СтруктураПараметров.Вставить("ЕдиницаДляОтчетов", Объект.ЕдиницаДляОтчетов); + + ОткрытьФорму("Справочник.УпаковкиЕдиницыИзмерения.Форма.ФормаВыбораЕдиницыДляОтчетов", + СтруктураПараметров, + Элемент, , , , , + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + КонецЕсли; +КонецПроцедуры + +&НаКлиенте +Процедура ВесИспользоватьПриИзменении(Элемент) + МераИспользоватьПриИзмененииСервер("Вес"); + СобытияФормКлиент.ПриИзмененииЭлемента(ЭтотОбъект, Элемент); +КонецПроцедуры + +&НаКлиенте +Процедура ОбъемИспользоватьПриИзменении(Элемент) + МераИспользоватьПриИзмененииСервер("Объем"); +КонецПроцедуры + +&НаКлиенте +Процедура ПлощадьИспользоватьПриИзменении(Элемент) + МераИспользоватьПриИзмененииСервер("Площадь"); +КонецПроцедуры + +&НаКлиенте +Процедура ДлинаИспользоватьПриИзменении(Элемент) + МераИспользоватьПриИзмененииСервер("Длина"); +КонецПроцедуры + +&НаКлиенте +Процедура ВесМожноУказыватьВДокументахПриИзменении(Элемент) + МераМожноУказыватьВДокументахПриИзменении("Вес"); +КонецПроцедуры + +&НаКлиенте +Процедура ОбъемМожноУказыватьВДокументахПриИзменении(Элемент) + МераМожноУказыватьВДокументахПриИзменении("Объем"); +КонецПроцедуры + +&НаКлиенте +Процедура ПлощадьМожноУказыватьВДокументахПриИзменении(Элемент) + МераМожноУказыватьВДокументахПриИзменении("Площадь"); +КонецПроцедуры + +&НаКлиенте +Процедура ДлинаМожноУказыватьВДокументахПриИзменении(Элемент) + МераМожноУказыватьВДокументахПриИзменении("Длина"); +КонецПроцедуры + +&НаКлиенте +Процедура ВесЕдиницаИзмеренияНажатие(Элемент, СтандартнаяОбработка) + ЕдиницаИзмеренияНажатие("ВесЕдиницаИзмерения", СтандартнаяОбработка, "Вес"); +КонецПроцедуры + +&НаКлиенте +Процедура ОбъемЕдиницаИзмеренияНажатие(Элемент, СтандартнаяОбработка) + ЕдиницаИзмеренияНажатие("ОбъемЕдиницаИзмерения", СтандартнаяОбработка, "Объем"); +КонецПроцедуры + +&НаКлиенте +Процедура ПлощадьЕдиницаИзмеренияНажатие(Элемент, СтандартнаяОбработка) + ЕдиницаИзмеренияНажатие("ПлощадьЕдиницаИзмерения", СтандартнаяОбработка, "Площадь"); +КонецПроцедуры + +&НаКлиенте +Процедура ДлинаЕдиницаИзмеренияНажатие(Элемент, СтандартнаяОбработка) + ЕдиницаИзмеренияНажатие("ДлинаЕдиницаИзмерения", СтандартнаяОбработка, "Длина"); +КонецПроцедуры + +&НаКлиенте +Процедура ЕдиницаИзмеренияНажатие(ИмяПоля, СтандартнаяОбработка, ИмяМеры) + + СтандартнаяОбработка = Ложь; + + ПараметрыОповещения = Новый Структура("ИмяПоля, ИмяМеры", ИмяПоля, ИмяМеры); + ОписаниеОповещения = Новый ОписаниеОповещения("ЕдиницаИзмеренияНажатиеЗавершение", ЭтотОбъект, ПараметрыОповещения); + + ИмяТипаИзмеряемойВеличины = "Перечисление.ТипыИзмеряемыхВеличин." + ИмяМеры; + ТипИзмеряемойВеличины = ПредопределенноеЗначение(ИмяТипаИзмеряемойВеличины); + + Отбор = Новый Структура("ТипИзмеряемойВеличины", ТипИзмеряемойВеличины); + ПараметрыФормы = Новый Структура("Отбор,ТекущаяСтрока", Отбор, Объект[ИмяПоля]); + + ОткрытьФорму("Справочник.УпаковкиЕдиницыИзмерения.ФормаВыбора", + ПараметрыФормы, + ЭтотОбъект, + , + , + , + ОписаниеОповещения, + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры + +&НаКлиенте +Процедура ЕдиницаИзмеренияНажатиеЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Если Результат <> Неопределено Тогда + Модифицированность = Истина; + + Объект[ДополнительныеПараметры.ИмяПоля] = Результат; + КонецЕсли; + + Мера = ДополнительныеПараметры.ИмяМеры; + СвойстваМеры = СвойстваМеры(Мера); + + ТекстПредставленияЗначения = НСтр("ru = 'Можно указывать количество в %ЕдиницаИзмеренияМеры% в документах'"); + ТекстПредставленияЗначения = СтрЗаменить(ТекстПредставленияЗначения, + "%ЕдиницаИзмеренияМеры%", + Строка(Объект[СвойстваМеры.ЕдиницаИзмерения])); + + Элементы[СвойстваМеры.МожноУказыватьВДокументах].СписокВыбора[1].Представление = ТекстПредставленияЗначения; + +КонецПроцедуры + +&НаКлиенте +Процедура ПринципалПриИзменении(Элемент) + ПринципалПриИзмененииНаСервере(); +КонецПроцедуры + +&НаКлиенте +Процедура ПроизводительПриИзменении(Элемент) + + Если ИспользоватьТоварныеКатегории Тогда + ПроизводительПриИзмененииСервер(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СтранаПроисхожденияПриИзменении(Элемент) + + ЗаполнитьРеквизитыИмпортаИПрослеживаемости(); + УстановитьДоступностьВестиУчетПоГТДЛокализация(Элементы.ВестиУчетПоГТД, Объект); + +КонецПроцедуры + +&НаКлиенте +Процедура ИспользоватьИндивидуальныйШаблонЭтикеткаПриИзменении(Элемент) + + Объект.ШаблонЭтикетки = ПредопределенноеЗначение("Справочник.ШаблоныЭтикетокИЦенников.ПустаяСсылка"); + Объект.ИспользоватьИндивидуальныйШаблонЭтикетки = (ИспользоватьИндивидуальныйШаблонЭтикетки = 1); + + НастроитьФормуИОбновитьКарточку(); + +КонецПроцедуры + +&НаКлиенте +Процедура ИспользоватьИндивидуальныйШаблонЦенникПриИзменении(Элемент) + + Объект.ШаблонЦенника = ПредопределенноеЗначение("Справочник.ШаблоныЭтикетокИЦенников.ПустаяСсылка"); + Объект.ИспользоватьИндивидуальныйШаблонЦенника = ИспользоватьИндивидуальныйШаблонЦенника = 1; + + НастроитьФормуИОбновитьКарточку(); + +КонецПроцедуры + +&НаКлиенте +Процедура АдресКартинкиНажатие(Элемент, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + Если ПустаяСтрока(АдресКартинки) Тогда + ЗаблокироватьДанныеФормыДляРедактирования(); + ПриДобавленииИзображения(); + Иначе + ТекстСообщения = НСтр("ru='Отсутствует изображение для просмотра'"); + + ПросмотретьПрисоединенныйФайл("ФайлКартинки", "АдресКартинки", ТекстСообщения); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОписаниеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияКомментария(Элемент.ТекстРедактирования, + ЭтотОбъект, + "Объект.Описание", + НСтр("ru = 'Дополнительная информация'")); + +КонецПроцедуры + +&НаКлиенте +Процедура ФайлОписанияДляСайтаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ПриДобавленииФайлаОписания(); + +КонецПроцедуры + +&НаКлиенте +Процедура ФайлОписанияДляСайтаОткрытие(Элемент, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ОчиститьСообщения(); + + ТекстСообщения = НСтр("ru='Файл описания не выбран'"); + + ПросмотретьПрисоединенныйФайл("ФайлОписанияДляСайта", "ПутьКФайлуОписанию", ТекстСообщения); + +КонецПроцедуры + +&НаКлиенте +Процедура ФайлОписанияДляСайтаОчистка(Элемент, СтандартнаяОбработка) + + ПутьКФайлуОписанию = ""; + Объект.ФайлОписанияДляСайта = ПредопределенноеЗначение("Справочник.НоменклатураПрисоединенныеФайлы.ПустаяСсылка"); + +КонецПроцедуры + +&НаКлиенте +Функция ПараметрыПереходаПоГиперссылке(ИмяЭлемента, Гиперссылка) + + ПараметрыПереходаПоГиперссылке = Новый Структура("ИмяЭлемента,Гиперссылка,ИмяФормы,НавигационнаяСсылка,ИмяГруппы,ПараметрыФормы,РежимОткрытияОкнаФормы,РежимПроверкиМодифицированности,ВладелецФормы"); + ПараметрыПереходаПоГиперссылке.ИмяЭлемента = ИмяЭлемента; + ПараметрыПереходаПоГиперссылке.Гиперссылка = Гиперссылка; + + Если ИмяЭлемента = "ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами" Тогда + + ПараметрыФормы = Новый Структура("НоменклатураФильтраПоСвойствам", Объект.Ссылка); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "Справочник.Номенклатура.Форма.ФормаСписка"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиТоварыДругогоКачества" Тогда + + ПараметрыФормы = Новый Структура("Номенклатура", Объект.Ссылка); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "РегистрСведений.ТоварыДругогоКачества.Форма.ФормаСписка"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиШтрихкодыНоменклатуры" Тогда + + ПараметрыФормы = Новый Структура("Номенклатура", Объект.Ссылка); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "РегистрСведений.ШтрихкодыНоменклатуры.ФормаСписка"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиВариантыКомплектации" + Или ИмяЭлемента = "ГиперссылкаПерейтиСоставНабора" Тогда + + ПараметрыФормы = Новый Структура("Номенклатура", Объект.Ссылка); + + Если Объект.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Набор") Тогда + + Если ЗначениеЗаполнено(ВариантКомплектацииНоменклатуры) Тогда + ПараметрыФормы = Новый Структура("Ключ", ВариантКомплектацииНоменклатуры); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "Справочник.ВариантыКомплектацииНоменклатуры.Форма.СоставНабора"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + Иначе + Если Объект.ИспользованиеХарактеристик = ПредопределенноеЗначение("Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать") Тогда + Отбор = Новый Структура; + Отбор.Вставить("Владелец", Объект.Ссылка); + Отбор.Вставить("Характеристика", ПредопределенноеЗначение("Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка")); + ПараметрыФормы = Новый Структура("Отбор", Отбор); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "Справочник.ВариантыКомплектацииНоменклатуры.Форма.СоставНабора"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + Иначе + Отбор = Новый Структура; + Отбор.Вставить("Владелец", Объект.Ссылка); + ПараметрыФормы = Новый Структура("Отбор", Отбор); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "Справочник.ХарактеристикиНоменклатуры.ФормаСписка"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + КонецЕсли; + КонецЕсли; + + Иначе + Отбор = Новый Структура; + Отбор.Вставить("Владелец", Объект.Ссылка); + ПараметрыФормы = Новый Структура("Отбор", Отбор); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "Справочник.ВариантыКомплектацииНоменклатуры.Форма.ФормаСписка"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + КонецЕсли; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиХарактеристикиНоменклатуры" Тогда + + Отбор = Новый Структура; + Отбор.Вставить("Владелец", Объект.Ссылка); + ПараметрыФормы = Новый Структура("Отбор", Отбор); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "Справочник.ХарактеристикиНоменклатуры.ФормаСписка"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиУпаковкиНоменклатуры" Тогда + + Отбор = Новый Структура; + Отбор.Вставить("Владелец", Объект.Ссылка); + ПараметрыФормы = Новый Структура("Отбор", Отбор); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "Справочник.УпаковкиЕдиницыИзмерения.ФормаСписка"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиУпаковкиНабора" Тогда + + Отбор = Новый Структура; + Отбор.Вставить("Владелец", Объект.НаборУпаковок); + ПараметрыФормы = Новый Структура("Отбор", Отбор); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "Справочник.УпаковкиЕдиницыИзмерения.ФормаСписка"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиПрогнозыРасходаУпаковок" Тогда + + ПараметрыФормы = Новый Структура("Номенклатура", Объект.Ссылка); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "РегистрСведений.ПрогнозыРасходаУпаковок.Форма.ФормаСписка"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиРазмещениеНоменклатуры" Тогда + + Отбор = Новый Структура("Номенклатура", Объект.Ссылка); + ПараметрыФормы = Новый Структура("Отбор", Отбор); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "РегистрСведений.РазмещениеНоменклатурыПоСкладскимЯчейкам.Форма.ФормаСписка"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиСертификатыНоменклатуры" Тогда + + ПараметрыФормы = Новый Структура("Номенклатура", Объект.Ссылка); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "Справочник.СертификатыНоменклатуры.Форма.ФормаСпискаКонтекст"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиФайлы" Тогда + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ВладелецФайла", Объект.Ссылка); + ПараметрыФормы.Вставить("ТолькоПросмотр", ТолькоПросмотр); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "Обработка.РаботаСФайлами.Форма.ПрисоединенныеФайлы"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиРаспределениеПродажПоНаправлениямДеятельности" Тогда + + Отбор = Новый Структура("Номенклатура", Объект.Ссылка); + ПараметрыФормы = Новый Структура("Отбор", Отбор); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "РегистрСведений.НастройкаРаспределенияПоНаправлениямДеятельности.ФормаСписка"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиСовместныеПродажи" Тогда + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("Ключ", Объект.Ссылка); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "Справочник.Номенклатура.Форма.СовместныеПродажи"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиСегменты" Тогда + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("Номенклатура", Объект.Ссылка); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "РегистрСведений.НоменклатураСегмента.Форма.СегментыНоменклатурыПараметрическая"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиНастройкаСпособовОбеспеченияПотребностей" Тогда + + Отбор = Новый Структура; + Отбор.Вставить("Номенклатура", Объект.Ссылка); + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("Отбор", Отбор); + ПараметрыФормы.Вставить("Источник", "Номенклатура"); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "Обработка.НастройкаСпособовОбеспеченияПотребностей.Форма.Форма"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиНастройкаПоддержанияЗапасов" Тогда + + Отбор = Новый Структура; + Отбор.Вставить("Номенклатура", Объект.Ссылка); + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("Отбор", Отбор); + ПараметрыФормы.Вставить("Источник", "Номенклатура"); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "Обработка.НастройкаПоддержанияЗапасов.Форма.Форма"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиПрайсЛистКомпании" Тогда + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("Номенклатура", Объект.Ссылка); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "Обработка.ПрайсЛист.Форма.Форма"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиПрайсЛистыПоставщиков" Тогда + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("Номенклатура", Объект.Ссылка); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "Обработка.ПрайсЛистПоставщика.Форма.Форма"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиИсторияИзмененияЦенКомпании" Тогда + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("Номенклатура", Объект.Ссылка); + + Если ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25() Тогда + ПараметрыПереходаПоГиперссылке.ИмяФормы = "РегистрСведений.ЦеныНоменклатуры25.Форма.ФормаСписка"; + Иначе + ПараметрыПереходаПоГиперссылке.ИмяФормы = "РегистрСведений.ЦеныНоменклатуры.Форма.ФормаСписка"; + КонецЕсли; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиИсторияИзмененияЦенПоставщиков" Тогда + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("Номенклатура", Объект.Ссылка); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "РегистрСведений.ЦеныНоменклатурыПоставщиков.Форма.ФормаСписка"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиСоглашения" Тогда + + ЗначенияЗаполненияСоглашений = Новый Структура; + ЗначенияЗаполненияСоглашений.Вставить("Партнер", Объект.Принципал); + ЗначенияЗаполненияСоглашений.Вставить("Контрагент", Объект.Контрагент); + ЗначенияЗаполненияСоглашений.Вставить("Статус", ПредопределенноеЗначение("Перечисление.СтатусыСоглашенийСПоставщиками.Действует")); + ЗначенияЗаполненияСоглашений.Вставить("ХозяйственнаяОперация", ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОказаниеАгентскихУслуг")); + + Если Гиперссылка = "СоглашенияВыбрать" + Или Гиперссылка = "СписокСоглашенийПоНоменклатуре" Тогда + + ПартнерыДляОтбора = Новый Массив; + ПартнерыДляОтбора.Добавить(ПредопределенноеЗначение("Справочник.Партнеры.ПустаяСсылка")); + ПартнерыДляОтбора.Добавить(Объект.Принципал); + + КонтрагентыДляОтбора = Новый Массив; + КонтрагентыДляОтбора.Добавить(ПредопределенноеЗначение("Справочник.Контрагенты.ПустаяСсылка")); + КонтрагентыДляОтбора.Добавить(Объект.Контрагент); + + ОтборСоглашений = Новый Структура; + ОтборСоглашений.Вставить("Партнер", Новый ФиксированныйМассив(ПартнерыДляОтбора)); + ОтборСоглашений.Вставить("Контрагент", Новый ФиксированныйМассив(КонтрагентыДляОтбора)); + ОтборСоглашений.Вставить("ХозяйственнаяОперация", ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОказаниеАгентскихУслуг")); + + ОтборПользовательский = Новый Структура; + ОтборПользовательский.Вставить("Состояние", ПредопределенноеЗначение("Перечисление.СостоянияСоглашенийСПоставщиками.Действует")); + + ПараметрыСозданияСоглашения = Новый Структура; + Если Гиперссылка = "СоглашенияВыбрать" Тогда + ЗначенияЗаполненияСоглашений.Вставить("АгентскаяУслугаНоменклатура", Объект.Ссылка); + + ПараметрыСозданияСоглашения.Вставить("ДанныеУслуги", ЗначенияЗаполненияСоглашений); + КонецЕсли; + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("Отбор", ОтборСоглашений); + ПараметрыФормы.Вставить("СтруктураБыстрогоОтбора", ОтборПользовательский); + ПараметрыФормы.Вставить("ВключитьОтборПоАгентскойУслуге", Гиперссылка = "СписокСоглашенийПоНоменклатуре"); + ПараметрыФормы.Вставить("АгентскаяУслугаНоменклатура", Объект.Ссылка); + ПараметрыФормы.Вставить("ДополнительныеПараметры", ПараметрыСозданияСоглашения); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "Справочник.СоглашенияСПоставщиками.ФормаСписка"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли Гиперссылка = "СоглашенияСоздать" Тогда + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ЗначенияЗаполнения", ЗначенияЗаполненияСоглашений); + ПараметрыФормы.Вставить("АгентскаяУслугаНоменклатура", Объект.Ссылка); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "Справочник.СоглашенияСПоставщиками.ФормаОбъекта"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + ИначеЕсли Гиперссылка = "СписокСоглашенийПоХарактеристикам" Тогда + + ПараметрыФормы = Новый Структура("Номенклатура", Объект.Ссылка); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "Справочник.Номенклатура.Форма.СоглашенияСПоставщикамиПоХарактеристикам"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + + КонецЕсли; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиДрагоценныеМатериалы" Тогда + + ПараметрыПереходаПоГиперссылке.ИмяГруппы = "ГиперссылкаПерейтиДрагоценныеМатериалы"; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиСтавкиНДСНоменклатуры" Тогда + + ПараметрыФормы = Новый Структура("Номенклатура", Объект.Ссылка); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "РегистрСведений.СтавкиНДСНоменклатуры.Форма.ФормаНоменклатуры"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + ПараметрыПереходаПоГиперссылке.РежимОткрытияОкнаФормы = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца; + + ПараметрыПереходаПоГиперссылке.ИмяГруппы = "ГиперссылкаПерейтиДрагоценныеМатериалы"; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиПодакцизныеКатегорииНоменклатуры" Тогда + + ПараметрыФормы = Новый Структура("Номенклатура", Объект.Ссылка); + + ПараметрыПереходаПоГиперссылке.ИмяФормы = "РегистрСведений.КатегорииПодакцизныхТоваров.Форма.ФормаНоменклатуры"; + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + ПараметрыПереходаПоГиперссылке.РежимОткрытияОкнаФормы = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца; + + ИначеЕсли ИмяЭлемента = "ГиперссылкаПерейтиТекущаяПодакцизнаяКатегорияНоменклатуры" Тогда + + ПараметрыТекущейПодакцизнойКатегории = ПолучитьДанныеДляПереходаКТекущейПодакцизнойКатегории(); + Если ПараметрыТекущейПодакцизнойКатегории = Неопределено Тогда + Если Не ЭтоБазоваяВерсия Тогда + ПараметрыФормы = Новый Структура("Номенклатура, ТекущийПериод", Объект.Ссылка, Истина); + ПараметрыПереходаПоГиперссылке.ИмяФормы = "РегистрСведений.КатегорииПодакцизныхТоваров.Форма.ФормаНоменклатуры"; + Иначе + ПараметрыОтбора = Новый Структура("Номенклатура", Объект.Ссылка); + ПараметрыФормы = Новый Структура("ЗначенияЗаполнения", ПараметрыОтбора); + ПараметрыПереходаПоГиперссылке.ИмяФормы = "РегистрСведений.КатегорииПодакцизныхТоваров.Форма.ФормаЗаписи"; + КонецЕсли; + Иначе + ПараметрыМассив = Новый Массив; + ПараметрыМассив.Добавить(ПараметрыТекущейПодакцизнойКатегории); + КлючЗаписиРегистра = Новый("РегистрСведенийКлючЗаписи.КатегорииПодакцизныхТоваров", ПараметрыМассив); + ПараметрыФормы = Новый Структура("Ключ", КлючЗаписиРегистра); + ПараметрыПереходаПоГиперссылке.ИмяФормы = "РегистрСведений.КатегорииПодакцизныхТоваров.Форма.ФормаЗаписи"; + КонецЕсли; + + ПараметрыПереходаПоГиперссылке.ПараметрыФормы = ПараметрыФормы; + ПараметрыПереходаПоГиперссылке.РежимОткрытияОкнаФормы = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца; + + КонецЕсли; + + НоменклатураКлиентЛокализация.ПараметрыПереходаПоГиперссылке(ЭтотОбъект, ПараметрыПереходаПоГиперссылке, ИмяЭлемента, Гиперссылка); + + Если ПараметрыПереходаПоГиперссылке.РежимОткрытияОкнаФормы = Неопределено Тогда + ПараметрыПереходаПоГиперссылке.РежимОткрытияОкнаФормы = РежимОткрытияОкнаФормы.Независимый; + КонецЕсли; + + Возврат ПараметрыПереходаПоГиперссылке; + +КонецФункции + +&НаСервере +Функция ПолучитьДанныеДляПереходаКТекущейПодакцизнойКатегории() + + ПередаваемыеПараметры = Неопределено; + ТаблицаКатегорий = УчетПодакцизныхТоваров.ПолучитьИсториюКатегорийНоменклатуры(Объект.Ссылка,, ТекущаяДатаСеанса()); + Если ТаблицаКатегорий.Количество() = 1 Тогда + ПередаваемыеПараметры = Новый Структура("Период, Номенклатура, Страна", ТаблицаКатегорий[0].Период, Объект.Ссылка, ТаблицаКатегорий[0].Страна); + КонецЕсли; + + Возврат ПередаваемыеПараметры; + +КонецФункции + +&НаСервере +Функция ПредставлениеВсплывающейГруппы(ИмяГруппы) + + Если ИмяГруппы = "ГиперссылкаПерейтиДрагоценныеМатериалы" Тогда + ТабличныйДокумент = ОбщегоНазначенияУТ.ТабличныйДокументИзТаблицыЗначений( + Объект.ДрагоценныеМатериалы.Выгрузить(), + Истина, + Метаданные.Справочники.Номенклатура.ТабличныеЧасти.ДрагоценныеМатериалы); + Иначе + ТекстИсключения = НСтр("ru = 'Не определено действие по гиперссылке для режима, когда у пользователя нет прав на редактирование.'"); + + ВызватьИсключение ТекстИсключения; + КонецЕсли; + + Возврат ТабличныйДокумент; + +КонецФункции + +&НаКлиенте +Процедура ГиперссылкаПерейтиСформироватьПараметрыИВопрос(ИмяЭлемента, Гиперссылка) + + ОчиститьСообщения(); + + ПараметрыПереходаПоГиперссылке = ПараметрыПереходаПоГиперссылке(ИмяЭлемента, Гиперссылка); + + Если Не ЗначениеЗаполнено(Объект.Ссылка) + Или (Модифицированность И ПараметрыПереходаПоГиперссылке.РежимПроверкиМодифицированности <> "НеПроверять") Тогда + + ТекстВопроса = Нстр("ru = 'Данные еще не записаны. + |Переход к дополнительной информации возможен только после записи элемента. + |Записать элемент?'"); + + ПоказатьВопрос(Новый ОписаниеОповещения("ГиперссылкаПерейтиВопросЗавершение", ЭтотОбъект, ПараметрыПереходаПоГиперссылке), ТекстВопроса, РежимДиалогаВопрос.ДаНет); + Возврат; + + КонецЕсли; + + ГиперссылкаПерейти(ПараметрыПереходаПоГиперссылке); + +КонецПроцедуры + +&НаКлиенте +Процедура ГиперссылкаПерейтиВопросЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт + Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + + Попытка + ЭлементЗаписан = Записать(); + Исключение + Возврат; + КонецПопытки; + + Если Не ЭлементЗаписан Тогда + Возврат; + КонецЕсли; + + ПараметрыПереходаПоГиперссылке = ПараметрыПереходаПоГиперссылке(ДополнительныеПараметры.ИмяЭлемента, + ДополнительныеПараметры.Гиперссылка); + ГиперссылкаПерейти(ПараметрыПереходаПоГиперссылке); +КонецПроцедуры + +&НаКлиенте +Процедура ГиперссылкаПерейтиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + ГиперссылкаПерейтиСформироватьПараметрыИВопрос(Элемент.Имя, НавигационнаяСсылкаФорматированнойСтроки); + +КонецПроцедуры + +&НаКлиенте +Процедура ГиперссылкаПерейтиТекущаяПодакцизнаяКатегорияНоменклатуры(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + ГиперссылкаПерейтиСформироватьПараметрыИВопрос(Элемент.Имя, НавигационнаяСсылкаФорматированнойСтроки); + +КонецПроцедуры + +&НаКлиенте +Процедура ГиперссылкаПерейтиПодакцизнаяКатегорияНоменклатуры(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + ГиперссылкаПерейтиСформироватьПараметрыИВопрос(Элемент.Имя, НавигационнаяСсылкаФорматированнойСтроки); + +КонецПроцедуры + +&НаКлиенте +Процедура ГиперссылкаПерейти(ПараметрыПереходаПоГиперссылке) + + // &ЗамерПроизводительности + ОценкаПроизводительностиКлиент.НачатьЗамерВремени(Истина, + "Справочник.Номенклатура.Форма.ФормаЭлемента.Команда." + ПараметрыПереходаПоГиперссылке.ИмяЭлемента); + + Если ПараметрыПереходаПоГиперссылке.ИмяФормы <> Неопределено Тогда + Если ПараметрыПереходаПоГиперссылке.ИмяФормы = "Справочник.Номенклатура.Форма.ФормаСписка" Тогда + Оповестить("ФильтрПоАналогичнымСвойствам_Номенклатура", Объект.Ссылка, Объект.Ссылка); + КонецЕсли; + + ОткрытьФорму( + ПараметрыПереходаПоГиперссылке.ИмяФормы, + ПараметрыПереходаПоГиперссылке.ПараметрыФормы, + ПараметрыПереходаПоГиперссылке.ВладелецФормы, + УникальныйИдентификатор,,,, + ПараметрыПереходаПоГиперссылке.РежимОткрытияОкнаФормы); + + ИначеЕсли ПараметрыПереходаПоГиперссылке.НавигационнаяСсылка <> Неопределено Тогда + ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку(ПараметрыПереходаПоГиперссылке.НавигационнаяСсылка); + ИначеЕсли ПараметрыПереходаПоГиперссылке.ИмяГруппы <> Неопределено Тогда + Если ЕстьПравоРедактирования Тогда + Элементы.СтраницыКарточкаНоменклатуры.ТекущаяСтраница = Элементы.СтраницаРеквизитыНоменклатуры; + РазвернутьСворачиваемуюГруппу(ПараметрыПереходаПоГиперссылке.ИмяГруппы); + Элементы[ПараметрыПереходаПоГиперссылке.ИмяГруппы].Показать(); + Иначе + ТабличныйДокумент = ПредставлениеВсплывающейГруппы(ПараметрыПереходаПоГиперссылке.ИмяГруппы); + ТабличныйДокумент.Показать(Элементы[ПараметрыПереходаПоГиперссылке.ИмяГруппы].Заголовок); + КонецЕсли; + Иначе + СтандартнаяОбработка = Истина; + НоменклатураКлиентЛокализация.ГиперссылкаПерейти( + ЭтотОбъект, + ПараметрыПереходаПоГиперссылке, + СтандартнаяОбработка); + Если СтандартнаяОбработка Тогда + ТекстИсключения = НСтр("ru = 'Не определено действие по гиперссылке.'"); + ВызватьИсключение ТекстИсключения; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура НаименованиеПриИзменении(Элемент) + + ПересчитатьНеобходимостьФормированияНаименований(ЭтотОбъект); + ПараметрыСозданияСтруктура = Новый Структура(ПараметрыСоздания); + ПараметрыСозданияСтруктура.Наименование = Объект.Наименование; + ПараметрыСоздания = Новый ФиксированнаяСтруктура(ПараметрыСозданияСтруктура); + +КонецПроцедуры + +&НаКлиенте +Процедура НаименованиеПолноеПриИзменении(Элемент) + + ПересчитатьНеобходимостьФормированияНаименований(ЭтотОбъект); + ПараметрыСозданияСтруктура = Новый Структура(ПараметрыСоздания); + ПараметрыСозданияСтруктура.НаименованиеПолное = Объект.НаименованиеПолное; + ПараметрыСоздания = Новый ФиксированнаяСтруктура(ПараметрыСозданияСтруктура); + +КонецПроцедуры + +&НаКлиенте +Процедура ПроверитьУникальность(Команда) + ОчиститьСообщения(); + + Отказ = Ложь; + АдресВременногоХранилищаТаблицаНайдено = ПроверитьУникальностьСервер(Отказ); + + Если Не Отказ Тогда + Если ЗначениеЗаполнено(АдресВременногоХранилищаТаблицаНайдено) Тогда + ПараметрыФормы = Новый Структура("АдресВременногоХранилищаТаблицаНайдено, Запись", АдресВременногоХранилищаТаблицаНайдено, Ложь); + ОткрытьФорму("Справочник.Номенклатура.Форма.КонтрольУникальности", + ПараметрыФормы, + ЭтотОбъект, + , + , + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца, + Новый ОписаниеОповещения("ПроверитьУникальностьЗавершение", + ЭтотОбъект), + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + Иначе + ПоказатьПредупреждение(Неопределено,НСтр("ru='Позиция номенклатуры уникальна'")); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Функция ПроверитьУникальностьСервер(Отказ) + + ПроверитьЗаполнениеОбязательныхРеквизитов(Отказ); + + Если Не Отказ Тогда + АдресВременногоХранилищаТаблицаНайдено = ПроверитьУникальностьСформироватьНаименования(Ложь); + Иначе + АдресВременногоХранилищаТаблицаНайдено = ""; + КонецЕсли; + + Возврат АдресВременногоХранилищаТаблицаНайдено; + +КонецФункции + +// Параметры: +// Результат - см. НоменклатураКлиент.НовыйРезультатОбработкиЗавершения +// ДополнительныеПараметры - Неопределено - +&НаКлиенте +Процедура ПроверитьУникальностьЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + Если Результат.Действие = "ВыбратьСуществующую" Тогда + + ПараметрыОповещения = Новый Структура("ЭтоНоваяНоменклатура", Ложь); + Оповестить("Запись_Номенклатура",ПараметрыОповещения,Результат.Ссылка); + + Если ДляВыбора Тогда + ОповеститьОВыборе(Результат.Ссылка); + Иначе + Модифицированность = Ложь; + Закрыть(); + КонецЕсли; + + ИначеЕсли Результат.Действие = "ПродолжитьЗапись" Тогда + + КонтрольУникальностиПередЗаписьюПроведен = Истина; + + Попытка + ЭлементЗаписан = Записать(); + Исключение + КонтрольУникальностиПередЗаписьюПроведен = Ложь; + Возврат; + КонецПопытки; + + Если Не ЭлементЗаписан Тогда + КонтрольУникальностиПередЗаписьюПроведен = Ложь; + Возврат; + КонецЕсли; + + Если ДляВыбора Тогда + ОповеститьОВыборе(Объект.Ссылка); + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура КарточкаНоменклатурыОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) + + // &ЗамерПроизводительности + ОценкаПроизводительностиКлиент.НачатьЗамерВремени(Истина, + "Справочник.Номенклатура.ФормаЭлемента.Элемент.КарточкаНоменклатуры.ОбработкаРасшифровки"); + + Если Не ЗначениеЗаполнено(Расшифровка) Тогда + Возврат; + КонецЕсли; + + СтандартнаяОбработка = Ложь; + + Если Не Элементы.ГруппаГруппировкаЛевоПраво.Видимость Тогда + Элементы.ГруппаГруппировкаЛевоПраво.Видимость=Истина; + КонецЕсли; + + Если ТипЗнч(Расшифровка) = Тип("Строка") + Или ТипЗнч(Расшифровка) = ТипЗнч(Расшифровка) = Тип("ФорматированнаяСтрока") Тогда + ИмяЭлемента = Расшифровка; + Гиперссылка = ""; + ИначеЕсли ТипЗнч(Расшифровка) = Тип("Структура") Тогда + ИмяЭлемента = Расшифровка.ИмяЭлемента; + Гиперссылка = Расшифровка.Гиперссылка; + Иначе + ТекстИсключения = НСтр("ru = 'Неподдерживаемый тип параметры расшифровки.'"); + ВызватьИсключение ТекстИсключения; + КонецЕсли; + + Если ЭлементПереходаКСвязанномуСписку(Элементы, ИмяЭлемента) Тогда + ГиперссылкаПерейтиСформироватьПараметрыИВопрос(ИмяЭлемента, Гиперссылка); + ИначеЕсли Элементы.Найти(ИмяЭлемента) <> Неопределено Тогда + Если ЕстьПравоРедактирования Тогда + Элементы.СтраницыКарточкаНоменклатуры.ТекущаяСтраница = Элементы.СтраницаРеквизитыНоменклатуры; + + РазвернутьСворачиваемуюГруппу(ИмяЭлемента); + ПереключениеСтраницКарточкиНоменклатуры(); + + ТекущийЭлементВыбор = ИмяЭлемента; + ПодключитьОбработчикОжидания("УстановитьАктивностьТекущийЭлемент",0.0001,Истина); + Иначе + Если Объект.Свойство(ИмяЭлемента) Тогда + Если ТипЗнч(Объект[ИмяЭлемента]) <> Тип("Строка") + И ТипЗнч(Объект[ИмяЭлемента]) <> Тип("Булево") + И ЗначениеЗаполнено(Объект[ИмяЭлемента]) Тогда + ПоказатьЗначение(,Объект[ИмяЭлемента]); + КонецЕсли; + КонецЕсли; + КонецЕсли; + Иначе + ТекстИсключения = НСтр("ru = 'Необрабатываемый тип параметр расшифровки.'"); + ВызватьИсключение ТекстИсключения; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьАктивностьТекущийЭлемент() + ТекущийЭлемент = Элементы[ТекущийЭлементВыбор]; +КонецПроцедуры + +&НаКлиенте + +&НаКлиенте +Процедура КодВидаНоменклатурнойКлассификацииОчистка(Элемент, СтандартнаяОбработка) + + Объект.НаименованиеВидаНоменклатурнойКлассификации = ""; + +КонецПроцедуры + +&НаКлиенте +Процедура КодТНВЭДПриИзменении(Элемент) + + ЗаполнитьРеквизитыИмпортаИПрослеживаемости(); + УстановитьДоступностьВестиУчетПоГТДЛокализация(Элементы.ВестиУчетПоГТД, Объект); + + //++ Локализация + ПриИзмененииТНВЭДиОКПД2(); + //-- Локализация + + НастроитьФормуИОбновитьКарточку(); + +КонецПроцедуры + +&НаКлиенте +Процедура КодТНВЭДНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СобытияФормКлиент.НачалоВыбораЭлемента(ЭтотОбъект, Элемент, ДанныеВыбора, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура ВестиУчетПоГТДПриИзменении(Элемент) + + УстановитьДоступностьВестиУчетПоГТДЛокализация(Элементы.ВестиУчетПоГТД, Объект); + +КонецПроцедуры + +&НаКлиенте +Процедура ПрослеживаемыйТоварПриИзменении(Элемент) + + ПрослеживаемыйТоварПриИзмененииНаКлиенте(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПрослеживаемыйТоварПриИзмененииНаКлиенте() + + НоменклатураКлиентСерверЛокализация.ЗаполнитьВестиУчетПоГТД(Объект); + ОбработатьЛогикуСвязиПрослеживаемыйТоварИКодТНВЭДЛокализация(); + НастроитьФормуИОбновитьКарточку(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПереноситьРНПТМатериалаПриИзменении(Элемент) + + + Возврат; + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПриИзмененииЭлемента(Элемент) + СобытияФормКлиент.ПриИзмененииЭлемента(ЭтотОбъект, Элемент); +КонецПроцедуры + +&НаКлиенте +Процедура КодОКВЭДПриИзменении(Элемент) + + //++ Локализация + НастроитьПодсказкуПоляКлассификатора(Элемент.Имя, Объект.КодОКВЭД); + //-- Локализация + Возврат; + +КонецПроцедуры + +&НаКлиенте +Процедура КодОКВЭД2ПриИзменении(Элемент) + + //++ Локализация + КодОКВЭД2ПриИзмененииСервер(); + //-- Локализация + Возврат; + +КонецПроцедуры + +&НаКлиенте +Процедура КодОКВЭД2НачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) + + //++ Локализация + СтандартнаяОбработка = Ложь; + + ОбработкаЗакрытия = Новый ОписаниеОповещения( + "ПодборИзОКВЭДЗавершение", + ЭтотОбъект); + + ПараметрыФормы = КлассификаторОКВЭДКлиент.НовыйПараметрыВыбора(); + ПараметрыФормы.ОписаниеОповещенияОЗакрытии = ОбработкаЗакрытия; + ПараметрыФормы.Разрешенные = Истина; + ПараметрыФормы.ТекущийКод = Объект.КодОКВЭД2; + + КлассификаторОКВЭДКлиент.Выбрать(ПараметрыФормы); + //-- Локализация + Возврат; + +КонецПроцедуры + +&НаКлиенте +Процедура КодОКВЭД2АвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка) + + //++ Локализация + Если ЗначениеЗаполнено(Текст) Тогда + СтандартнаяОбработка = Ложь; + + ДанныеПодбора = ПодборОКВЭДСервер(Текст); + ДанныеВыбора = Новый СписокЗначений; + + Для Каждого ОКВЭД Из ДанныеПодбора Цикл + ДанныеВыбора.Добавить(ОКВЭД.Код, ОКВЭД.Представление); + КонецЦикла; + КонецЕсли; + //-- Локализация + Возврат; + +КонецПроцедуры + +&НаКлиенте +Процедура КодОКППриИзменении(Элемент) + + //++ Локализация + НастроитьПодсказкуПоляКлассификатора(Элемент.Имя, Объект.КодОКП); + //-- Локализация + Возврат; + +КонецПроцедуры + +&НаКлиенте +Процедура КодОКПД2ПриИзменении(Элемент) + + //++ Локализация + НастроитьПодсказкуПоляКлассификатора(Элемент.Имя, Объект.КодОКПД2); + ПриИзмененииТНВЭДиОКПД2(); + //-- Локализация + Возврат; + +КонецПроцедуры + +&НаКлиенте +Процедура КодОКПД2НачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СобытияФормКлиент.НачалоВыбораЭлемента(ЭтотОбъект, Элемент, ДанныеВыбора, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура КодВидаНоменклатурнойКлассификацииНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + //++ Локализация + ОповещениеПриВыборе = Новый ОписаниеОповещения("НачатьВыборКодаВидаНоменклатурнойКлассификации_Завершение", ЭтотОбъект); + МенеджерОборудованияКлиент.НачатьВыборКодаВидаНоменклатурнойКлассификации(ОповещениеПриВыборе); + //-- Локализация + Возврат; + +КонецПроцедуры + +&НаКлиенте +Процедура КодТРУПриИзменении(Элемент) + + //++ Локализация + Если Не ЗначениеЗаполнено(Объект.КодТРУ) Тогда + Возврат; + КонецЕсли; + + Если СтрДлина(Объект.КодТРУ) < 30 Тогда + Объект.КодТРУ = Лев(Объект.КодТРУ + "000000000000000000000000000000", 30); + КонецЕсли; + //-- Локализация + Возврат; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыСовпаденияНоменклатуры + +&НаКлиенте +Процедура СовпаденияНоменклатурыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + //++ Локализация + Если Поле.Имя = "СовпаденияНоменклатурыКартинкаОткрытия" Тогда + ПоказатьЗначение( , Элемент.ТекущиеДанные.Ссылка); + Иначе + Модифицированность = Ложь; + ОповеститьОВыборе(Элемент.ТекущиеДанные.Ссылка); + КонецЕсли; + //-- Локализация + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ЗаполнитьНаименованиеДляПечатиПоШаблону(Команда) + + РезультатЗаполнения = ЗаполнитьНаименованиеПоШаблонуСервер("ДляПечати"); + Если РезультатЗаполнения.ЕстьОшибки Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(РезультатЗаполнения.ТекстОшибки,, "Наименование", "Объект"); + КонецЕсли; + ШаблонНаименованияДляПечатиНоменклатуры = СокрЛП(ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта(Объект.ВидНоменклатуры, "ШаблонНаименованияДляПечатиНоменклатуры")); + Если ШаблонНаименованияДляПечатиНоменклатуры = "[Наименование]" + ИЛИ ПустаяСтрока(ШаблонНаименованияДляПечатиНоменклатуры) Тогда + РезультатЗаполнения = ЗаполнитьМультиязычноеНаименованиеПолноеПоНаименованию(); + Если РезультатЗаполнения.Свойство("ЗначенияНаРазныхЯзыках") Тогда + ДополнительныеПараметры = Новый Структура("Объект, ИмяРеквизита, Форма", Объект, "НаименованиеПолное", ЭтотОбъект); + МультиязычностьКлиент.ПослеВводаСтрокНаРазныхЯзыках(РезультатЗаполнения, ДополнительныеПараметры); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьРабочееНаименованиеПоШаблону(Команда) + + РезультатЗаполнения = ЗаполнитьНаименованиеПоШаблонуСервер("Рабочее"); + Если РезультатЗаполнения.ЕстьОшибки Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(РезультатЗаполнения.ТекстОшибки,, "Наименование", "Объект"); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗарегистрироватьШтрихкодЗавершение(Знач Результат, Знач ПараметрКоманды) Экспорт + + Если Результат <> КодВозвратаДиалога.Да Тогда + Штрихкод = Неопределено; + Возврат; + КонецЕсли; + + Если ЗначениеЗаполнено(Штрихкод) Тогда + + ЗначенияЗаполнения = Новый Структура; + ЗначенияЗаполнения.Вставить("Номенклатура", Объект.Ссылка); + ЗначенияЗаполнения.Вставить("Штрихкод", Штрихкод); + ПараметрыФормы = Новый Структура("ЗначенияЗаполнения", ЗначенияЗаполнения); + Штрихкод = Неопределено; + ОткрытьФорму("РегистрСведений.ШтрихкодыНоменклатуры.ФормаЗаписи", ПараметрыФормы); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ДобавитьИзображение(Команда) + + ЗаблокироватьДанныеФормыДляРедактирования(); + ПриДобавленииИзображения(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОчиститьИзображение(Команда) + + Объект.ФайлКартинки = ПредопределенноеЗначение("Справочник.НоменклатураПрисоединенныеФайлы.ПустаяСсылка"); + ДанныеФайлаКартинки = Неопределено; + + ОбновитьАдресКартинки(Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура ПросмотретьИзображение(Команда) + + ОчиститьСообщения(); + + ТекстСообщения = НСтр("ru='Отсутствует изображение для просмотра'"); + + ПросмотретьПрисоединенныйФайл("ФайлКартинки", "АдресКартинки", ТекстСообщения); + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьИзображение(Команда) + + ОчиститьСообщения(); + + Если ЗначениеЗаполнено(Объект.ФайлКартинки) Тогда + РаботаСФайламиКлиент.ОткрытьФормуФайла(Объект.ФайлКартинки); + Иначе + ТекстСообщения = НСтр("ru='Отсутствует изображение для редактирования'"); + + ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения, , "АдресКартинки"); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВыбратьКартинкуИзПрисоединенныхФайлов(Команда) + + СтруктураПараметрыВыбора = Новый Структура("ВладелецФайла, ЗакрыватьПриВыборе, РежимВыбора", + Объект.Ссылка, Истина, Истина); + ОписаниеОповещения = Новый ОписаниеОповещения("ВыбратьКартинкуИзПрисоединенныхФайловЗавершение", + ЭтотОбъект); + + ОткрытьФорму("Обработка.РаботаСФайлами.Форма.ПрисоединенныеФайлы", + СтруктураПараметрыВыбора, + , + , + , + , + ОписаниеОповещения, + РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс); + +КонецПроцедуры + +&НаКлиенте +Процедура ВыбратьКартинкуИзПрисоединенныхФайловЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Если ЗначениеЗаполнено(Результат) Тогда + Объект.ФайлКартинки = Результат; + + ОбновитьАдресКартинки(Истина); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура КомандаПерейти(Команда) + + ИмяЭлемента = Команда.Имя; + ИмяЭлемента = ИмяЭлементаПереходаКСвязанномуСписку(Элементы, ИмяЭлемента, Ложь); + + ГиперссылкаПерейтиСформироватьПараметрыИВопрос(ИмяЭлемента, ""); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено) + УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка); +КонецПроцедуры + +// Обработчик команды, создаваемой механизмом запрета редактирования ключевых реквизитов. +// +&НаКлиенте +Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъекта(Команда) + + Если Не Объект.Ссылка.Пустая() Тогда + + ОткрытьФорму("Справочник.Номенклатура.Форма.РазблокированиеРеквизитов",,,,,, + Новый ОписаниеОповещения("Подключаемый_РазрешитьРедактированиеРеквизитовОбъектаЗавершение", ЭтотОбъект), + РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъектаЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Если ТипЗнч(Результат) = Тип("Массив") И Результат.Количество() > 0 Тогда + + Если Результат.Найти("ИспользоватьУпаковки") <> Неопределено Тогда + Элементы.ИспользованиеУпаковокИндивидуальныйНабор.ТолькоПросмотр = Ложь; + Элементы.ИспользованиеУпаковокОбщийНабор.ТолькоПросмотр = Ложь; + КонецЕсли; + ЗапретРедактированияРеквизитовОбъектовКлиент.УстановитьДоступностьЭлементовФормы(ЭтотОбъект, Результат); + НоменклатураКлиентЛокализация.РазрешитьРедактированиеРеквизитовОбъектаЗавершение( + ЭтотОбъект, Результат, ДополнительныеПараметры); + КонецЕсли; + +КонецПроцедуры + +// ИнтеграцияС1СДокументооборотом +&НаКлиенте +Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда) + + ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, Объект); + +КонецПроцедуры +// Конец ИнтеграцияС1СДокументооборотом + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтотОбъект, Команда); + +КонецПроцедуры + +// СтандартныеПодсистемы.Свойства +&НаКлиенте +Процедура ОбновитьЗависимостиДополнительныхРеквизитов() + УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент) + УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект); +КонецПроцедуры + +// СтандартныеПодсистемы.ПодключаемыеКоманды +&НаКлиенте +Процедура Подключаемый_ВыполнитьКоманду(Команда) + ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект); +КонецПроцедуры + +&НаСервере +Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт + ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ОбновитьКоманды() + ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект); +КонецПроцедуры + +// ЭлектронноеВзаимодействие.ТорговыеПредложения +&НаКлиенте +Процедура Подключаемый_ПодсказкиБизнесСетьНажатие(Команда) + + ТорговыеПредложенияКлиент.ОткрытьФормуПодсказок(ЭтотОбъект); + +КонецПроцедуры +// Конец ЭлектронноеВзаимодействие.ТорговыеПредложения + +// ЭлектронноеВзаимодействие.РаботаСНоменклатурой +&НаКлиенте +Процедура Подключаемый_НачалоВыбораРаботаСНоменклатурой(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + РаботаСНоменклатуройКлиент.ВыбратьОбъектСервиса(ЭтотОбъект, Элемент, СтандартнаяОбработка, Ложь, + Новый ОписаниеОповещения("ЗакрытиеФормыВыбораОбъектаСервиса", ЭтотОбъект, Новый Структура)); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ОчисткаРаботаСНоменклатурой(Элемент, СтандартнаяОбработка) + + РаботаСНоменклатуройКлиент.НажатиеОчиститьНоменклатуру(ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_НажатиеРежимОбновленияРаботаСНоменклатурой(Элемент) + + РаботаСНоменклатуройКлиент.НажатиеРежимОбновления(ЭтотОбъект, ПодготовитьДанныеДляИнтерактивногоЗаполнения(), + Новый ОписаниеОповещения("ЗакрытиеФормыЗаполненияОбъекта", ЭтотОбъект)); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ОткрытьРаботаСНоменклатурой(Элемент, СтандартнаяОбработка) + + РаботаСНоменклатуройКлиент.ОткрытьКарточкуОбъектаСервиса(ЭтотОбъект, Элемент, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ИзменениеТекстаРедактированияРаботаСНоменклатурой(Элемент, Текст, СтандартнаяОбработка) + + РаботаСНоменклатуройКлиент.ИзменениеТекстаСобратьСтрокуПоиска(ЭтотОбъект, Текст, Элемент, СтандартнаяОбработка) + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПриИзмененииРаботаСНоменклатурой(Элемент) + + РаботаСНоменклатуройКлиент.ПриИзмененииСобратьСтрокуПоиска(ЭтотОбъект, Элемент); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_НажатиеРаботаСНоменклатурой(Элемент, СтандартнаяОбработка) + + РаботаСНоменклатуройКлиент.НажатиеГиперссылки(ЭтотОбъект, Элемент, СтандартнаяОбработка, + Новый ОписаниеОповещения("ЗакрытиеФормыВыбораОбъектаСервиса", ЭтотОбъект, Новый Структура)); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ОбработкаНавигационнойСсылкиРаботаСНоменклатурой(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + + РаботаСНоменклатуройКлиент.НажатиеГиперссылки(ЭтотОбъект, Элемент, СтандартнаяОбработка, + Новый ОписаниеОповещения("ЗакрытиеФормыВыбораОбъектаСервиса", ЭтотОбъект, Новый Структура)); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПослеЗаписиРаботаСНоменклатурой() + + РаботаСНоменклатуройКлиент.ПослеЗаписиФормаНоменклатурыПродолжение(ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗакрытиеФормыВыбораОбъектаСервиса(ДанныеОбъекта, ДополнительныеПараметры) Экспорт + + РаботаСНоменклатуройКлиент.ОбработкаОповещенияЗакрытиеФормыВыбора( + ДанныеОбъекта, ДополнительныеПараметры, ПодготовитьДанныеДляИнтерактивногоЗаполнения(), + Новый ОписаниеОповещения("ЗакрытиеФормыЗаполненияОбъекта", ЭтотОбъект)); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗакрытиеФормыЗаполненияОбъекта(ПараметрыЗакрытияФормы, ДополнительныеПараметры) Экспорт + + ЗаполнитьРеквизитыФормы(ПараметрыЗакрытияФормы); + +КонецПроцедуры + +&НаСервере +Функция ПодготовитьДанныеДляИнтерактивногоЗаполнения() + + Возврат РаботаСНоменклатурой.ПодготовитьДанныеДляИнтерактивногоЗаполнения(ЭтотОбъект); + +КонецФункции + +&НаСервере +Процедура ЗаполнитьРеквизитыФормы(ПараметрыЗакрытияФормы) + + РаботаСНоменклатурой.ЗаполнитьРеквизитыФормы(ЭтотОбъект, ПараметрыЗакрытияФормы); + + НастроитьФормуИОбновитьКарточку(); + +КонецПроцедуры + +// Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + +// БиблиотекаРаспознаванияДокументов + +&НаКлиенте +Процедура ВыбратьПохожуюПозициюНоменклатуры(Команда) + + //++ Локализация + ТекущиеДанные = Элементы.СовпаденияНоменклатуры.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Модифицированность = Ложь; + ОповеститьОВыборе(ТекущиеДанные.Ссылка); + //-- Локализация + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область ПриИзмененииРеквизитов + +&НаСервере +Процедура ПринципалПриИзмененииНаСервере() + ПартнерыИКонтрагенты.ЗаполнитьКонтрагентаПартнераПоУмолчанию(Объект.Принципал, Объект.Контрагент); + НастроитьФормуИОбновитьКарточку(); +КонецПроцедуры + +&НаСервере +Процедура ПриЗаписиВидаНоменклатуры() + + ОбновитьКешРеквизитовВидаНоменклатуры(); + НастроитьФормуИОбновитьКарточку(); + +КонецПроцедуры + +&НаСервере +Процедура ВидНоменклатурыПриИзмененииНаСервере(ЗаполнениеПоИсточникуКопирования = Ложь) + + //++ Локализация + ЗаполнитьКлючВидовПродукции(Объект.ВидНоменклатуры); + ПриИзмененииКлючаВидовПродукции(); + //-- Локализация + + ОбновитьКешРеквизитовВидаНоменклатуры(); + + ЗаполняемыйОбъект = Объект; + НоменклатураЛокализация.ДополнитьОбъектФормы(ЭтотОбъект, ЗаполняемыйОбъект); + + Справочники.Номенклатура.ЗаполнитьРеквизитыПоВидуНоменклатуры(ЗаполняемыйОбъект, + Ложь, + Ложь, + ВидНоменклатурыДоИзменения, + ЗаполнениеПоИсточникуКопирования); + + НоменклатураЛокализация.ВосстановитьОбъектФормы(ЭтотОбъект, ЗаполняемыйОбъект); + + ВидНоменклатурыДоИзменения = Объект.ВидНоменклатуры; + + Если Не ЗаполнениеПоИсточникуКопирования + И ЗначениеЗаполнено(Объект.ВидНоменклатуры) Тогда + + Если ЗначениеЗаполнено(РеквизитыВидаНоменклатуры.ШаблонРабочегоНаименованияНоменклатуры) Тогда + Объект.Наименование = ""; + ФормироватьРабочееНаименование = Истина; + ИначеЕсли ЗначениеЗаполнено(ПараметрыСоздания().Наименование) Тогда + // После обратного переключения на вид номенклатуры без шаблона возвращаем исходное наименование. + Объект.Наименование = ПараметрыСоздания().Наименование; + КонецЕсли; + + Если ЗначениеЗаполнено(РеквизитыВидаНоменклатуры.ШаблонНаименованияДляПечатиНоменклатуры) Тогда + Объект.НаименованиеПолное = ""; + ФормироватьНаименованиеДляПечати = Истина; + ИначеЕсли ЗначениеЗаполнено(ПараметрыСоздания().НаименованиеПолное) Тогда + // После обратного переключения на вид номенклатуры без шаблона возвращаем исходное наименование. + Объект.НаименованиеПолное = ПараметрыСоздания().НаименованиеПолное; + КонецЕсли; + + Если Объект.НаборУпаковок = Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры Тогда + ИспользованиеУпаковок = "ИндивидуальныйНабор"; + КонецЕсли; + + ИначеЕсли ЗаполнениеПоИсточникуКопирования + И ПараметрыСоздания().Свойство("Качество") + И ЗначениеЗаполнено(ПараметрыСоздания().Качество) + И ПараметрыСоздания().Качество <> Перечисления.ГрадацииКачества.Новый Тогда + + Объект.Наименование = ?(ФормироватьРабочееНаименование, "", ПараметрыСоздания().Наименование); + + Для Каждого ИспользуетсяДопЯзык Из МультиязычностьСервер.СведенияОЯзыках().Используется Цикл + Если ИспользуетсяДопЯзык.Значение = Истина Тогда + ИмяРеквизита = СтрШаблон("Наименование%1", ИспользуетсяДопЯзык.Ключ); + Объект[ИмяРеквизита] = ПараметрыСоздания()[ИмяРеквизита]; + КонецЕсли; + КонецЦикла; + + Объект.НаименованиеПолное = ?(ФормироватьНаименованиеДляПечати, "", ПараметрыСоздания().НаименованиеПолное); + + КонецЕсли; + + ОбновитьЭлементыДополнительныхРеквизитов(); + + ИспользуетсяИндивидуальныйШаблонЦенника = ЗначениеЗаполнено(Объект.ШаблонЦенника) + И (Объект.ШаблонЦенника <> РеквизитыВидаНоменклатуры.ШаблонЦенника); + ИспользуетсяИндивидуальныйШаблонЭтикетки = ЗначениеЗаполнено(Объект.ШаблонЭтикетки) + И (Объект.ШаблонЭтикетки <> РеквизитыВидаНоменклатуры.ШаблонЭтикетки); + + Объект.ИспользоватьИндивидуальныйШаблонЦенника = ИспользуетсяИндивидуальныйШаблонЦенника; + Объект.ИспользоватьИндивидуальныйШаблонЭтикетки = ИспользуетсяИндивидуальныйШаблонЭтикетки; + + Объект.ШаблонЦенника = ?(ИспользуетсяИндивидуальныйШаблонЦенника, Объект.ШаблонЦенника, + Справочники.ШаблоныЭтикетокИЦенников.ПустаяСсылка()); + Объект.ШаблонЭтикетки = ?(ИспользуетсяИндивидуальныйШаблонЭтикетки, Объект.ШаблонЭтикетки, + Справочники.ШаблоныЭтикетокИЦенников.ПустаяСсылка()); + + ОтборНастроекШаблонаЦенников = Новый Структура("ИмяРеквизита", "ШаблонЦенника"); + НастройкиШаблонаЦенников = ТаблицаНастроекРеквизитов.НайтиСтроки(ОтборНастроекШаблонаЦенников); + + Если НастройкиШаблонаЦенников.Количество() > 0 Тогда + + Если Не Объект.ИспользоватьИндивидуальныйШаблонЦенника + И НастройкиШаблонаЦенников[0].ЗаполнятьОбязательно + И Не ЗначениеЗаполнено(РеквизитыВидаНоменклатуры.ШаблонЦенника) Тогда + + ИспользоватьИндивидуальныйШаблонЦенника = 1; + Объект.ИспользоватьИндивидуальныйШаблонЦенника = Истина; + + ИначеЕсли Не Объект.ИспользоватьИндивидуальныйШаблонЦенника Тогда + ИспользоватьИндивидуальныйШаблонЦенника = 0; + КонецЕсли; + + КонецЕсли; + + ОтборНастроекШаблонаЭтикеток = Новый Структура("ИмяРеквизита", "ШаблонЭтикетки"); + НастройкиШаблонаЭтикеток = ТаблицаНастроекРеквизитов.НайтиСтроки(ОтборНастроекШаблонаЭтикеток); + + Если НастройкиШаблонаЭтикеток.Количество() > 0 Тогда + + Если Не Объект.ИспользоватьИндивидуальныйШаблонЭтикетки + И НастройкиШаблонаЭтикеток[0].ЗаполнятьОбязательно + И Не ЗначениеЗаполнено(РеквизитыВидаНоменклатуры.ШаблонЭтикетки) Тогда + + ИспользоватьИндивидуальныйШаблонЭтикетки = 1; + Объект.ИспользоватьИндивидуальныйШаблонЭтикетки = Истина; + + ИначеЕсли Не Объект.ИспользоватьИндивидуальныйШаблонЭтикетки Тогда + ИспользоватьИндивидуальныйШаблонЭтикетки = 0; + КонецЕсли; + + КонецЕсли; + + Элементы.ВидНоменклатуры.АвтоОтметкаНезаполненного = Истина; + + СобытияФорм.ПриИзмененииЭлемента(ЭтотОбъект, "ВидНоменклатуры"); + +КонецПроцедуры + +&НаСервере +Процедура ВидНоменклатурыПриИзмененииНастройкаФормы() + + ВидНоменклатурыПриИзмененииНаСервере(); + НастроитьФормуИОбновитьКарточку(); + +КонецПроцедуры + +&НаСервере +Процедура ОбновитьКешРеквизитовВидаНоменклатуры() + + ИменаРеквизитов = + "ШаблонРабочегоНаименованияНоменклатуры, + |ЗапретРедактированияРабочегоНаименованияНоменклатуры, + |ШаблонНаименованияДляПечатиНоменклатуры, + |ЗапретРедактированияНаименованияДляПечатиНоменклатуры, + |НастройкаИспользованияСерий, + |СодержитДрагоценныеМатериалы, + |ИспользованиеХарактеристик, + |ИспользоватьСерии, + |ИспользоватьСрокГодностиСерии, + |НаборУпаковок, + |ГруппаДоступа, + |НаборСвойств, + |ТипНоменклатуры, + |ШаблонЦенника, + |ШаблонЭтикетки"; + + РеквизитыВидаНоменклатуры = Новый ФиксированнаяСтруктура( + ОбщегоНазначенияУТ.ЗначенияРеквизитовОбъектаПоУмолчанию(Объект.ВидНоменклатуры, ИменаРеквизитов)); + + ПересчитатьНеобходимостьФормированияНаименований(ЭтотОбъект); + +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Процедура ПересчитатьНеобходимостьФормированияНаименований(Форма) + + Форма.ФормироватьРабочееНаименование = + Форма.РеквизитыВидаНоменклатуры.ЗапретРедактированияРабочегоНаименованияНоменклатуры + ИЛИ (Не ЗначениеЗаполнено(Форма.Объект.Наименование) + И ЗначениеЗаполнено(Форма.РеквизитыВидаНоменклатуры.ШаблонРабочегоНаименованияНоменклатуры)); + Форма.ФормироватьНаименованиеДляПечати = + Форма.РеквизитыВидаНоменклатуры.ЗапретРедактированияНаименованияДляПечатиНоменклатуры + ИЛИ (Не ЗначениеЗаполнено(Форма.Объект.НаименованиеПолное) + И ЗначениеЗаполнено(Форма.РеквизитыВидаНоменклатуры.ШаблонНаименованияДляПечатиНоменклатуры)); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриДобавленииИзображения() + + ОчиститьСообщения(); + + Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда + + ПараметрыОповещения = Новый Структура("ИмяРеквизита", "ДанныеФайлаКартинки"); + ОписаниеОповещения = Новый ОписаниеОповещения("ДобавлениеФайлаНеПрисоединенноЗавершение", + ЭтотОбъект, + ПараметрыОповещения); + + ПараметрыЗагрузкиФайла = ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла(); + ПараметрыЗагрузкиФайла.Диалог.Фильтр = НоменклатураКлиент.ФильтрФайловИзображений(); + + ФайловаяСистемаКлиент.ЗагрузитьФайл(ОписаниеОповещения, ПараметрыЗагрузкиФайла); + + Иначе + + ПараметрыОповещения = Новый Структура("ВыборИзображения, ВыборФайлаОписания", Истина, Ложь); + ОписаниеОповещения = Новый ОписаниеОповещения("ДобавлениеФайлаЗавершение", + ЭтотОбъект, + ПараметрыОповещения); + + РаботаСФайламиКлиент.ДобавитьФайлы(Объект.Ссылка, + УникальныйИдентификатор, + НоменклатураКлиент.ФильтрФайловИзображений(), + , + ОписаниеОповещения); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриДобавленииФайлаОписания() + + ОчиститьСообщения(); + + Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда + + ПараметрыОповещения = Новый Структура("ИмяРеквизита", "ДанныеФайлаHTML"); + ОписаниеОповещения = Новый ОписаниеОповещения("ДобавлениеФайлаНеПрисоединенноЗавершение", + ЭтотОбъект, + ПараметрыОповещения); + + ПараметрыЗагрузкиФайла = ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла(); + ПараметрыЗагрузкиФайла.Диалог.Фильтр = НСтр("ru = 'Все файлы (*.*)|*.*'"); + + Если ЗначениеЗаполнено(ПутьКФайлуОписанию) Тогда + ПараметрыЗагрузкиФайла.Диалог.ПолноеИмяФайла = ПутьКФайлуОписанию; + КонецЕсли; + + ФайловаяСистемаКлиент.ЗагрузитьФайл(ОписаниеОповещения, ПараметрыЗагрузкиФайла); + + Иначе + + ПараметрыОповещения = Новый Структура("ВыборИзображения, ВыборФайлаОписания", Ложь, Истина); + ОписаниеОповещения = Новый ОписаниеОповещения("ДобавлениеФайлаЗавершение", + ЭтотОбъект, + ПараметрыОповещения); + + РаботаСФайламиКлиент.ДобавитьФайлы(Объект.Ссылка, УникальныйИдентификатор, , , ОписаниеОповещения); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ДобавлениеФайлаНеПрисоединенноЗавершение(ПомещенныйФайл, ДополнительныеПараметры) Экспорт + + Если ПомещенныйФайл = Неопределено Тогда + Возврат; + КонецЕсли; + + ЭтотОбъект[ДополнительныеПараметры.ИмяРеквизита] = ОписаниеДанныхФайла(); + + СтруктураИмениФайла = ОбщегоНазначенияКлиентСервер.РазложитьПолноеИмяФайла(ПомещенныйФайл.Имя); + + ЭтотОбъект[ДополнительныеПараметры.ИмяРеквизита].ПолноеИмя = СтруктураИмениФайла.Имя; + ЭтотОбъект[ДополнительныеПараметры.ИмяРеквизита].ИмяБезРасширения = СтруктураИмениФайла.ИмяБезРасширения; + ЭтотОбъект[ДополнительныеПараметры.ИмяРеквизита].Расширение = ОбщегоНазначенияКлиентСервер.РасширениеБезТочки( + СтруктураИмениФайла.Расширение); + + Если ДополнительныеПараметры.ИмяРеквизита = "ДанныеФайлаКартинки" Тогда + АдресКартинки = ПомещенныйФайл.Хранение; + ИначеЕсли ДополнительныеПараметры.ИмяРеквизита = "ДанныеФайлаHTML" Тогда + АдресОписанияHTML = ПомещенныйФайл.Хранение; + ПутьКФайлуОписанию = СтруктураИмениФайла.ИмяБезРасширения; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ДобавлениеФайлаЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт + + Если ВыбранныеФайлы.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + Модифицированность = Истина; + + СсылкаНаФайл = ВыбранныеФайлы[0]; + + Если ДополнительныеПараметры.ВыборИзображения Тогда + Объект.ФайлКартинки = СсылкаНаФайл; + + ОбновитьАдресКартинки(Истина); + ИначеЕсли ДополнительныеПараметры.ВыборФайлаОписания Тогда + ПутьКФайлуОписанию = Строка(СсылкаНаФайл); + Объект.ФайлОписанияДляСайта = СсылкаНаФайл; + + НастроитьФормуИОбновитьКарточку(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПросмотретьПрисоединенныйФайл(ИмяРеквизитаОбъекта, ИмяРеквизитаФормы, ТекстСообщенияОбОшибке) + + Если ЗначениеЗаполнено(Объект.Ссылка) Тогда + + Если ЗначениеЗаполнено(Объект[ИмяРеквизитаОбъекта]) Тогда + РаботаСФайламиКлиент.ОткрытьФайл(РаботаСФайламиКлиент.ДанныеФайла(Объект[ИмяРеквизитаОбъекта], + УникальныйИдентификатор)); + Иначе + ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщенияОбОшибке, , ИмяРеквизитаФормы); + КонецЕсли; + + Иначе + + Если ЗначениеЗаполнено(ЭтотОбъект[ИмяРеквизитаФормы]) Тогда + + Если ИмяРеквизитаФормы = "АдресКартинки" Тогда + РасположениеФайла = АдресКартинки; + ИмяФайла = ?(ТипЗнч(ДанныеФайлаКартинки) = Тип("Структура"), + ДанныеФайлаКартинки.ПолноеИмя, + ""); + Иначе + РасположениеФайла = АдресОписанияHTML; + ИмяФайла = ?(ТипЗнч(ДанныеФайлаHTML) = Тип("Структура"), + ДанныеФайлаHTML.ПолноеИмя, + ""); + КонецЕсли; + ФайловаяСистемаКлиент.ОткрытьФайл(РасположениеФайла, ,ИмяФайла); + + Иначе + ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщенияОбОшибке, , ИмяРеквизитаФормы); + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПроизводительПриИзмененииСервер() + + Объект.Марка = Справочники.Марки.ПолучитьМаркуПоУмолчанию(Объект.Производитель); + +КонецПроцедуры + +&НаКлиенте +Процедура ВидАлкогольнойПродукцииПриИзменении(Элемент) + + //++ Локализация + ВидАлкогольнойПродукцииПриИзмененииСервер(); + //-- Локализация + +КонецПроцедуры + +&НаКлиенте +Процедура АлкогольнаяПродукцияВоВскрытойТареПриИзменении(Элемент) + + //++ Локализация + АлкогольнаяПродукцияВоВскрытойТареПриИзмененииНаСервере(); + //-- Локализация + +КонецПроцедуры + +&НаКлиенте +Процедура РассчитатьОбъемВДекалитрах(Команда) + + //++ Локализация + ОчиститьСообщения(); + РассчитатьОбъемВДекалитрахНаСервере(); + //-- Локализация + +КонецПроцедуры + +#Область ОбработчикиСобытийТаблицыФормыДрагоценныеМатериалы + +&НаКлиенте +Процедура ДрагоценныеМатериалыДрагоценныйМатериалПриИзменении(Элемент) + + //++ Локализация + ТекущиеДанные = Элементы.ДрагоценныеМатериалы.ТекущиеДанные; + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Если ЗначениеЗаполнено(ТекущиеДанные.ДрагоценныйМатериал) Тогда + ТекущиеДанные.ЕдиницаИзмерения = ЕдиницаИзмерения(ТекущиеДанные.ДрагоценныйМатериал); + Иначе + ТекущиеДанные.ЕдиницаИзмерения = ПредопределенноеЗначение("Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка"); + КонецЕсли; + //-- Локализация + +КонецПроцедуры + +&НаКлиенте +Процедура Операции0НачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) + + //++ Локализация + + + //-- Локализация + + Возврат; + +КонецПроцедуры + +&НаКлиенте +Процедура ТоварУчаствуетВДеятельностиПоСтавкеНДС0ПриИзменении(Элемент) + + //++ Локализация + + + //-- Локализация + + Возврат; + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область РаботаСФайламиИИзображениями + +&НаСервере +Процедура ОбновитьАдресКартинки(НастроитьФормуИОбновитьКарточку) + + Если Объект.ФайлКартинки.Пустая() Тогда + АдресКартинки = ""; + ПриПолученииДанныхКартинкиВозниклаОшибка = Ложь; + Иначе + + УстановитьПривилегированныйРежим(Истина); + Попытка + АдресКартинки = РаботаСФайлами.ДанныеФайла(Объект.ФайлКартинки, УникальныйИдентификатор).СсылкаНаДвоичныеДанныеФайла; + Исключение + АдресКартинки = ""; + КонецПопытки; + УстановитьПривилегированныйРежим(Ложь); + + Если ПустаяСтрока(АдресКартинки) Тогда + ПриПолученииДанныхКартинкиВозниклаОшибка = Истина; + Иначе + ПриПолученииДанныхКартинкиВозниклаОшибка = Ложь; + КонецЕсли; + + КонецЕсли; + + Если НастроитьФормуИОбновитьКарточку Тогда + НастроитьФормуИОбновитьКарточку(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура НастройкиПараметровКопированияДополнительныхДанныхЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Если Результат = Неопределено Тогда + НастройкиКопированияЗаданы = Ложь; + Возврат; + КонецЕсли; + + ПараметрыКопированияДополнительныхДанных = Результат; + + КонтрольУникальностиПередЗаписьюПроведен = Истина; + НастройкиКопированияЗаданы = Истина; + + Попытка + ЭлементЗаписан = Записать(); + Исключение + КонтрольУникальностиПередЗаписьюПроведен = Ложь; + НастройкиКопированияЗаданы = Ложь; + Возврат; + КонецПопытки; + + Если Не ЭлементЗаписан Тогда + КонтрольУникальностиПередЗаписьюПроведен = Ложь; + НастройкиКопированияЗаданы = Ложь; + Возврат; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область НастройкаВидимостиГруппИЭлементов + +&НаСервере +Процедура НастроитьФормуИОбновитьКарточку() + + // Настройки видимости элементов формы происходят в конце этой процедуры. + // Если видимость элементов формы зависит от реквизитов формы и эти элементы + // не должны отображаться в карточке номенклатуры (первая вкладка формы), то настройки их видимости не обязательно + // заносить в процедуру СтруктураВидимостиЭлементовФормы(...). + // (Но все же лучше попытаться занести не добавляя никаких параметров для однородности). + + Элементы.СтраницаКарточкаНоменклатуры.Доступность = ЗначениеЗаполнено(Объект.Ссылка); + + УстановитьДоступностьРедактированияНаименований(Истина); + + Если Не ЗначениеЗаполнено(РеквизитыВидаНоменклатуры.НастройкаИспользованияСерий) Тогда + НастройкаИспользованияСерий = НСтр("ru = 'Не используются'"); + Иначе + НастройкаИспользованияСерий = Строка(РеквизитыВидаНоменклатуры.НастройкаИспользованияСерий); + КонецЕсли; + + Если Объект.ОсобенностьУчета = Перечисления.ОсобенностиУчетаНоменклатуры.ОрганизациейПоАгентскойСхеме Тогда + ТипСсылкаОрганизации = Новый ОписаниеТипов("СправочникСсылка.Организации"); + + Элементы.Принципал.ОграничениеТипа = ТипСсылкаОрганизации; + Иначе + ТипСсылкаКонтрагенты = Новый ОписаниеТипов("СправочникСсылка.Контрагенты"); + ТипСсылкаПартнеры = Новый ОписаниеТипов("СправочникСсылка.Партнеры"); + + Элементы.Принципал.ОграничениеТипа = ТипСсылкаПартнеры; + Элементы.Контрагент.ОграничениеТипа = ТипСсылкаКонтрагенты; + КонецЕсли; + + Элементы.СрокКонтроляКачества.Доступность = Объект.КонтролироватьКачествоПоступившегоТовара; + Элементы.ЕдиницаИзмерения.Доступность = (ИспользованиеУпаковок = "ИндивидуальныйНабор" + И Объект.ИспользоватьУпаковки) + Или Не Объект.ИспользоватьУпаковки; + + ДоступностьШаблоновЭтикеток = ИспользоватьИндивидуальныйШаблонЭтикетки = 1; + Элементы.ШаблонЭтикетки.Доступность = ДоступностьШаблоновЭтикеток; + + ДоступностьШаблоновЦенников = ИспользоватьИндивидуальныйШаблонЦенника = 1; + Элементы.ШаблонЦенника.Доступность = ДоступностьШаблоновЦенников; + + Элементы.ГруппаДоступа.Доступность = ЗначениеЗаполнено(Объект.Ссылка); + + Если Элементы.Найти("ВестиУчетПоГТД") <> Неопределено Тогда + УстановитьДоступностьВестиУчетПоГТДЛокализация(Элементы.ВестиУчетПоГТД, Объект); + КонецЕсли; + Если Элементы.Найти("ПрослеживаемыйТовар") <> Неопределено Тогда + УстановитьПодсказкуПрослеживаемыйТоварЛокализация(Элементы.ПрослеживаемыйТовар, + Объект.ТипНоменклатуры, + Перечисления.ТипыНоменклатуры.Работа); + КонецЕсли; + + ЗаполняемыйОбъект = Объект; + НоменклатураЛокализация.ДополнитьОбъектФормы(ЭтотОбъект, ЗаполняемыйОбъект); + + РеквизитыСПереопределеннойОбязательностьюЗаполнения = Справочники.Номенклатура.РеквизитыСПереопределеннойОбязательностьюЗаполнения( + Объект.ТипНоменклатуры, + НоменклатураЛокализация.ОсобенностьУчетаИлиКлючВидовПродукции(ЭтотОбъект), + ЗаполняемыйОбъект); + + Для Каждого КлючЗначение Из РеквизитыСПереопределеннойОбязательностьюЗаполнения Цикл + ИмяЭлемента = СтрЗаменить(КлючЗначение.Ключ, ".", ""); + + // Настраивается по данным 'ТаблицаНастроекРеквизитов'. + Если ИмяЭлемента = "ЕдиницаИзмерения" Тогда + Продолжить; + КонецЕсли; + + Элементы[ИмяЭлемента].АвтоОтметкаНезаполненного = КлючЗначение.Значение; + Элементы[ИмяЭлемента].ОтметкаНезаполненного = КлючЗначение.Значение; + КонецЦикла; + + НастройкиВидимостиИЗаголовков = Справочники.Номенклатура.НастройкиВидимостиИЗаголовков(ЗаполняемыйОбъект, РежимВидимостиПоказатьТолькоВажные); + + НоменклатураЛокализация.ВосстановитьОбъектФормы(ЭтотОбъект, ЗаполняемыйОбъект); + + ВидимостьЭлементов = НастройкиВидимостиИЗаголовков.ВидимостьЭлементов; + ЗаголовкиЭлементов = НастройкиВидимостиИЗаголовков.ЗаголовкиЭлементов; + + НастроитьЭлементыМеры("Вес", ВидимостьЭлементов, ЗаголовкиЭлементов, РежимВидимостиПоказатьТолькоВажные); + НастроитьЭлементыМеры("Объем", ВидимостьЭлементов, ЗаголовкиЭлементов, РежимВидимостиПоказатьТолькоВажные); + НастроитьЭлементыМеры("Площадь",ВидимостьЭлементов, ЗаголовкиЭлементов, РежимВидимостиПоказатьТолькоВажные); + НастроитьЭлементыМеры("Длина", ВидимостьЭлементов, ЗаголовкиЭлементов, РежимВидимостиПоказатьТолькоВажные); + + НастроитьПодсказкуПоляКлассификатора(Элементы.КодТНВЭД.Имя, Объект.КодТНВЭД); + + Для Каждого ЭлементВидимость Из ВидимостьЭлементов Цикл + + Если Элементы.Найти(ЭлементВидимость.Ключ) <> Неопределено Тогда + Элементы[ЭлементВидимость.Ключ].Видимость = ЭлементВидимость.Значение; + КонецЕсли; + + // Формирование видимости элементов подменю "Перейти" + ИмяКоманды = ЭлементВидимость.Ключ; + Если ЭлементПереходаКСвязанномуСписку(Элементы, ИмяКоманды) Тогда + ИмяКоманды = ИмяЭлементаПереходаКСвязанномуСписку(Элементы, ИмяКоманды, Истина); + + Если Элементы.Найти(ИмяКоманды) <> Неопределено Тогда + Элементы[ИмяКоманды].Видимость = ЭлементВидимость.Значение; + КонецЕсли; + КонецЕсли; + + КонецЦикла; + + Для Каждого ЭлементЗаголовок Из ЗаголовкиЭлементов Цикл + + ИмяЭлемента = ЭлементЗаголовок.Ключ; + + ЗаголовокЭлемента = Справочники.Номенклатура.ЗаголовокГиперссылки(ЭлементЗаголовок); + + ЭлементУправления = Элементы.Найти(ИмяЭлемента); + + Если ЭлементУправления <> Неопределено + И ТипЗнч(ЭлементУправления) <> Тип("ГруппаФормы") Тогда + ЭлементУправления.Заголовок = ЗаголовокЭлемента; + КонецЕсли; + + // Формирование заголовков элементов подменю "Перейти" + Если ЭлементПереходаКСвязанномуСписку(Элементы, ИмяЭлемента) Тогда + + ИмяКоманды = ИмяЭлементаПереходаКСвязанномуСписку(Элементы, ИмяЭлемента, Истина); + + Если Элементы.Найти(ИмяКоманды) <> Неопределено Тогда + + СтрокаИсключение = НСтр("ru = 'Список'"); + НачалоСтроки = СтрНайти(ЗаголовокЭлемента, "(") - 1; + + Если СтрНайти(ЗаголовокЭлемента, СтрокаИсключение) = 0 + И НачалоСтроки > 0 Тогда + + Элементы[ИмяКоманды].Заголовок = СокрЛП(Лев(ЗаголовокЭлемента, НачалоСтроки)); + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + + Если ПриПолученииДанныхКартинкиВозниклаОшибка Тогда + Элементы.ФайлКартинки.ТекстНевыбраннойКартинки = НСтр("ru = 'Ошибка при чтении файла изображения'"); + Элементы.ФайлКартинки.ЦветТекста = ЦветаСтиля.ПоясняющийОшибкуТекст; + Иначе + Элементы.ФайлКартинки.ТекстНевыбраннойКартинки = НСтр("ru = 'Добавить изображение'"); + Элементы.ФайлКартинки.ЦветТекста = ЦветаСтиля.ЦветТекстаНевыбраннойКартинки; + КонецЕсли; + + Если ЗначениеЗаполнено(Объект.Ссылка) Тогда + Элементы.Штрихкод.Видимость = Ложь; + Иначе + Элементы.Штрихкод.Видимость = Истина; + КонецЕсли; + + НоменклатураЛокализация.НастроитьФормуИОбновитьКарточку(ЭтотОбъект, ВидимостьЭлементов); + + //++ Локализация + СвойстваЭлементовФормыБРД(); + //-- Локализация + + КарточкаНоменклатуры = Справочники.Номенклатура.ТабличныйДокументКарточкиНоменклатуры( + Объект, НастройкиВидимостиИЗаголовков, Ложь); + +КонецПроцедуры + +#Область НастройкаВидимостиГруппИЭлементовПереключательРежима + +&НаКлиенте +Процедура НастройкаВидимостиФормыПриИзменении(Элемент) + + РежимВидимостиПоказатьТолькоВажныеДО = РежимВидимостиПоказатьТолькоВажные; + + Если НастройкаВидимостиФормы = "ПоказатьВсе" Тогда + РежимВидимостиПоказатьТолькоВажные = Ложь; + Свернуть = Ложь; + ИначеЕсли НастройкаВидимостиФормы = "ПоказатьОсновные" Тогда + РежимВидимостиПоказатьТолькоВажные = Истина; + Свернуть = Ложь; + Иначе + РежимВидимостиПоказатьТолькоВажные = Ложь; + Свернуть = Истина; + КонецЕсли; + + Если РежимВидимостиПоказатьТолькоВажныеДО <> РежимВидимостиПоказатьТолькоВажные Тогда + НастроитьФормуИОбновитьКарточку(); + КонецЕсли; + + СкрытьРаскрытьВсеГруппы(Свернуть); + +КонецПроцедуры + +&НаСервере +Процедура СкрытьРаскрытьВсеГруппы(Свернуть) + + ИменаСворачиваемыхГрупп = ИменаСворачиваемыхГрупп(); + + Для Каждого ИмяГруппы Из ИменаСворачиваемыхГрупп Цикл + ИзменитьСвернутостьГруппы(ИмяГруппы, Свернуть); + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура ИзменитьСвернутостьГруппы(ИмяГруппы, Свернуть) + + ЭлементСворачиваемаяГруппа = Элементы[ИмяГруппы]; + + Если Свернуть Тогда + ЭлементСворачиваемаяГруппа.Скрыть(); + Иначе + ЭлементСворачиваемаяГруппа.Показать(); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура РазвернутьСворачиваемуюГруппу(ИмяГруппы) + + ГруппаРодитель = Элементы[ИмяГруппы].Родитель; // ГруппаФормы + + Если ГруппаРодитель = ЭтотОбъект Тогда + Возврат; + КонецЕсли; + + ИмяГруппыРодителя = ГруппаРодитель.Имя; + ИменаСворачиваемыхГрупп = ИменаСворачиваемыхГрупп(); + + Если ИменаСворачиваемыхГрупп.Найти(ИмяГруппыРодителя) = Неопределено Тогда + РазвернутьСворачиваемуюГруппу(ИмяГруппыРодителя); + Иначе + ИзменитьСвернутостьГруппы(ИмяГруппыРодителя, Ложь); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область ЕдиницыИзмерения + +&НаСервере +Процедура НастроитьЭлементыМеры(Мера, СтруктураВидимостиЭлементов, СтруктураЗаголовковЭлементов, РежимВидимостиПоказатьТолькоВажные) + + СвойстваМеры = СвойстваМеры(Мера); + + ДоступностьМеры = ПравоДоступа("Редактирование", Метаданные.Справочники.Номенклатура.Реквизиты[СвойстваМеры.ЕдиницаИзмерения]); + + Если Не ЗначениеЗаполнено(Объект.ЕдиницаИзмерения) Тогда + ВидимостьМеры = Объект[СвойстваМеры.Использовать]; + Элементы[СвойстваМеры.Использовать].Доступность = ДоступностьМеры; + Иначе + + ТипЕдиницы = ""; + + Если Справочники.УпаковкиЕдиницыИзмерения.ЭтоМернаяЕдиница(Объект.ЕдиницаИзмерения, ТипЕдиницы) + И Мера = ТипЕдиницы Тогда + ДоступностьМеры = Ложь; + Элементы[СвойстваМеры.Использовать].Доступность = ДоступностьМеры; + ВидимостьМеры = Ложь; + Иначе + + Элементы[СвойстваМеры.Использовать].Доступность = ДоступностьМеры; + ВидимостьМеры = Объект[СвойстваМеры.Использовать] И СтруктураВидимостиЭлементов[СвойстваМеры.Использовать]; + КонецЕсли; + КонецЕсли; + + СтруктураВидимостиЭлементов.Вставить(СвойстваМеры.Отступ, ВидимостьМеры); + СтруктураВидимостиЭлементов.Вставить(СвойстваМеры.Надпись, ВидимостьМеры); + СтруктураВидимостиЭлементов.Вставить(СвойстваМеры.Знаменатель, ВидимостьМеры); + СтруктураВидимостиЭлементов.Вставить(СвойстваМеры.Числитель, ВидимостьМеры); + СтруктураВидимостиЭлементов.Вставить(СвойстваМеры.ЕдиницаИзмерения, ВидимостьМеры); + СтруктураВидимостиЭлементов.Вставить(СвойстваМеры.МожноУказыватьВДокументах, ВидимостьМеры); + + Если Мера = "Вес" Тогда + ТекстЗаголовкаНадписи = НСтр("ru = '%ЕдиницаИзмерения% весит'"); + ИначеЕсли Мера = "Объем" Тогда + ТекстЗаголовкаНадписи = НСтр("ru = '%ЕдиницаИзмерения% занимает объем'"); + ИначеЕсли Мера = "Площадь" Тогда + ТекстЗаголовкаНадписи = НСтр("ru = '%ЕдиницаИзмерения% имеет площадь'"); + ИначеЕсли Мера = "Длина" Тогда + ТекстЗаголовкаНадписи = НСтр("ru = '%ЕдиницаИзмерения% имеет длину'"); + КонецЕсли; + + ТекстЗаголовкаНадписи = СтрЗаменить(ТекстЗаголовкаНадписи, "%ЕдиницаИзмерения%", Строка(Объект.ЕдиницаИзмерения)); + СтруктураЗаголовковЭлементов.Вставить(СвойстваМеры.Надпись, ТекстЗаголовкаНадписи); + + ТекстПредставленияЗначения = НСтр("ru = 'Можно указывать количество в %ЕдиницаИзмеренияМеры% в документах'"); + ТекстПредставленияЗначения = СтрЗаменить(ТекстПредставленияЗначения, "%ЕдиницаИзмеренияМеры%", Строка(Объект[СвойстваМеры.ЕдиницаИзмерения])); + + Элементы[СвойстваМеры.МожноУказыватьВДокументах].Доступность = ДоступностьМеры; + Элементы[СвойстваМеры.МожноУказыватьВДокументах].СписокВыбора[1].Представление = ТекстПредставленияЗначения; + +КонецПроцедуры + +&НаСервере +Процедура ПреобразоватьМожноУказыватьВДокументахВСтроку(Мера) + + СвойстваМеры = СвойстваМеры(Мера); + Если Объект[СвойстваМеры.МожноУказыватьВДокументах] Тогда + ЭтотОбъект[СвойстваМеры.МожноУказыватьВДокументахСтрока] = "МожноВыбиратьВДокументах"; + Иначе + ЭтотОбъект[СвойстваМеры.МожноУказыватьВДокументахСтрока] = "Справочно"; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура МераМожноУказыватьВДокументахПриИзменении(Мера) + + СвойстваМеры = СвойстваМеры(Мера); + Если ЭтотОбъект[СвойстваМеры.МожноУказыватьВДокументахСтрока] = "МожноВыбиратьВДокументах" Тогда + Объект[СвойстваМеры.МожноУказыватьВДокументах] = Истина; + Иначе + Объект[СвойстваМеры.МожноУказыватьВДокументах] = Ложь; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура МераИспользоватьПриИзмененииСервер(Мера) + + СвойстваМеры = СвойстваМеры(Мера); + Если Объект[СвойстваМеры.Использовать] Тогда + Объект[СвойстваМеры.Знаменатель] = 1; + Объект[СвойстваМеры.ЕдиницаИзмерения] = НоменклатураСервер.ЕдиницаИзмеренияПоУмолчанию(Мера); + КонецЕсли; + + НастроитьФормуИОбновитьКарточку(); + +КонецПроцедуры + +&НаСервере +Процедура ЕдиницаИзмеренияПриИзмененииСервер() + + Если Объект.КоэффициентЕдиницыДляОтчетов = 1 + Или Объект.КоэффициентЕдиницыДляОтчетов = 0 Тогда + Объект.ЕдиницаДляОтчетов = Объект.ЕдиницаИзмерения; + КонецЕсли; + + Если Объект.ЕдиницаДляОтчетов = Объект.ЕдиницаИзмерения Тогда + Объект.КоэффициентЕдиницыДляОтчетов = 1; + КонецЕсли; + + ТипЕдиницы = ""; + + ЭтоМернаяЕдиница = Справочники.УпаковкиЕдиницыИзмерения.ЭтоМернаяЕдиница(Объект.ЕдиницаИзмерения, ТипЕдиницы); + Справочники.Номенклатура.ОтработатьЛогикуЗаполненияМеры(Объект, ЭтоМернаяЕдиница, ТипЕдиницы, ТипЕдиницы); + + Если ЭтоМернаяЕдиница Тогда + Объект.ПоставляетсяВМногооборотнойТаре = Ложь; + КонецЕсли; + + НастроитьФормуИОбновитьКарточку(); + +КонецПроцедуры + +#КонецОбласти + +#Область УчетИмпортаИПрослеживаемости + +&НаКлиенте +Процедура ЗаполнитьРеквизитыИмпортаИПрослеживаемости() + + РеквизитыПрослеживаемости = НоменклатураКлиентСервер.РеквизитыПрослеживаемостиПоУмолчанию(); + + Если ЗначениеЗаполнено(Объект.КодТНВЭД) Тогда + РеквизитыПрослеживаемости = РеквизитыПрослеживаемости(Объект.КодТНВЭД); + КонецЕсли; + + Объект.ЕдиницаИзмеренияТНВЭД = РеквизитыПрослеживаемости.ЕдиницаИзмерения; + + НоменклатураКлиентСерверЛокализация.ЗаполнитьРеквизитыИмпортаИПрослеживаемости(Объект, + РеквизитыПрослеживаемости); + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция РеквизитыПрослеживаемости(КодТНВЭД) + + Возврат Справочники.Номенклатура.РеквизитыПрослеживаемости(КодТНВЭД); + +КонецФункции + +#КонецОбласти + +#Область ПроверкаУникальности + +&НаСервере +Процедура ПроверитьЗаполнениеОбязательныхРеквизитов(Отказ) + + ТекстОшибки = НСтр("ru='Поле ""%ИмяРеквизита%"" не заполнено'"); + + Если Не ЗначениеЗаполнено(Объект.ВидНоменклатуры) Тогда + + ТекстСообщения = СтрЗаменить(ТекстОшибки, "%ИмяРеквизита%", НСтр("ru = 'Вид номенклатуры'")); + ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Объект.ВидНоменклатуры", , Отказ); + + Возврат; + + КонецЕсли; + + НоменклатураЛокализация.ПроверитьЗаполнениеОбязательныхРеквизитов(ЭтотОбъект, Отказ); + Если Отказ Тогда + Возврат; + КонецЕсли; + + ЗаполняемыйОбъект = Объект; + НоменклатураЛокализация.ДополнитьОбъектФормы(ЭтотОбъект, ЗаполняемыйОбъект); + + НепроверяемыеРеквизиты = Справочники.Номенклатура.НепроверяемыеРеквизиты(ЗаполняемыйОбъект); + + НоменклатураЛокализация.ВосстановитьОбъектФормы(ЭтотОбъект, ЗаполняемыйОбъект); + + РеквизитыФормы = Справочники.Номенклатура.РеквизитыФормыТаблицыНастроек(); + + Для Каждого СтрокаТаблицы Из ТаблицаНастроекРеквизитов Цикл + + Если СтрокаТаблицы.ЭтоДопРеквизит Тогда + Продолжить; + КонецЕсли; + + Если Не СтрокаТаблицы.ЗаполнятьОбязательно + Или (СтрокаТаблицы.ИмяРеквизита <> "ЕдиницаИзмерения" + И НепроверяемыеРеквизиты.Найти(СтрокаТаблицы.ИмяРеквизита) <> Неопределено) Тогда + + Продолжить; + + КонецЕсли; + + ЭтоРеквизитФормы = РеквизитыФормы.Получить(СтрокаТаблицы.ИмяРеквизита) <> Неопределено; + ЗначениеРеквизита = ?(ЭтоРеквизитФормы, + ЭтотОбъект[СтрокаТаблицы.ИмяРеквизита], + Объект[СтрокаТаблицы.ИмяРеквизита]); + ПутьКРеквизиту = СтрокаТаблицы.ПутьКДанным; + + Если Не ЗначениеЗаполнено(ЗначениеРеквизита) Тогда + + ТекстСообщения = СтрЗаменить(ТекстОшибки, "%ИмяРеквизита%", СтрокаТаблицы.Представление); + + Если СтрокаТаблицы.ИмяРеквизита = "ФайлКартинки" Тогда + + Если Не ЗначениеЗаполнено(Объект.Ссылка) + И Не ЗначениеЗаполнено(АдресКартинки) + Или ЗначениеЗаполнено(Объект.Ссылка) Тогда + + ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , ПутьКРеквизиту, , Отказ); + + КонецЕсли; + + Продолжить; + + КонецЕсли; + + Если СтрокаТаблицы.ИмяРеквизита = "ФайлОписанияДляСайта" Тогда + + Если Не ЗначениеЗаполнено(Объект.Ссылка) + И Не ЗначениеЗаполнено(ПутьКФайлуОписанию) + Или ЗначениеЗаполнено(Объект.Ссылка) Тогда + + ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , ПутьКРеквизиту, , Отказ); + + КонецЕсли; + + Продолжить; + + КонецЕсли; + + Если СтрокаТаблицы.ИмяРеквизита = "Штрихкод" Тогда + Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда + ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , ПутьКРеквизиту, , Отказ); + КонецЕсли; + + Продолжить; + КонецЕсли; + + ПолеФормы = ?(ЭтоРеквизитФормы, СтрокаТаблицы.ИмяРеквизита, "Объект." + СтрокаТаблицы.ИмяРеквизита); + + ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , ПолеФормы, ,Отказ); + + КонецЕсли; + + КонецЦикла; + + ПроверяемыеРеквизиты = Новый Массив; + + УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты); + + Если Отказ И Не РежимВидимостиПоказатьТолькоВажные Тогда + НастройкаВидимостиФормы = "ПоказатьВсе"; + РежимВидимостиПоказатьТолькоВажные = Ложь; + + НастроитьФормуИОбновитьКарточку(); + СкрытьРаскрытьВсеГруппы(Ложь); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПроверитьВозможностьСозданияИзмененияЭлементаПоГруппеДоступа(Отказ) + + Если Не ПолучитьФункциональнуюОпцию("ИспользоватьГруппыДоступаНоменклатуры") Тогда + Возврат; + КонецЕсли; + + ТекстСообщения = ""; + + Если ЗначениеЗаполнено(Объект.ГруппаДоступа) Тогда + + Если Не Справочники.ГруппыДоступаНоменклатуры.ЕстьПравоИзменения(Новый Структура("ГруппаДоступа, Ссылка", Объект.ГруппаДоступа, Объект.Ссылка)) Тогда + + ТекстСообщения = НСтр("ru = 'Недостаточно прав на создание номенклатуры по этой группе доступа %ГруппаДоступа%'"); + ТекстСообщения = СтрЗаменить(ТекстСообщения, "%ГруппаДоступа%", Объект.ГруппаДоступа); + + КонецЕсли; + + Иначе + ТекстСообщения = НСтр("ru = 'В виде номенклатуры ""%ГруппаДоступа%"" не указана группа доступа. Невозможно создать номенклатуру этого вида.'"); + ТекстСообщения = СтрЗаменить(ТекстСообщения, "%ГруппаДоступа%", Объект.ГруппаДоступа); + КонецЕсли; + + Если ЗначениеЗаполнено(ТекстСообщения) Тогда + ОбщегоНазначения.СообщитьПользователю(ТекстСообщения,,"Объект.ВидНоменклатуры",,Отказ); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПроверитьУникальностьЭлементаПоШтрихкоду() + + Если Не ЗначениеЗаполнено(Штрихкод) Тогда + Возврат; + КонецЕсли; + + Если ПолучитьФункциональнуюОпцию("ИспользоватьНеуникальныеШтрихкодыНоменклатуры") Тогда + ТекстЗапроса = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | ШтрихкодыНоменклатуры.Номенклатура КАК Ссылка + |ИЗ + | РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура + | ПО ШтрихкодыНоменклатуры.Номенклатура = СправочникНоменклатура.Ссылка + | + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры.РеквизитыДляКонтроляНоменклатуры КАК РеквизитыКонтроляУникальности + | ПО СправочникНоменклатура.Видноменклатуры = РеквизитыКонтроляУникальности.Ссылка + | И РеквизитыКонтроляУникальности.ИмяРеквизита = &ИмяРеквизитаШтрихкод + | И РеквизитыКонтроляУникальности.Уникален + |ГДЕ + | ШтрихкодыНоменклатуры.Штрихкод = &Штрихкод + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ ПЕРВЫЕ 1 + | ШтрихкодыНоменклатуры.Номенклатура КАК Ссылка + |ИЗ + | РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура + | ПО ШтрихкодыНоменклатуры.Номенклатура = СправочникНоменклатура.Ссылка + | + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры.РеквизитыДляКонтроляНоменклатуры КАК РеквизитыКонтроляУникальности + | ПО СправочникНоменклатура.Видноменклатуры = РеквизитыКонтроляУникальности.Ссылка + | И РеквизитыКонтроляУникальности.ИмяРеквизита = &ИмяРеквизитаШтрихкод + | И НЕ РеквизитыКонтроляУникальности.Уникален + |ГДЕ + | ШтрихкодыНоменклатуры.Штрихкод = &Штрихкод + | И НЕ ЕСТЬNULL(РеквизитыКонтроляУникальности.Уникален, ЛОЖЬ) + | И ИСТИНА В + | (ВЫБРАТЬ + | ИСТИНА + | ИЗ + | Справочник.ВидыНоменклатуры.РеквизитыДляКонтроляНоменклатуры КАК РеквизитыКонтроля + | ГДЕ + | РеквизитыКонтроля.Ссылка = &ВидНоменклатуры + | И РеквизитыКонтроля.ИмяРеквизита = &ИмяРеквизитаШтрихкод + | И РеквизитыКонтроля.Уникален) + |"; + Иначе + ТекстЗапроса = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | ШтрихкодыНоменклатуры.Номенклатура КАК Ссылка + |ИЗ + | РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры + |ГДЕ + | ШтрихкодыНоменклатуры.Штрихкод = &Штрихкод"; + КонецЕсли; + + Запрос = Новый Запрос; + Запрос.Текст = ТекстЗапроса; + Запрос.УстановитьПараметр("Штрихкод", СокрЛП(Штрихкод)); + Запрос.УстановитьПараметр("ИмяРеквизитаШтрихкод", "Штрихкод"); + Запрос.УстановитьПараметр("ВидНоменклатуры", Объект.ВидНоменклатуры); + + РезультатЗапроса = Запрос.Выполнить(); + + Если РезультатЗапроса.Пустой() Тогда + Возврат; + КонецЕсли; + + Выборка = РезультатЗапроса.Выбрать(); + Выборка.Следующий(); + + Отбор = Новый Структура("Ссылка", Выборка.Ссылка); + НайденныеСтроки = ТаблицаНайдено.НайтиСтроки(Отбор); + + Если НайденныеСтроки.Количество() = 0 Тогда + НоваяСтрока = ТаблицаНайдено.Добавить(); + НоваяСтрока.Ссылка = Выборка.Ссылка; + НоваяСтрока.НайденоПоШтрихкоду = Истина; + Иначе + НайденныеСтроки[0].НайденоПоШтрихкоду = Истина; + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПроверитьУникальностьПоРабочемуНаименованию() + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | Номенклатура.Ссылка КАК Ссылка + |ИЗ + | Справочник.Номенклатура КАК Номенклатура + |ГДЕ + | Номенклатура.Ссылка <> &Ссылка + | И Номенклатура.Наименование = &Наименование + | И НЕ Номенклатура.ЭтоГруппа"; + + Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка); + Запрос.УстановитьПараметр("Наименование", Объект.Наименование); + + Выборка = Запрос.Выполнить().Выбрать(); + + Отбор = Новый Структура("Ссылка"); + + Пока Выборка.Следующий() Цикл + + Отбор.Ссылка = Выборка.Ссылка; + + НайденныеСтроки = ТаблицаНайдено.НайтиСтроки(Отбор); + + Если НайденныеСтроки.Количество() = 0 Тогда + + НоваяСтрока = ТаблицаНайдено.Добавить(); + + НоваяСтрока.Ссылка = Выборка.Ссылка; + НоваяСтрока.НайденоПоНаименованию = Истина; + + Иначе + + НайденныеСтроки[0].НайденоПоНаименованию = Истина; + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Функция ПроверитьУникальностьСформироватьНаименования(ЭтоЗапись, Отказ = Ложь) + + Если Не Отказ Тогда + ПроверитьВозможностьСозданияИзмененияЭлементаПоГруппеДоступа(Отказ); + КонецЕсли; + + Если Отказ Тогда + Возврат Неопределено; + КонецЕсли; + + ТаблицаНайдено.Очистить(); + + Если Константы.КонтролироватьУникальностьНоменклатурыПоСочетаниюЗначенийРеквизитов.Получить() + И Не ЗначениеЗаполнено(Объект.Ссылка) + И Не КонтрольУникальностиПередЗаписьюПроведен Тогда + + Справочники.Номенклатура.ПроверитьУникальностьЭлементаПоРеквизитам(ЭтотОбъект); + + Если ЗначениеЗаполнено(Штрихкод) Тогда + ПроверитьУникальностьЭлементаПоШтрихкоду(); + КонецЕсли; + + КонецЕсли; + + Если ЭтоЗапись Тогда + + ВариантыФормирования = Новый Массив; + + Если ФормироватьРабочееНаименование Тогда + ВариантыФормирования.Добавить("Рабочее"); + КонецЕсли; + + Если ФормироватьНаименованиеДляПечати Тогда + ВариантыФормирования.Добавить("ДляПечати"); + КонецЕсли; + + РезультатЗаполнения = ЗаполнитьНаименованиеПоШаблонуСервер(СтрСоединить(ВариантыФормирования, ", ")); + Если РезультатЗаполнения.ЕстьОшибки Тогда + ОбщегоНазначения.СообщитьПользователю(РезультатЗаполнения.ТекстОшибки,, "Наименование", "Объект"); + КонецЕсли; + + КонецЕсли; + + Если ЗначениеЗаполнено(Объект.Наименование) + И Константы.КонтролироватьУникальностьРабочегоНаименованияНоменклатурыИХарактеристик.Получить() Тогда + + ПроверитьУникальностьПоРабочемуНаименованию(); + + ИначеЕсли Не ЗначениеЗаполнено(Объект.Наименование) + И ЭтоЗапись Тогда + + ТекстСообщения = НСтр("ru='Поле ""Рабочее наименование"" не заполнено'"); + ОбщегоНазначения.СообщитьПользователю(ТекстСообщения,, "Наименование", "Объект"); + Отказ = Истина; + + КонецЕсли; + + ТаблицаНайдено.Сортировать("Ссылка"); + Если ТаблицаНайдено.Количество() > 0 Тогда + + Отказ = Истина; + Возврат ПоместитьВоВременноеХранилище(ТаблицаНайдено.Выгрузить(), УникальныйИдентификатор); + + Иначе + + Возврат Неопределено; + + КонецЕсли; + +КонецФункции + +#КонецОбласти + +#Область Прочее + +&НаСервере +Процедура НастроитьДоступностьБлокируемыхРеквизитов() + + Элементы.ИспользоватьУпаковки.ТолькоПросмотр = Объект.ИспользоватьУпаковки; + Элементы.ИспользованиеУпаковокИндивидуальныйНабор.ТолькоПросмотр = Объект.ИспользоватьУпаковки; + Элементы.ИспользованиеУпаковокОбщийНабор.ТолькоПросмотр = Объект.ИспользоватьУпаковки; + Элементы.НаборУпаковок.ТолькоПросмотр = Объект.ИспользоватьУпаковки; + + НоменклатураЛокализация.НастроитьДоступностьБлокируемыхРеквизитов(ЭтотОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьПоОбъектуКопирования() + + Если ПараметрыСоздания().Свойство("Качество") + И ЗначениеЗаполнено(ПараметрыСоздания().Качество) + И ПараметрыСоздания().Качество <> Перечисления.ГрадацииКачества.Новый Тогда + + Автозаголовок = Ложь; + + ТекстЗаголовка = НСтр("ru='Создание номенклатуры для испорченного товара ""%НаименованиеТовара%"".'"); + Заголовок = СтрЗаменить(ТекстЗаголовка, "%НаименованиеТовара%", Строка(Объект.Наименование)); + + Объект.Качество = ПараметрыСоздания().Качество; + Объект.СкладскаяГруппа = Справочники.СкладскиеГруппыНоменклатуры.ПустаяСсылка(); + Объект.ЦеноваяГруппа = Справочники.ЦеновыеГруппы.ПустаяСсылка(); + Объект.ФайлКартинки = Справочники.НоменклатураПрисоединенныеФайлы.ПустаяСсылка(); + Объект.ФайлОписанияДляСайта = Справочники.НоменклатураПрисоединенныеФайлы.ПустаяСсылка(); + + ПараметрыСозданияСтруктура = Новый Структура(ПараметрыСоздания()); + ПараметрыСозданияСтруктура.Наименование = Объект.Наименование + ", " + Строка(Объект.Качество); + + Для Каждого ИспользуетсяДопЯзык Из МультиязычностьСервер.СведенияОЯзыках().Используется Цикл + Если ИспользуетсяДопЯзык.Значение = Истина Тогда + ИмяРеквизита = СтрШаблон("Наименование%1", ИспользуетсяДопЯзык.Ключ); + ПараметрыСозданияСтруктура[ИмяРеквизита] = Объект[ИмяРеквизита] + ", " + Строка(Объект.Качество); + КонецЕсли; + КонецЦикла; + + ПараметрыСозданияСтруктура.НаименованиеПолное = Объект.НаименованиеПолное + ", " + Строка(Объект.Качество); + ПараметрыСоздания = Новый ФиксированнаяСтруктура(ПараметрыСозданияСтруктура); + + КонецЕсли; + + Если ПолучитьФункциональнуюОпцию("ИспользоватьПодакцизныеТовары") + И УчетПодакцизныхТоваров.ЭтоПодакцизныйТовар(ПараметрыСоздания.ИсточникКопирования) Тогда + Элементы.ТекстДанныхПоНезаписаннымПодакцизнымКатегориям.Видимость = Истина; + КонецЕсли; + + Если ЗначениеЗаполнено(Объект.ФайлКартинки) + Или ЗначениеЗаполнено(Объект.ФайлОписанияДляСайта) Тогда + + СкопироватьПрисоединенныеФайлы(ПараметрыСоздания().ИсточникКопирования.ФайлКартинки, + ПараметрыСоздания().ИсточникКопирования.ФайлОписанияДляСайта); + + Объект.ФайлКартинки = Справочники.НоменклатураПрисоединенныеФайлы.ПустаяСсылка(); + Объект.ФайлОписанияДляСайта = Справочники.НоменклатураПрисоединенныеФайлы.ПустаяСсылка(); + + КонецЕсли; + + Объект.ГруппаДоступа = Справочники.ГруппыДоступаНоменклатуры.ПустаяСсылка(); + Объект.Код = ""; + Объект.КодДляПоиска = ""; + Объект.ПометкаУдаления = Ложь; + + НоменклатураЛокализация.НастроитьДоступностьБлокируемыхРеквизитов(ЭтотОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьПоПараметрамСоздания() + + ОбщегоНазначенияУТКлиентСервер.ЗаполнитьЗначенияПустыхСвойств(Объект, ПараметрыСоздания()); + + Если ПараметрыСоздания().Свойство("НаименованиеНоменклатурыПоставщика") + И ЗначениеЗаполнено(ПараметрыСоздания().НаименованиеНоменклатурыПоставщика) Тогда + + ПараметрыСозданияСтруктура = Новый Структура(ПараметрыСоздания()); + ПараметрыСозданияСтруктура.Наименование = Объект.Наименование; + ПараметрыСоздания = Новый ФиксированнаяСтруктура(ПараметрыСозданияСтруктура); + + КонецЕсли; + + Если ПараметрыСоздания().Свойство("АртикулНоменклатурыПоставщика") + И ЗначениеЗаполнено(ПараметрыСоздания().АртикулНоменклатурыПоставщика) + И Не ЗначениеЗаполнено(Объект.Артикул)Тогда + Объект.Артикул = ПараметрыСоздания().АртикулНоменклатурыПоставщика; + КонецЕсли; + + Если ПустаяСтрока(Штрихкод) + И ПараметрыСоздания().Свойство("Штрихкод") Тогда + Штрихкод = ПараметрыСоздания().Штрихкод; + КонецЕсли; + + Если Не ЗначениеЗаполнено(Объект.ВидНоменклатуры) + Или ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.ВидНоменклатуры, "ЭтоГруппа") Тогда + Объект.ВидНоменклатуры = Справочники.ВидыНоменклатуры.ВидНоменклатурыПоУмолчанию(); + КонецЕсли; + + НоменклатураЛокализация.ЗаполнитьПоПараметрамСоздания(Объект, ПараметрыСоздания()); + + ЗаполнениеПоИсточникуКопирования = ПараметрыСоздания().Свойство("ИсточникКопирования") + И ЗначениеЗаполнено(ПараметрыСоздания().ИсточникКопирования); + + ВидНоменклатурыПриИзмененииНаСервере(ЗаполнениеПоИсточникуКопирования); + + Если ЗначениеЗаполнено(Объект.ВидНоменклатуры) Тогда + + Если ПараметрыСоздания().Свойство("АдресТаблицыПараметров") + И ЗначениеЗаполнено(ПараметрыСоздания().АдресТаблицыПараметров) + И ЭтоАдресВременногоХранилища(ПараметрыСоздания().АдресТаблицыПараметров) Тогда + + ТаблицаДопРеквизитов = Новый ТаблицаЗначений; + ТаблицаДопРеквизитов.Колонки.Добавить("ИмяРеквизита", Новый ОписаниеТипов("Строка",,,Новый КвалификаторыСтроки(255))); + + ТаблицаЗначенийРеквизитов = ПолучитьИзВременногоХранилища(ПараметрыСоздания().АдресТаблицыПараметров); + МассивРеквизитов = ТаблицаЗначенийРеквизитов.НайтиСтроки(Новый Структура("ЭтоДопРеквизит", Ложь)); + + Для Каждого ЭлементМассива Из МассивРеквизитов Цикл + Если Не ЗначениеЗаполнено(Объект[ЭлементМассива.ИмяРеквизита]) Тогда + Объект[ЭлементМассива.ИмяРеквизита] = ЭлементМассива.ЗначениеОтбора; + КонецЕсли; + КонецЦикла; + + МассивДопРеквизитов = ТаблицаЗначенийРеквизитов.НайтиСтроки(Новый Структура("ЭтоДопРеквизит", Истина)); + + Если ПолучитьФункциональнуюОпцию("ИспользоватьДополнительныеРеквизитыИСведения") + И МассивДопРеквизитов.Количество() > 0 Тогда + + Для Каждого ЭлементМассива Из МассивДопРеквизитов Цикл + + НоваяСтрока = ТаблицаДопРеквизитов.Добавить(); + НоваяСтрока.ИмяРеквизита = ЭлементМассива.ИмяРеквизита; + + КонецЦикла; + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ТаблицаДопРеквизитов.ИмяРеквизита + |ПОМЕСТИТЬ ТаблицаИменСвойств + |ИЗ + | &ТаблицаДопРеквизитов КАК ТаблицаДопРеквизитов + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ТаблицаИменСвойств.ИмяРеквизита КАК ИмяРеквизита, + | НаборыДополнительныхРеквизитов.Свойство КАК Свойство + |ИЗ + | ТаблицаИменСвойств КАК ТаблицаИменСвойств + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК НаборыДополнительныхРеквизитов + | ПО ТаблицаИменСвойств.ИмяРеквизита = НаборыДополнительныхРеквизитов.Свойство.Наименование + |ГДЕ + | НаборыДополнительныхРеквизитов.Ссылка = &НаборРеквизитов"; + + Запрос.УстановитьПараметр("ТаблицаДопРеквизитов", ТаблицаДопРеквизитов); + Запрос.УстановитьПараметр("НаборРеквизитов", РеквизитыВидаНоменклатуры.НаборСвойств); + + ТаблицаСвойств = Запрос.Выполнить().Выгрузить(); + СтруктураПоиска = Новый Структура("ИмяРеквизита"); + + Для Каждого СтрокаТаблицы Из ТаблицаСвойств Цикл + + СтруктураПоискаЗначения = Новый Структура("Свойство", СтрокаТаблицы.Свойство); + МассивСтрок = ЭтотОбъект.Свойства_ОписаниеДополнительныхРеквизитов.НайтиСтроки(СтруктураПоискаЗначения); + ОписаниеСвойства = МассивСтрок[0]; + ПутьКДанным = ОписаниеСвойства.ИмяРеквизитаЗначение; + + СтруктураПоиска.ИмяРеквизита = СтрокаТаблицы.ИмяРеквизита; + МассивСтрокЗначение = ТаблицаЗначенийРеквизитов.НайтиСтроки(СтруктураПоиска); + ЗначениеРеквизита = МассивСтрокЗначение[0].ЗначениеОтбора; + Если Не ЗначениеЗаполнено(ЭтотОбъект[ПутьКДанным]) Тогда + ЭтотОбъект[ПутьКДанным] = ЗначениеРеквизита; + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +// Возвращаемое значение: +// ФиксированнаяСтруктура: +// * АдресТаблицыПараметров - Строка +// * АртикулНоменклатурыПоставщика - Строка +// * ИсточникКопирования - Структура +// * Качество - ПеречислениеСсылка.ГрадацииКачества +// * Наименование - Строка +// * НаименованиеНоменклатурыПоставщика - Строка +// * НаименованиеПолное - Строка +// * Штрихкод - Строка +// +&НаСервере +Функция ПараметрыСоздания() + + Возврат ПараметрыСоздания; + +КонецФункции + +// Возвращаемое значение: +// Структура: +// * ПолноеИмя - Строка - имя файла. +// * ИмяБезРасширения - Строка - имя файла без расширения. +// * Расширение - Строка - расширение файла. +// +&НаКлиентеНаСервереБезКонтекста +Функция ОписаниеДанныхФайла() + + Результат = Новый Структура; + Результат.Вставить("ПолноеИмя"); + Результат.Вставить("ИмяБезРасширения"); + Результат.Вставить("Расширение"); + + Возврат Результат; + +КонецФункции + +// Параметры: +// ФайлКартинки - СправочникСсылка.НоменклатураПрисоединенныеФайлы +// ФайлОписание - СправочникСсылка.НоменклатураПрисоединенныеФайлы +&НаСервере +Процедура СкопироватьПрисоединенныеФайлы(ФайлКартинки, ФайлОписание) + + Если ЗначениеЗаполнено(ФайлКартинки) Тогда + + ДанныеПрисоединенногоФайла = РаботаСФайлами.ДанныеФайла(ФайлКартинки); + + ДанныеФайлаКартинки = ОписаниеДанныхФайла(); + ДанныеФайлаКартинки.ПолноеИмя = ДанныеПрисоединенногоФайла.ИмяФайла; + ДанныеФайлаКартинки.ИмяБезРасширения = СтрЗаменить(ДанныеПрисоединенногоФайла.ИмяФайла, + "." + ДанныеПрисоединенногоФайла.Расширение, + ""); + ДанныеФайлаКартинки.Расширение = ДанныеПрисоединенногоФайла.Расширение; + + // Конвертация присоединенного файла "старого" формата + ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(ДанныеПрисоединенногоФайла.СсылкаНаДвоичныеДанныеФайла); + ПреобразоватьКартинкуВДвоичныеДанные(ДвоичныеДанныеФайла); + + Если Не ЗначениеЗаполнено(ДвоичныеДанныеФайла) Тогда + ДанныеФайлаКартинки = Неопределено; + КонецЕсли; + + АдресКартинки = ПоместитьВоВременноеХранилище(ДвоичныеДанныеФайла, УникальныйИдентификатор); + + КонецЕсли; + + Если ЗначениеЗаполнено(ФайлОписание) Тогда + + ДанныеПрисоединенногоФайла = РаботаСФайлами.ДанныеФайла(ФайлОписание); + + ДанныеФайлаHTML = ОписаниеДанныхФайла(); + ДанныеФайлаHTML.ПолноеИмя = ДанныеПрисоединенногоФайла.ИмяФайла; + ДанныеФайлаHTML.ИмяБезРасширения = СтрЗаменить(ДанныеПрисоединенногоФайла.ИмяФайла, + "." + ДанныеПрисоединенногоФайла.Расширение, + ""); + ДанныеФайлаHTML.Расширение = ДанныеПрисоединенногоФайла.Расширение; + + ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(ДанныеПрисоединенногоФайла.СсылкаНаДвоичныеДанныеФайла); + + АдресОписанияHTML = ПоместитьВоВременноеХранилище(ДвоичныеДанныеФайла, УникальныйИдентификатор); + ПутьКФайлуОписанию = Строка(ФайлОписание); + + КонецЕсли; + +КонецПроцедуры + +// Параметры: +// ОбъектКартинка - ДвоичныеДанные, Картинка - +&НаСервереБезКонтекста +Процедура ПреобразоватьКартинкуВДвоичныеДанные(ОбъектКартинка) + + Если ТипЗнч(ОбъектКартинка) <> Тип("Картинка") Тогда + Возврат; + КонецЕсли; + + ВременныйФайл = ПолучитьИмяВременногоФайла(); + ОбъектКартинка.Записать(ВременныйФайл); + + ОбъектКартинка = Новый ДвоичныеДанные(ВременныйФайл); + + Попытка + УдалитьФайлы(ВременныйФайл); + Исключение + ИмяСобытия = НСтр("ru = 'Копирование номенклатуры. Удаление временного файла.'", + ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(ИмяСобытия, + УровеньЖурналаРегистрации.Ошибка, + , + , + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + +КонецПроцедуры + +&НаСервере +Процедура ОбработатьЗаписьТовараДругогоКачества() + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | СпрНоменклатура.ЕстьТоварыДругогоКачества КАК ЕстьТоварыДругогоКачестваВБазе, + | ВЫБОР + | КОГДА ТоварыДругогоКачества.НоменклатураБрак ЕСТЬ NULL + | ТОГДА ЛОЖЬ + | ИНАЧЕ ИСТИНА + | КОНЕЦ КАК ЕстьТоварыДругогоКачестваПоФакту + |ИЗ + | Справочник.Номенклатура КАК СпрНоменклатура + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТоварыДругогоКачества КАК ТоварыДругогоКачества + | ПО СпрНоменклатура.Ссылка = ТоварыДругогоКачества.Номенклатура + |ГДЕ + | СпрНоменклатура.Ссылка = &Номенклатура + | И СпрНоменклатура.ЕстьТоварыДругогоКачества <> ВЫБОР + | КОГДА ТоварыДругогоКачества.НоменклатураБрак ЕСТЬ NULL + | ТОГДА ЛОЖЬ + | ИНАЧЕ ИСТИНА + | КОНЕЦ"; + + Запрос.УстановитьПараметр("Номенклатура",Объект.Ссылка); + Выборка = Запрос.Выполнить().Выбрать(); + + Если Выборка.Следующий() Тогда + Если Объект.ЕстьТоварыДругогоКачества <> Выборка.ЕстьТоварыДругогоКачестваПоФакту Тогда + Объект.ЕстьТоварыДругогоКачества = Выборка.ЕстьТоварыДругогоКачестваПоФакту; + КонецЕсли; + + Записать(); + КонецЕсли; + + НастроитьФормуИОбновитьКарточку(); + +КонецПроцедуры + +&НаСервере +Функция ЗаполнитьНаименованиеПоШаблонуСервер(ВариантыФормирования) + + РезультатЗаполнения = Новый Структура; + РезультатЗаполнения.Вставить("ЕстьОшибки", Ложь); + РезультатЗаполнения.Вставить("ТекстОшибки", ""); + + Если Не ЗначениеЗаполнено(ВариантыФормирования) Тогда + Возврат РезультатЗаполнения; + КонецЕсли; + + УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, Объект); + СправочникОбъект = РеквизитФормыВЗначение("Объект"); + + МассивВариантов = СтрРазделить(ВариантыФормирования, ", ", Ложь); + + Если МассивВариантов.Найти("Рабочее") <> Неопределено Тогда + + ШаблонКачество = "[Качество]"; + ШаблонНаименования = РеквизитыВидаНоменклатуры.ШаблонРабочегоНаименованияНоменклатуры; + + Если ЗначениеЗаполнено(Объект.Качество) + И Объект.Качество <> Перечисления.ГрадацииКачества.Новый + И СтрНайти(ШаблонНаименования, ШаблонКачество) = 0 Тогда + + ШаблонНаименования = ШаблонНаименования + " + "", "" + " + ШаблонКачество; + + КонецЕсли; + + НовоеРабочееНаименование = НоменклатураСервер.НаименованиеПоШаблону(ШаблонНаименования, СправочникОбъект); + + Объект.Наименование = НовоеРабочееНаименование; + СправочникОбъект.Наименование = Объект.Наименование; + + ДлинаРабочегоНаименования = СтрДлина(НовоеРабочееНаименование); + МаксимальнаяДлинаРабочегоНаименования = Метаданные.Справочники.Номенклатура.ДлинаНаименования; + + Если ДлинаРабочегоНаименования > МаксимальнаяДлинаРабочегоНаименования Тогда + + Если ТекущийЯзык().КодЯзыка = "ru" Тогда + + МассивПредставлений = ПолучитьСклоненияСтрокиПоЧислу("символ", ДлинаРабочегоНаименования,, "L=ru_RU"); + Если МассивПредставлений.Количество() > 0 Тогда + ПредставлениеДлины = МассивПредставлений.Получить(0); + Иначе + ПредставлениеДлины = Строка(ДлинаРабочегоНаименования); + КонецЕсли; + МассивПредставлений = ПолучитьСклоненияСтрокиПоЧислу("символ", МаксимальнаяДлинаРабочегоНаименования,, "L=ru_RU"); + Если МассивПредставлений.Количество() > 0 Тогда + ПредставлениеМаксимальнойДлины = МассивПредставлений.Получить(0); + Иначе + ПредставлениеМаксимальнойДлины = Строка(МаксимальнаяДлинаРабочегоНаименования); + КонецЕсли; + + Иначе + ПредставлениеДлины = Строка(ДлинаРабочегоНаименования); + ПредставлениеМаксимальнойДлины = Строка(МаксимальнаяДлинаРабочегоНаименования); + КонецЕсли; + + РезультатЗаполнения.ЕстьОшибки = Истина; + РезультатЗаполнения.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Длина сформированного по шаблону наименования (%1) превышает установленное ограничение (%2).'"), + ПредставлениеДлины, + ПредставлениеМаксимальнойДлины + ); + + КонецЕсли; + + КонецЕсли; + + Если МассивВариантов.Найти("ДляПечати") <> Неопределено Тогда + + Объект.НаименованиеПолное = НоменклатураСервер.НаименованиеПоШаблону( + РеквизитыВидаНоменклатуры.ШаблонНаименованияДляПечатиНоменклатуры, + СправочникОбъект + ); + + КонецЕсли; + + ПересчитатьНеобходимостьФормированияНаименований(ЭтотОбъект); + + Возврат РезультатЗаполнения; + +КонецФункции + +&НаСервере +Функция ЗаполнитьМультиязычноеНаименованиеПолноеПоНаименованию() + РезультатЗаполнения = Новый Структура; + РезультатЗаполнения.Вставить("Модифицированность", Истина); + РезультатЗаполнения.Вставить("ХранениеВТабличнойЧасти", Истина); + РезультатЗаполнения.Вставить("ОсновнойЯзык", ТекущийЯзык().КодЯзыка ); + + ИмяРеквизита = "Наименование"; + ЗначенияНаРазныхЯзыках = Новый Массив; + + ЗначениеЯзыка = Новый Структура; + + Для Каждого Язык Из Метаданные.Языки Цикл + Если СтрСравнить(Язык.КодЯзыка, ТекущийЯзык().КодЯзыка) = 0 Тогда + Продолжить; + КонецЕсли; + Суффикс = МультиязычностьСервер.СуффиксЯзыка(Язык.КодЯзыка); + ЗначениеЯзыка = Новый Структура; + ЗначениеЯзыка.Вставить("КодЯзыка", Язык.КодЯзыка); + ЗначениеЯзыка.Вставить("ЗначениеРеквизита", Объект[ИмяРеквизита + "Язык1"]); + ЗначениеЯзыка.Вставить("Суффикс", "Язык1"); + ЗначенияНаРазныхЯзыках.Добавить(ЗначениеЯзыка); + КонецЦикла; + РезультатЗаполнения.Вставить("ЗначенияНаРазныхЯзыках", ЗначенияНаРазныхЯзыках); + + Возврат РезультатЗаполнения; +КонецФункции + +&НаСервере +Функция ЗаголовокФормированияПоШаблонуРабочее() + Возврат НСтр("ru='<Рабочее наименование будет сформировано по шаблону>'"); +КонецФункции + +&НаСервере +Функция ЗаголовокФормированияПоШаблонуДляПечати() + Возврат НСтр("ru='<Наименование для печати будет сформировано по шаблону>'"); +КонецФункции + +&НаСервере +Процедура УстановитьДоступностьРедактированияНаименований(СкрыватьДоступность) + + ЗаголовокФормированияПоШаблонуРабочее = ЗаголовокФормированияПоШаблонуРабочее(); + ЗаголовокФормированияПоШаблонуДляПечати = ЗаголовокФормированияПоШаблонуДляПечати(); + + Если РеквизитыВидаНоменклатуры.ЗапретРедактированияРабочегоНаименованияНоменклатуры Тогда + + Элементы.Наименование.АвтоОтметкаНезаполненного = Ложь; + Элементы.Наименование.ОтметкаНезаполненного = Ложь; + + Иначе + + Элементы.Наименование.АвтоОтметкаНезаполненного = Не ЗначениеЗаполнено(РеквизитыВидаНоменклатуры.ШаблонРабочегоНаименованияНоменклатуры); + + КонецЕсли; + + Если СкрыватьДоступность Тогда + + Если РеквизитыВидаНоменклатуры.ЗапретРедактированияРабочегоНаименованияНоменклатуры Тогда + Объект.Наименование = ?(ЗначениеЗаполнено(Объект.Наименование), Объект.Наименование, ЗаголовокФормированияПоШаблонуРабочее); + ЦветТекстаНаименования = ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента; + Иначе + Объект.Наименование = ?(ЗначениеЗаполнено(Объект.Наименование), Объект.Наименование, ""); + ЦветТекстаНаименования = ЦветаСтиля.ЦветТекстаФормы; + КонецЕсли; + + Элементы.Наименование.ТолькоПросмотр = РеквизитыВидаНоменклатуры.ЗапретРедактированияРабочегоНаименованияНоменклатуры; + Элементы.Наименование.ЦветТекста = ЦветТекстаНаименования; + + Если РеквизитыВидаНоменклатуры.ЗапретРедактированияНаименованияДляПечатиНоменклатуры Тогда + Объект.НаименованиеПолное = ?(ЗначениеЗаполнено(Объект.НаименованиеПолное), Объект.НаименованиеПолное, ЗаголовокФормированияПоШаблонуДляПечати); + ЦветТекстаНаименования = ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента; + Иначе + Объект.НаименованиеПолное = ?(ЗначениеЗаполнено(Объект.НаименованиеПолное), Объект.НаименованиеПолное, ""); + ЦветТекстаНаименования = ЦветаСтиля.ЦветТекстаФормы; + КонецЕсли; + + Элементы.НаименованиеПолное.ТолькоПросмотр = РеквизитыВидаНоменклатуры.ЗапретРедактированияНаименованияДляПечатиНоменклатуры; + Элементы.НаименованиеПолное.ЦветТекста = ЦветТекстаНаименования; + + Иначе + + Если РеквизитыВидаНоменклатуры.ЗапретРедактированияРабочегоНаименованияНоменклатуры И Объект.Наименование = ЗаголовокФормированияПоШаблонуРабочее Тогда + Объект.Наименование = ?(Объект.Наименование = ЗаголовокФормированияПоШаблонуРабочее, "", Объект.Наименование); + КонецЕсли; + + Если РеквизитыВидаНоменклатуры.ЗапретРедактированияНаименованияДляПечатиНоменклатуры И Объект.НаименованиеПолное = ЗаголовокФормированияПоШаблонуДляПечати Тогда + Объект.НаименованиеПолное = ?(Объект.НаименованиеПолное = ЗаголовокФормированияПоШаблонуДляПечати, "", Объект.НаименованиеПолное); + КонецЕсли; + + КонецЕсли; + + Элементы.ЗаполнитьНаименованиеДляПечатиПоШаблону.Доступность = ЗначениеЗаполнено(РеквизитыВидаНоменклатуры.ШаблонНаименованияДляПечатиНоменклатуры); + + Элементы.ЗаполнитьРабочееНаименованиеПоШаблону.Доступность = ЗначениеЗаполнено(РеквизитыВидаНоменклатуры.ШаблонРабочегоНаименованияНоменклатуры); + +КонецПроцедуры + +&НаСервере +Процедура УстановитьУсловноеОформление() + + УсловноеОформление.Элементы.Очистить(); + + // + Если ПолучитьФункциональнуюОпцию("ИспользоватьУпаковкиНоменклатуры") Тогда + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ИспользованиеУпаковокОбщийНабор.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Элементы.ИспользоватьУпаковки.ТолькоПросмотр; + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина); + + // + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ИспользованиеУпаковокИндивидуальныйНабор.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Элементы.ИспользоватьУпаковки.ТолькоПросмотр; + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина); + + КонецЕсли; + + УстановитьУсловноеОформлениеЛокализация(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриЗакрытии(ЗавершениеРаботы) + + МенеджерОборудованияКлиент.НачатьОтключениеОборудованиеПриЗакрытииФормы(Неопределено, ЭтотОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ОбновитьЭлементыДополнительныхРеквизитов(ОбновитьРеквизиты = Истина) + + Если ОбновитьРеквизиты Тогда + УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект, , Ложь); + КонецЕсли; + + Для Каждого Элемент Из Элементы.ГруппаДополнительныеРеквизиты.ПодчиненныеЭлементы Цикл + + Если Элемент.Вид = ВидПоляФормы.ПолеВвода Тогда + + Если Элемент.МногострочныйРежим <> Истина Тогда + + Элемент.РастягиватьПоГоризонтали = Ложь; + + Иначе + + Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Лево; + Элемент.РастягиватьПоВертикали = Ложь; + Элемент.РастягиватьПоГоризонтали = Истина; + + КонецЕсли; + + ИначеЕсли Элемент.Вид = ВидПоляФормы.ПолеФлажка Тогда + + Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Право; + + КонецЕсли; + + КонецЦикла; + + ТаблицаРеквизитов = Справочники.Номенклатура.ТаблицаНастроекРеквизитов(Объект.ВидНоменклатуры, + Объект.ТипНоменклатуры, + Объект.ОсобенностьУчета, + Объект.ИспользованиеХарактеристик, + РеквизитыВидаНоменклатуры.ИспользоватьСрокГодностиСерии, + "Номенклатура"); + + ТаблицаНастроекРеквизитов.Загрузить(ТаблицаРеквизитов); + + Справочники.Номенклатура.НастроитьФормуПоТаблицеНастроек(ЭтотОбъект); + +КонецПроцедуры + +&НаСервере +Функция ИменаСворачиваемыхГрупп() + + ИменаСворачиваемыхГрупп = Новый Массив; + + ИменаСворачиваемыхГрупп.Добавить(Элементы.СворачиваемаяГруппаОсновныеПараметрыУчета.Имя); + ИменаСворачиваемыхГрупп.Добавить(Элементы.СворачиваемаяГруппаЕдиницыИзмерения.Имя); + ИменаСворачиваемыхГрупп.Добавить(Элементы.СворачиваемаяГруппаФинансовыйУчет.Имя); + ИменаСворачиваемыхГрупп.Добавить(Элементы.СворачиваемаяГруппаКартинкаОписание.Имя); + ИменаСворачиваемыхГрупп.Добавить(Элементы.СворачиваемаяГруппаДополнительныеРеквизиты.Имя); + ИменаСворачиваемыхГрупп.Добавить(Элементы.СворачиваемаяГруппаПланированиеИМаркетинг.Имя); + ИменаСворачиваемыхГрупп.Добавить(Элементы.СворачиваемаяГруппаОбеспечение.Имя); + ИменаСворачиваемыхГрупп.Добавить(Элементы.СворачиваемаяГруппаКонтрольКачества.Имя); + ИменаСворачиваемыхГрупп.Добавить(Элементы.СворачиваемаяГруппаЦены.Имя); + ИменаСворачиваемыхГрупп.Добавить(Элементы.СворачиваемаяГруппаШаблоны.Имя); + ИменаСворачиваемыхГрупп.Добавить(Элементы.СворачиваемаяГруппаПодакцизныхКатегорий.Имя); + + ИменаСворачиваемыхГруппЛокализация(ИменаСворачиваемыхГрупп); + + Возврат ИменаСворачиваемыхГрупп; +КонецФункции + +&НаСервереБезКонтекста +Функция ЕдиницаИзмерения(Знач ДрагоценныйМатериал) + + Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДрагоценныйМатериал, "ЕдиницаИзмерения"); + +КонецФункции + +// Описание +// +// Параметры: +// Мера - Строка - +// Возвращаемое значение: +// Структура - Содержит ключи: +// * Использовать - Строка - +// * ЕдиницаИзмерения - Строка - +// * Числитель - Строка - +// * Знаменатель - Строка - +// * МожноУказыватьВДокументах - Строка - +// * МожноУказыватьВДокументахСтрока - Строка - +// * Отступ - Строка - +// * Надпись - Строка - +&НаКлиентеНаСервереБезКонтекста +Функция СвойстваМеры(Мера) + + СвойстваМеры = Новый Структура; + СвойстваМеры.Вставить("Использовать"); + СвойстваМеры.Вставить("ЕдиницаИзмерения"); + СвойстваМеры.Вставить("Числитель"); + СвойстваМеры.Вставить("Знаменатель"); + СвойстваМеры.Вставить("МожноУказыватьВДокументах"); + СвойстваМеры.Вставить("МожноУказыватьВДокументахСтрока"); + СвойстваМеры.Вставить("Отступ"); + СвойстваМеры.Вставить("Надпись"); + + Если Мера = "Объем" Тогда + СвойстваМеры.Использовать = "ОбъемИспользовать"; + СвойстваМеры.ЕдиницаИзмерения = "ОбъемЕдиницаИзмерения"; + СвойстваМеры.Числитель = "ОбъемЧислитель"; + СвойстваМеры.Знаменатель = "ОбъемЗнаменатель"; + СвойстваМеры.МожноУказыватьВДокументах = "ОбъемМожноУказыватьВДокументах"; + СвойстваМеры.МожноУказыватьВДокументахСтрока = "ОбъемМожноУказыватьВДокументахСтрока"; + СвойстваМеры.Отступ = "ОбъемОтступ"; + СвойстваМеры.Надпись = "ОбъемНадпись"; + ИначеЕсли Мера = "Длина" Тогда + СвойстваМеры.Использовать = "ДлинаИспользовать"; + СвойстваМеры.ЕдиницаИзмерения = "ДлинаЕдиницаИзмерения"; + СвойстваМеры.Числитель = "ДлинаЧислитель"; + СвойстваМеры.Знаменатель = "ДлинаЗнаменатель"; + СвойстваМеры.МожноУказыватьВДокументах = "ДлинаМожноУказыватьВДокументах"; + СвойстваМеры.МожноУказыватьВДокументахСтрока = "ДлинаМожноУказыватьВДокументахСтрока"; + СвойстваМеры.Отступ = "ДлинаОтступ"; + СвойстваМеры.Надпись = "ДлинаНадпись"; + ИначеЕсли Мера = "Ширина" Тогда + СвойстваМеры.Использовать = "ШиринаИспользовать"; + СвойстваМеры.ЕдиницаИзмерения = "ШиринаЕдиницаИзмерения"; + СвойстваМеры.Числитель = "ШиринаЧислитель"; + СвойстваМеры.Знаменатель = "ШиринаЗнаменатель"; + СвойстваМеры.МожноУказыватьВДокументах = "ШиринаМожноУказыватьВДокументах"; + СвойстваМеры.МожноУказыватьВДокументахСтрока = "ШиринаМожноУказыватьВДокументахСтрока"; + СвойстваМеры.Отступ = "ШиринаОтступ"; + СвойстваМеры.Надпись = "ШиринаНадпись"; + ИначеЕсли Мера = "Вес" Тогда + СвойстваМеры.Использовать = "ВесИспользовать"; + СвойстваМеры.ЕдиницаИзмерения = "ВесЕдиницаИзмерения"; + СвойстваМеры.Числитель = "ВесЧислитель"; + СвойстваМеры.Знаменатель = "ВесЗнаменатель"; + СвойстваМеры.МожноУказыватьВДокументах = "ВесМожноУказыватьВДокументах"; + СвойстваМеры.МожноУказыватьВДокументахСтрока = "ВесМожноУказыватьВДокументахСтрока"; + СвойстваМеры.Отступ = "ВесОтступ"; + СвойстваМеры.Надпись = "ВесНадпись"; + ИначеЕсли Мера = "Площадь" Тогда + СвойстваМеры.Использовать = "ПлощадьИспользовать"; + СвойстваМеры.ЕдиницаИзмерения = "ПлощадьЕдиницаИзмерения"; + СвойстваМеры.Числитель = "ПлощадьЧислитель"; + СвойстваМеры.Знаменатель = "ПлощадьЗнаменатель"; + СвойстваМеры.МожноУказыватьВДокументах = "ПлощадьМожноУказыватьВДокументах"; + СвойстваМеры.МожноУказыватьВДокументахСтрока = "ПлощадьМожноУказыватьВДокументахСтрока"; + СвойстваМеры.Отступ = "ПлощадьОтступ"; + СвойстваМеры.Надпись = "ПлощадьНадпись"; + Иначе + ВызватьИсключение СтрШаблон(НСтр("ru = 'Не определены свойства меры %1'"), Мера); + КонецЕсли; + + Возврат СвойстваМеры; + +КонецФункции + +// Параметры: +// Элементы - ВсеЭлементыФормы - элементы формы. +// ИмяЭлемента - Строка - имя элементы формы. +// ИмяГиперссылки - Булево - признак того, что в качестве имени элемента передано имя элемента формы гиперссылки. +// +// Возвращаемое значение: +// Строка - имя элемента формы. +// +&НаКлиентеНаСервереБезКонтекста +Функция ИмяЭлементаПереходаКСвязанномуСписку(Элементы, ИмяЭлемента, ИмяГиперссылки) + + НовоеИмя = ""; + + Если ИмяГиперссылки Тогда + Если ИмяЭлемента = Элементы.ГиперссылкаПерейтиУпаковкиНоменклатуры.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиУпаковкиНоменклатуры.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиУпаковкиНабора.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиУпаковкиНабора.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиХарактеристикиНоменклатуры.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиХарактеристикиНоменклатуры.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиНоменклатураСАналогичнымиСвойствами.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиШтрихкодыНоменклатуры.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиШтрихкодыНоменклатуры.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиФайлы.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиФайлы.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиТоварыДругогоКачества.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиТоварыДругогоКачества.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиПрогнозыРасходаУпаковок.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиПрогнозыРасходаУпаковок.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиРазмещениеНоменклатуры.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиРазмещениеНоменклатуры.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиСовместныеПродажи.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиСовместныеПродажи.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиСегменты.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиСегменты.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиВариантыКомплектации.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиВариантыКомплектации.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиСоставНабора.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиСоставНабора.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиНастройкаПоддержанияЗапасов.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиНастройкаПоддержанияЗапасов.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиНастройкаСпособовОбеспеченияПотребностей.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиНастройкаСпособовОбеспеченияПотребностей.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиНастройкаПередачиМатериаловВПроизводство.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиНастройкаПередачиМатериаловВПроизводство.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиПроизводство.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиПроизводство.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиСертификатыНоменклатуры.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиСертификатыНоменклатуры.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиРаспределениеПродажПоНаправлениямДеятельности.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиРаспределениеПродажПоНаправлениямДеятельности.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиПрайсЛистКомпании.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиПрайсЛистКомпании.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиПрайсЛистыПоставщиков.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиПрайсЛистыПоставщиков.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиИсторияИзмененияЦенКомпании.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиИсторияИзмененияЦенКомпании.Имя; + ИначеЕсли ИмяЭлемента = Элементы.ГиперссылкаПерейтиИсторияИзмененияЦенПоставщиков.Имя Тогда + НовоеИмя = Элементы.КомандаПерейтиИсторияИзмененияЦенПоставщиков.Имя; + КонецЕсли; + Иначе + Если ИмяЭлемента = Элементы.КомандаПерейтиУпаковкиНоменклатуры.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиУпаковкиНоменклатуры.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиУпаковкиНабора.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиУпаковкиНабора.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиХарактеристикиНоменклатуры.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиХарактеристикиНоменклатуры.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиНоменклатураСАналогичнымиСвойствами.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиШтрихкодыНоменклатуры.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиШтрихкодыНоменклатуры.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиФайлы.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиФайлы.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиТоварыДругогоКачества.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиТоварыДругогоКачества.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиПрогнозыРасходаУпаковок.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиПрогнозыРасходаУпаковок.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиРазмещениеНоменклатуры.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиРазмещениеНоменклатуры.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиСовместныеПродажи.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиСовместныеПродажи.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиСегменты.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиСегменты.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиВариантыКомплектации.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиВариантыКомплектации.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиСоставНабора.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиСоставНабора.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиНастройкаПоддержанияЗапасов.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиНастройкаПоддержанияЗапасов.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиНастройкаСпособовОбеспеченияПотребностей.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиНастройкаСпособовОбеспеченияПотребностей.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиНастройкаПередачиМатериаловВПроизводство.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиНастройкаПередачиМатериаловВПроизводство.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиПроизводство.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиПроизводство.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиСертификатыНоменклатуры.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиСертификатыНоменклатуры.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиРаспределениеПродажПоНаправлениямДеятельности.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиРаспределениеПродажПоНаправлениямДеятельности.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиПрайсЛистКомпании.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиПрайсЛистКомпании.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиПрайсЛистыПоставщиков.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиПрайсЛистыПоставщиков.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиИсторияИзмененияЦенКомпании.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиИсторияИзмененияЦенКомпании.Имя; + ИначеЕсли ИмяЭлемента = Элементы.КомандаПерейтиИсторияИзмененияЦенПоставщиков.Имя Тогда + НовоеИмя = Элементы.ГиперссылкаПерейтиИсторияИзмененияЦенПоставщиков.Имя; + КонецЕсли; + КонецЕсли; + + Возврат НовоеИмя; + +КонецФункции + +// Параметры: +// Элементы - ВсеЭлементыФормы - элементы формы. +// ИмяЭлемента - Строка - имя элементы формы. +// +// Возвращаемое значение: +// Булево - признак того, что элемент формы является гиперссылкой перехода к связанному списку. +// +&НаКлиентеНаСервереБезКонтекста +Функция ЭлементПереходаКСвязанномуСписку(Элементы, ИмяЭлемента) + + ЭлементПереходаКСвязанномуСписку = Ложь; + + Если ИмяЭлемента = Элементы.ГиперссылкаПерейтиУпаковкиНоменклатуры.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиУпаковкиНабора.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиХарактеристикиНоменклатуры.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиШтрихкодыНоменклатуры.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиФайлы.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиТоварыДругогоКачества.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиПрогнозыРасходаУпаковок.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиРазмещениеНоменклатуры.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиСовместныеПродажи.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиСегменты.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиСоглашения.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиВариантыКомплектации.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиНастройкаПоддержанияЗапасов.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиНастройкаСпособовОбеспеченияПотребностей.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиНастройкаПередачиМатериаловВПроизводство.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиПроизводство.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиСертификатыНоменклатуры.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиРаспределениеПродажПоНаправлениямДеятельности.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиПрайсЛистКомпании.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиПрайсЛистыПоставщиков.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиИсторияИзмененияЦенКомпании.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиИсторияИзмененияЦенПоставщиков.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиСоставНабора.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиСтавкиНДСНоменклатуры.Имя + Или ИмяЭлемента = Элементы.ГиперссылкаПерейтиПодакцизныеКатегорииНоменклатуры.Имя Тогда + + ЭлементПереходаКСвязанномуСписку = Истина + + КонецЕсли; + + Возврат ЭлементПереходаКСвязанномуСписку; + +КонецФункции + +&НаКлиенте +Процедура УстановитьДатуНачалаПримененияСтавкиНДСЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Если Результат = Неопределено Тогда + ДатаНачалаПримененияСтавкиНДС = Неопределено; + + Возврат; + КонецЕсли; + + ДатаНачалаПримененияСтавкиНДС = Результат; + КонтрольУникальностиПередЗаписьюПроведен = Истина; + + Попытка + ЭлементЗаписан = Записать(); + Исключение + ДатаНачалаПримененияСтавкиНДС = Неопределено; + КонтрольУникальностиПередЗаписьюПроведен = Ложь; + + Возврат; + КонецПопытки; + + Если Не ЭлементЗаписан Тогда + ДатаНачалаПримененияСтавкиНДС = Неопределено; + КонтрольУникальностиПередЗаписьюПроведен = Ложь; + + Возврат; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработатьЗаписиФайла(ИмяСобытия, Параметр, Источник) + + Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда + Возврат; + КонецЕсли; + + Если Не (Объект.ФайлКартинки.Пустая() + И Объект.ФайлОписанияДляСайта.Пустая()) Тогда + + АктуализироватьФайлыОписанияКарточки(); + + Иначе + НастроитьФормуИОбновитьКарточку(); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура АктуализироватьФайлыОписанияКарточки() + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ИзображенияНоменклатуры.Ссылка КАК Ссылка + |ИЗ + | Справочник.НоменклатураПрисоединенныеФайлы КАК ИзображенияНоменклатуры + |ГДЕ + | ИзображенияНоменклатуры.Ссылка = &ФайлКартинки + | И НЕ ИзображенияНоменклатуры.ПометкаУдаления + | И ИзображенияНоменклатуры.ВладелецФайла = &ВладелецФайла + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ИзображенияНоменклатуры.Ссылка КАК Ссылка + |ИЗ + | Справочник.НоменклатураПрисоединенныеФайлы КАК ИзображенияНоменклатуры + |ГДЕ + | ИзображенияНоменклатуры.Ссылка = &ФайлОписанияДляСайта + | И НЕ ИзображенияНоменклатуры.ПометкаУдаления + | И ИзображенияНоменклатуры.ВладелецФайла = &ВладелецФайла"; + + Запрос.УстановитьПараметр("ВладелецФайла", Объект.Ссылка); + Запрос.УстановитьПараметр("ФайлКартинки", Объект.ФайлКартинки); + Запрос.УстановитьПараметр("ФайлОписанияДляСайта", Объект.ФайлОписанияДляСайта); + + РезультатЗапроса = Запрос.ВыполнитьПакет(); + ДанныеКартинки = РезультатЗапроса[0]; + ДанныеОписанияДляСайта = РезультатЗапроса[1]; + + Если Не (ДанныеКартинки.Пустой() + Или ДанныеОписанияДляСайта.Пустой()) Тогда + + Возврат; + + КонецЕсли; + + Если ДанныеКартинки.Пустой() Тогда + Объект.ФайлКартинки = Справочники.НоменклатураПрисоединенныеФайлы.ПустаяСсылка(); + ДанныеФайлаКартинки = Неопределено; + АдресКартинки = ""; + ПриПолученииДанныхКартинкиВозниклаОшибка = Ложь; + КонецЕсли; + + Если ДанныеОписанияДляСайта.Пустой() Тогда + Объект.ФайлОписанияДляСайта = Справочники.НоменклатураПрисоединенныеФайлы.ПустаяСсылка(); + ПутьКФайлуОписанию = ""; + КонецЕсли; + + НастроитьФормуИОбновитьКарточку(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработатьСменуСтраницКарточкиНоменклатуры(ТекущаяСтраница) + + // &ЗамерПроизводительности + ОценкаПроизводительностиКлиент.ЗамерВремени( + "Справочник.Номенклатура.ФормаЭлемента.Элемент.СтраницыКарточкаНоменклатуры.ПриСменеСтраницы", + Ложь, + Истина); + + Если ТекущаяСтраница = Элементы.СтраницаРеквизитыНоменклатуры Тогда + Элементы.ГруппаГруппировкаЛевоПраво.Видимость = Истина; + Иначе + Элементы.ГруппаГруппировкаЛевоПраво.Видимость = Ложь; + + Если Не ЗначениеЗаполнено(Объект.Ссылка) + Или Модифицированность Тогда + + ОчиститьСообщения(); + + ТекстВопроса = Нстр("ru = 'Данные еще не записаны. + |Информация, отображаемая в карточке, обновится после записи. + |Записать элемент?'"); + + ПоказатьВопрос(Новый ОписаниеОповещения("СтраницыКарточкаНоменклатурыПриСменеСтраницыЗавершение", ЭтотОбъект), + ТекстВопроса, + РежимДиалогаВопрос.ДаНет); + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПереключениеСтраницКарточкиНоменклатуры() + + СистемнаяИнформация = Новый СистемнаяИнформация; + + Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии("8.3.22.1732", СистемнаяИнформация.ВерсияПриложения) > 0 + Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.22.1923") >= 0 Тогда + + Возврат; + + КонецЕсли; + + ОбработатьСменуСтраницКарточкиНоменклатуры(Элементы.СтраницаКарточкаНоменклатуры); + ОбработатьСменуСтраницКарточкиНоменклатуры(Элементы.СтраницыКарточкаНоменклатуры.ТекущаяСтраница); + +КонецПроцедуры + +// Устанавливает настройки свойств расширенной подсказки поля классификатора. +// +// Параметры: +// ИмяЭлемента - Строка - имя поля элемента классификатора. +// ДанныеКлассификатора - ЛюбаяСсылка, Строка - данные классификатора. Для кода классификатора ссылочного типа, +// в качестве параметра передается его значение, в противном случае +// строковое наименование значения. +// +&НаСервере +Процедура НастроитьПодсказкуПоляКлассификатора(ИмяЭлемента, ДанныеКлассификатора) + + Если Не Элементы[ИмяЭлемента].Видимость Тогда + Возврат; + КонецЕсли; + + ТипДанныхСтрока = ТипЗнч(ДанныеКлассификатора) = Тип("Строка"); + КодУказан = ?(ТипДанныхСтрока, ПустаяСтрока(ДанныеКлассификатора), ДанныеКлассификатора.Пустая()); + + Если КодУказан Тогда + Элементы[ИмяЭлемента].ОтображениеПодсказки = ОтображениеПодсказки.Авто; + Элементы[ИмяЭлемента].РасширеннаяПодсказка.Заголовок = ""; + Иначе + НаименованиеПоКлассификатору = ?(ТипДанныхСтрока, + ДанныеКлассификатора, + ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДанныеКлассификатора, "Наименование")); + + Элементы[ИмяЭлемента].ОтображениеПодсказки = ОтображениеПодсказки.Кнопка; + Элементы[ИмяЭлемента].РасширеннаяПодсказка.Заголовок = НаименованиеПоКлассификатору; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +//++ Локализация + +#Область БРД + +&НаСервере +Процедура ЗаполнитьИОтобразитьКартинкиРеквизитов() + + КартинкиРеквизитов = КартинкиРеквизитовСоздаваемогоОбъекта(Параметры); + Если Не КартинкиРеквизитов.Количество() = 0 Тогда + ЗаполнитьКартинкиРеквизитовСоздаваемогоОбъекта(КартинкиРеквизитов); + НастроитьКартинкиРеквизитовФормы(); + ИзменитьОтображениеСпискаСовпадений(); + КонецЕсли; + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция КартинкиРеквизитовСоздаваемогоОбъекта(ПараметрыОткрытия) + + КартинкиРеквизитов = Новый Массив; + ДополнительныеДанные = ПараметрыОткрытия.ДополнительныеДанные; + РаспознанныйДокумент = Неопределено; + + Если ДополнительныеДанные = Неопределено + Или Не ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ДополнительныеДанные, "РаспознанныйДокумент") Тогда + Возврат КартинкиРеквизитов; + КонецЕсли; + + РаспознанныйДокумент = ДополнительныеДанные.РаспознанныйДокумент; + ИменаРеквизитовКартинок = ИменаРеквизитовКартинок(); + + КартинкиРаспознанногоДокумента = КартинкиРаспознанногоДокумента(РаспознанныйДокумент, + ДополнительныеДанные.ИмяТаблицы); + НаборДанных = ПараметрыОткрытия.НаборДанных; + + СвязанныеКолонки = РаспознаваниеДокументовСлужебный.ПараметрыСозданияНовогоЭлемента( + ПараметрыОткрытия.ИмяЭлемента, + ПараметрыОткрытия.ТипДокумента, + ПараметрыОткрытия.Направление); + + Для Каждого РеквизитЭлемента Из СвязанныеКолонки Цикл + + Если ИменаРеквизитовКартинок.Найти(РеквизитЭлемента.ИмяРеквизита) = Неопределено Тогда + Продолжить; + КонецЕсли; + + ПараметрыРеквизита = ПараметрыРеквизитаКартинки(РеквизитЭлемента.Реквизит); + + ПараметрыСвязаннойКолонки = Неопределено; + Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(РеквизитЭлемента, "ИмяРеквизита") Тогда + + ПараметрыСвязаннойКолонки = НаборДанных.Получить(РеквизитЭлемента.ИмяРеквизита); + + Если ПараметрыСвязаннойКолонки <> Неопределено Тогда + ПараметрыРеквизита.Значение = ПараметрыСвязаннойКолонки.РаспознанныйТекст; + ПараметрыРеквизита.Картинка = ДвоичныеДанныеКартинки(КартинкиРаспознанногоДокумента, ПараметрыСвязаннойКолонки); + ПараметрыРеквизита.ВысотаКартинки = ?(ПараметрыРеквизита.Картинка <> Неопределено, + ПараметрыСвязаннойКолонки.СтрокВИзображении, 0); + ПараметрыРеквизита.Координаты = ПараметрыСвязаннойКолонки.Координаты; + КонецЕсли; + КонецЕсли; + + Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(РеквизитЭлемента, "ПустаяСсылка") Тогда + Если ПараметрыСвязаннойКолонки <> Неопределено Тогда + ПараметрыРеквизита.Значение = ПараметрыСвязаннойКолонки.Значение; + КонецЕсли; + + Если Не ЗначениеЗаполнено(ПараметрыРеквизита.Значение) Тогда + ПараметрыРеквизита.Значение = РеквизитЭлемента.ПустаяСсылка; + КонецЕсли; + КонецЕсли; + + КартинкиРеквизитов.Добавить(ПараметрыРеквизита); + + КонецЦикла; + + Возврат КартинкиРеквизитов; + +КонецФункции + +&НаСервереБезКонтекста +Функция ИменаРеквизитовКартинок() + + ИменаРеквизитов = Новый Массив; + ИменаРеквизитов.Добавить("Номенклатура"); + ИменаРеквизитов.Добавить("Артикул"); + ИменаРеквизитов.Добавить("ЕдиницаИзмерения"); + ИменаРеквизитов.Добавить("СтавкаНДС"); + + Возврат ИменаРеквизитов; + +КонецФункции // ИменаРеквизитовКартинок() + +&НаСервереБезКонтекста +Функция ПараметрыРеквизитаКартинки(ИмяРеквизита) + + ПараметрыРеквизита = Новый Структура(); + ПараметрыРеквизита.Вставить("Имя", ИмяРеквизита); + ПараметрыРеквизита.Вставить("Значение", ""); + ПараметрыРеквизита.Вставить("Картинка", ""); + ПараметрыРеквизита.Вставить("ВысотаКартинки", 0); + ПараметрыРеквизита.Вставить("Координаты", РаспознаваниеДокументовСлужебныйКлиентСервер.ПолучитьНаборКоординат()); + + Возврат ПараметрыРеквизита; + +КонецФункции // ПараметрыРеквизитаКартинки() + +&НаСервереБезКонтекста +Функция ДвоичныеДанныеКартинки(КартинкиРеквизитов, ПараметрыСвязаннойКолонки) + + Картинка = Неопределено; + + Если Не РаспознаваниеДокументовКлиентСервер.ВсеКоординатыНулевые(ПараметрыСвязаннойКолонки.Координаты) Тогда + + СтрокаКартинки = КартинкиРеквизитов.Найти(ПараметрыСвязаннойКолонки.НомерСтроки, "НомерСтроки"); + Если Не СтрокаКартинки = Неопределено Тогда + Картинка = СтрокаКартинки.ОбластьИзображения.Получить(); + Если ТипЗнч(Картинка) = Тип("ДвоичныеДанные") И Картинка.Размер() = 0 Тогда + Картинка = Неопределено; + КонецЕсли; + КонецЕсли; + + КонецЕсли; + + Возврат Картинка; + +КонецФункции + +&НаСервереБезКонтекста +Функция КартинкиРаспознанногоДокумента(РаспознанныйДокумент, ИмяТаблицы) + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ИмяТаблицы.НомерСтроки КАК НомерСтроки, + | ИмяТаблицы.ОбластьИзображения КАК ОбластьИзображения + |ИЗ + | &ИмяТаблицы КАК ИмяТаблицы + |ГДЕ + | ИмяТаблицы.Ссылка = &РаспознанныйДокумент + | И ИмяТаблицы.ИмяРеквизита В(&ИменаРеквизитов)"; + + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяТаблицы", СтрШаблон("Документ.РаспознанныйДокумент.%1", ИмяТаблицы)); + + Запрос.УстановитьПараметр("РаспознанныйДокумент", РаспознанныйДокумент); + Запрос.УстановитьПараметр("ИменаРеквизитов", ИменаРеквизитовКартинок()); + РезультатЗапроса = Запрос.Выполнить(); + + Возврат РезультатЗапроса.Выгрузить(); + +КонецФункции + +&НаСервере +Процедура ЗаполнитьКартинкиРеквизитовСоздаваемогоОбъекта(ЗначенияОткрытия) + + Для Каждого ПереданныйРеквизит Из ЗначенияОткрытия Цикл + + ДанныеРеквизита = РеквизитыСоздаваемогоОбъекта.Добавить(); + ЗаполнитьЗначенияСвойств(ДанныеРеквизита, ПереданныйРеквизит, , "Координаты"); + ДанныеРеквизита.Координаты.ЗагрузитьЗначения(ПереданныйРеквизит.Координаты); + Если ТипЗнч(ПереданныйРеквизит.Значение) = Тип("Строка") Тогда + ДанныеРеквизита.Значение = СокрЛП(ПереданныйРеквизит.Значение); + Иначе + ДанныеРеквизита.Значение = ПереданныйРеквизит.Значение; + КонецЕсли; + Если НЕ ДанныеРеквизита.ВысотаКартинки И Не ЗначениеЗаполнено(ДанныеРеквизита.Значение) Тогда + ДанныеРеквизита.ИскатьПодходящие = Ложь; + КонецЕсли; + + // Дубли картинок + Если ДанныеРеквизита.ВысотаКартинки Тогда + ХешКартинки = ХешКартинкиРеквизита(ДанныеРеквизита.Картинка); + + Отбор = Новый Структура("ХешКартинки", ХешКартинки); + Если РеквизитыСоздаваемогоОбъекта.НайтиСтроки(Отбор).Количество() + Или ХешКартинки = Неопределено Тогда + + ДанныеРеквизита.ВысотаКартинки = 0; + КонецЕсли; + + ДанныеРеквизита.ХешКартинки = ХешКартинки; + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ХешКартинкиРеквизита(ДвоичныеДанные) + + Если ДвоичныеДанные = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + Хеширование = Новый ХешированиеДанных(ХешФункция.MD5); + Хеширование.Добавить(ДвоичныеДанные); + + Возврат Хеширование.ХешСумма; + +КонецФункции + +&НаСервере +Процедура НастроитьКартинкиРеквизитовФормы() + + Для Каждого РеквизитСоздаваемогоОбъекта Из РеквизитыСоздаваемогоОбъекта Цикл + + Если РеквизитСоздаваемогоОбъекта.ВысотаКартинки > 0 + И ЗначениеЗаполнено(РеквизитСоздаваемогоОбъекта.Картинка) Тогда + + ДвоичныеДанные = РеквизитСоздаваемогоОбъекта.Картинка; + ИмяРеквизита = СтрШаблон("%1Картинка", РеквизитСоздаваемогоОбъекта.Имя); + ЭтотОбъект[ИмяРеквизита] = РаспознаваниеДокументовКомплекты.КартинкаКакТекстHTML(ДвоичныеДанные); + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура СвойстваЭлементовФормыБРД() + + Для Каждого РеквизитСоздаваемогоОбъекта Из РеквизитыСоздаваемогоОбъекта Цикл + + Если РеквизитСоздаваемогоОбъекта.Имя = "Наименование" Тогда + Элементы.ГруппаНоменклатураНаименованиеКартинка.Видимость = РеквизитСоздаваемогоОбъекта.ВысотаКартинки > 0; + Если РеквизитСоздаваемогоОбъекта.ВысотаКартинки > 1 Тогда + Элементы.НаименованиеКартинка.Высота = Цел(РеквизитСоздаваемогоОбъекта.ВысотаКартинки / 2) + 1; + КонецЕсли; + КонецЕсли; + + Если РеквизитСоздаваемогоОбъекта.ВысотаКартинки > 0 + И ЗначениеЗаполнено(РеквизитСоздаваемогоОбъекта.Картинка) Тогда + ИмяРеквизита = СтрШаблон("%1Картинка", РеквизитСоздаваемогоОбъекта.Имя); + Элементы[ИмяРеквизита].Видимость = Элементы[РеквизитСоздаваемогоОбъекта.Имя].Видимость; + КонецЕсли; + + КонецЦикла; + + Элементы.ГруппаСовпадения.Видимость = Параметры.Ключ.Пустая() И СовпаденияНоменклатуры.Количество() > 0; + +КонецПроцедуры + +&НаСервере +Процедура ИзменитьОтображениеСпискаСовпадений() + + ОбъединяемыеРеквизиты = Новый Массив; + ОбъединяемыеРеквизиты.Добавить("Наименование"); + ОбъединяемыеРеквизиты.Добавить("НаименованиеПолное"); + ПараметрыОбъединенияРеквизитов = Новый Структура("Наименование", ОбъединяемыеРеквизиты); + + ДанныеПоиска = Новый Структура("Наименование", Объект.Наименование); + + ОтборМетаданных = Новый Массив; + + ДанныеПоиска.Вставить("Артикул", Объект.Артикул); + + Кандидаты = РаспознаваниеДокументов.ПолучитьКандидатов( + ДанныеПоиска, + Справочники.Номенклатура.ПустаяСсылка(), + ПараметрыОбъединенияРеквизитов, + ОтборМетаданных); + + Для Каждого Кандидат Из Кандидаты Цикл + НоваяСтрока = СовпаденияНоменклатуры.Добавить(); + НоваяСтрока.Ссылка = Кандидат.Ссылка; + НоваяСтрока.Уверенность = Строка(Окр(Кандидат.Коэффициент * 100)) + "%"; + НоваяСтрока.ИндексКартинки = Истина; + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#Область НастройкаИнтеграцииСФГИС + +&НаКлиенте +Процедура НастройкаИнтеграцииСФГИСЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Если Результат <> Неопределено Тогда + КлючВидовПродукции = Результат.КлючВидовПродукции; + ПриИзмененииКлючаВидовПродукции(); + Модифицированность = Истина; + НастроитьФормуИОбновитьКарточку(); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПриИзмененииКлючаВидовПродукции() + + ИнтеграцияИС.ЗаполнитьДанныеПоКлючуВидовПродукции(ЭтотОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ЗаполнитьКлючВидовПродукции(Ссылка) + + Данные = ОбщегоНазначенияИС.ОписаниеНоменклатуры(Ссылка)[Ссылка]; + Если Данные = Неопределено Тогда + КлючВидовПродукции = Неопределено; + Иначе + КлючВидовПродукции = Данные.КлючВидовПродукции; + КонецЕсли; + + ТребуетсяОбновлениеКлассификатораВидовПродукции = Не ЗначениеЗаполнено(КлючВидовПродукции) + И Данные.ИдентификаторыВидовПродукции <> Неопределено; + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПослеЗагрузкиКлассификаторов(Результат, ДополнительныеПараметры) Экспорт + + Прочитать(); + +КонецПроцедуры + +#КонецОбласти + +//-- Локализация + +#КонецОбласти + +#Область Локализация + +//++ Локализация + +&НаСервере +Процедура ВидАлкогольнойПродукцииПриИзмененииСервер() + + НастроитьФормуИОбновитьКарточку(); + +КонецПроцедуры + +&НаСервере +Процедура АлкогольнаяПродукцияВоВскрытойТареПриИзмененииНаСервере() + + Если Объект.АлкогольнаяПродукцияВоВскрытойТаре Тогда + Объект.ЕдиницаИзмерения = Константы.ЕдиницаИзмеренияРазливнойПродукции.Получить(); + КонецЕсли; + + НастроитьФормуИОбновитьКарточку(); + +КонецПроцедуры + +&НаСервере +Процедура РассчитатьОбъемВДекалитрахНаСервере() + + Если Не Объект.ОбъемИспользовать Тогда + ОбщегоНазначения.СообщитьПользователю(НСтр("ru='Не задан объем для номенклатуры.'"),,"ОбъемИспользовать","Объект"); + Возврат; + КонецЕсли; + ОбъемЕдиницаИзмерения = ?(ЗначениеЗаполнено(Объект.ОбъемЕдиницаИзмерения), Объект.ОбъемЕдиницаИзмерения, Объект.ЕдиницаИзмерения); + РеквизитыЕдиницыИзмеренияОбъем = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ОбъемЕдиницаИзмерения, "Числитель, Знаменатель"); + + Объект.ОбъемДАЛ = 100 * (Объект.ОбъемЧислитель * РеквизитыЕдиницыИзмеренияОбъем.Числитель) / + (Объект.ОбъемЗнаменатель * РеквизитыЕдиницыИзмеренияОбъем.Знаменатель); + +КонецПроцедуры + + +//-- Локализация + +&НаСервере +Процедура ПриСозданииНаСервереЛокализация(Отказ, СтандартнаяОбработка) + + //++ Локализация + + // ЭлектронноеВзаимодействие.ТорговыеПредложения + ТорговыеПредложения.ПриСозданииПодсказокФормы(ЭтотОбъект, Элементы.ПодсказкиБизнесСеть); + // Конец ЭлектронноеВзаимодействие.ТорговыеПредложения + + // ЭлектронноеВзаимодействие.СопоставлениеНоменклатурыКонтрагентов + СопоставлениеНоменклатурыКонтрагентов.ПриСозданииФормыНоменклатуры(ЭтотОбъект); + // Конец ЭлектронноеВзаимодействие.СопоставлениеНоменклатурыКонтрагентов + + ИспользоватьСервисРаботаСНоменклатурой = ПолучитьФункциональнуюОпцию("ИспользоватьСервисРаботаСНоменклатурой"); + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("РежимПредставленияОбъектаСервиса", "Гиперссылка"); + РаботаСНоменклатурой.ПриСозданииНаСервереФормаНоменклатуры(ЭтотОбъект, Объект.Ссылка, Элементы.ГруппаРаботаСНоменклатурой, ДополнительныеПараметры); + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + + НаименованиеОКВЭД2 = НаименованиеОКВЭД2(Объект.КодОКВЭД2); + ИнтерактивнаяЗагрузкаКлассификаторовДоступна = РаботаСКлассификаторами.ИнтерактивнаяЗагрузкаКлассификаторовДоступна(); + + //-- Локализация + + Возврат; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытииЛокализация(Отказ) + + //++ Локализация + + Если Не ЕстьПравоРедактирования Тогда + Возврат; + КонецЕсли; + + // ЭлектронноеВзаимодействие.ТорговыеПредложения + ТорговыеПредложенияКлиент.ОбновитьПодсказкуФормы(ЭтотОбъект); + // Конец ЭлектронноеВзаимодействие.ТорговыеПредложения + + //-- Локализация + + Возврат; + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытиемЛокализация(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) + + //++ Локализация + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + РаботаСНоменклатуройКлиент.ПередЗакрытиемФормыНоменклатуры(ЭтотОбъект, Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка); + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + + //-- Локализация + + Возврат; + +КонецПроцедуры + +&НаСервере +Процедура ПриЗаписиНаСервереЛокализация(Отказ, ТекущийОбъект, ПараметрыЗаписи) + + //++ Локализация + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + РаботаСНоменклатурой.ПриЗаписиНаСервереФормаНоменклатуры(ЭтотОбъект, ТекущийОбъект, Отказ); + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + + //-- Локализация + + Возврат; + +КонецПроцедуры + +&НаСервере +Процедура ПослеЗаписиНаСервереЛокализация(ТекущийОбъект, ПараметрыЗаписи) + + //++ Локализация + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + Если ИзображенияИзСервиса.Количество() > 0 Тогда + РаботаСНоменклатуройУТ.ПрикрепитьИзображения(ТекущийОбъект.Ссылка, ИзображенияИзСервиса); + Прочитать(); + ИзображенияИзСервиса.Очистить(); + КонецЕсли; + Если ЭтоАдресВременногоХранилища(ШтрихкодыСервис) Тогда + ШтрихКоды = ПолучитьИзВременногоХранилища(ШтрихкодыСервис); + + ШтрихкодыДляЗаписи = Новый ТаблицаЗначений; + + ШтрихкодыДляЗаписи.Колонки.Добавить("Номенклатура", Метаданные.ОпределяемыеТипы.НоменклатураРаботаСНоменклатурой.Тип); + ШтрихкодыДляЗаписи.Колонки.Добавить("Характеристика", Метаданные.ОпределяемыеТипы.ХарактеристикаРаботаСНоменклатурой.Тип); + ШтрихкодыДляЗаписи.Колонки.Добавить("Штрихкод", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(200))); + + Для каждого Элемент Из ШтрихКоды Цикл + НоваяСтрока = ШтрихкодыДляЗаписи.Добавить(); + НоваяСтрока.Номенклатура = ТекущийОбъект.Ссылка; + НоваяСтрока.Штрихкод = Элемент.Штрихкод; + НоваяСтрока.Характеристика = Элемент.Характеристика; + КонецЦикла; + РаботаСНоменклатуройУТ.ЗаписатьШтрихкоды(ШтрихкодыДляЗаписи); + Штрихкод = ""; + Прочитать(); + КонецЕсли; + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + + //-- Локализация + + Возврат; + +КонецПроцедуры + +&НаКлиенте +Процедура ПослеЗаписиЛокализация(ПараметрыЗаписи) + + //++ Локализация + + // ЭлектронноеВзаимодействие.РаботаСНоменклатурой + РаботаСНоменклатуройКлиент.ПослеЗаписиФормаНоменклатуры(ЭтотОбъект); + // Конец ЭлектронноеВзаимодействие.РаботаСНоменклатурой + + //-- Локализация + + Возврат; + +КонецПроцедуры + +&НаСервере +Процедура ИменаСворачиваемыхГруппЛокализация(ИменаСворачиваемыхГрупп) + + //++ Локализация + + ИменаСворачиваемыхГрупп.Добавить(Элементы.СворачиваемаяГруппаРегламентированныйУчет.Имя); + ИменаСворачиваемыхГрупп.Добавить(Элементы.СворачиваемаяГруппаАлкоголь.Имя); + ИменаСворачиваемыхГрупп.Добавить(Элементы.СворачиваемаяГруппаСведенияОПроизводителе.Имя); + ИменаСворачиваемыхГрупп.Добавить(Элементы.СворачиваемаяГруппаКлассификаторы.Имя); + Если Элементы.Найти("СворачиваемаяГруппаГруппаВидыУпаковокИС") <> Неопределено Тогда + ИменаСворачиваемыхГрупп.Добавить(Элементы["СворачиваемаяГруппаГруппаВидыУпаковокИС"].Имя); + КонецЕсли; + + //-- Локализация + + Возврат; + +КонецПроцедуры + +&НаСервере +Процедура УстановитьУсловноеОформлениеЛокализация() + + //++ Локализация + + + //-- Локализация + + Возврат; + +КонецПроцедуры + +#Область УчетИмпортаИПрослеживаемости + +&НаКлиентеНаСервереБезКонтекста +Процедура УстановитьДоступностьВестиУчетПоГТДЛокализация(ПолеЭлемента, Объект) + + //++ Локализация + Если Не Объект.ВестиУчетПоГТД + И Объект.ПрослеживаемыйТовар Тогда + + ПолеЭлемента.Доступность = Истина; + + Иначе + ПолеЭлемента.Доступность = Не Объект.ПрослеживаемыйТовар; + КонецЕсли; + //-- Локализация + + Возврат; + +КонецПроцедуры + + +&НаКлиентеНаСервереБезКонтекста +Процедура УстановитьПодсказкуПрослеживаемыйТоварЛокализация(ПолеЭлемента, ТипНоменклатуры, ТипНоменклатурыРабота) + + //++ Локализация + Если ТипНоменклатуры = ТипНоменклатурыРабота Тогда + ПолеЭлемента.Подсказка = НСтр("ru = 'Если установлен признак, то можно получать и передавать прослеживаемые товары в составе работы'"); + Иначе + ПолеЭлемента.Подсказка = НСтр("ru = 'Если установлен признак ""Прослеживаемый товар"", тогда должен быть указан прослеживаемый ""Код ТН ВЭД""'"); + КонецЕсли; + //-- Локализация + + Возврат; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработатьЛогикуСвязиПрослеживаемыйТоварИКодТНВЭДЛокализация() + + //++ Локализация + Если Не ЗначениеЗаполнено(Объект.КодТНВЭД) Тогда + Возврат; + КонецЕсли; + + Если Объект.ПрослеживаемыйТовар Тогда + ОбработатьЛогикуСвязиПрослеживаемыйТоварИКодТНВЭДСерверЛокализация(Объект.КодТНВЭД); + КонецЕсли; + //-- Локализация + + Возврат; + +КонецПроцедуры + +//++ Локализация + +&НаСервереБезКонтекста +Процедура ОбработатьЛогикуСвязиПрослеживаемыйТоварИКодТНВЭДСерверЛокализация(КодТНВЭД) + + ПрослеживаемыйТовар = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(КодТНВЭД, "ПрослеживаемыйТовар"); + + КодТНВЭД = ?(ПрослеживаемыйТовар, КодТНВЭД, Неопределено); + +КонецПроцедуры + +//-- Локализация + +#КонецОбласти + +//++ Локализация + +&НаСервере +Процедура КодОКВЭД2ПриИзмененииСервер() + + НаименованиеОКВЭД2 = НаименованиеОКВЭД2(Объект.КодОКВЭД2); + + НастроитьПодсказкуПоляКлассификатора(Элементы.КодОКВЭД2.Имя, НаименованиеОКВЭД2); + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ПодборОКВЭДСервер(Знач СтрокаПоиска) + + ПараметрыПодбора = КлассификаторОКВЭД.НовыйОтбор(); + ПараметрыПодбора.СтрокаПоиска = СтрокаПоиска; + ПараметрыПодбора.Режим = "КодИНаименование"; + ПараметрыПодбора.Разрешенные = Истина; + + Возврат КлассификаторОКВЭД.Подбор(ПараметрыПодбора); + +КонецФункции + +&НаКлиенте +Процедура ПодборИзОКВЭДЗавершение(РезультатВыбора, ДополнительныеПараметры) Экспорт + + Если ТипЗнч(РезультатВыбора) <> Тип("Структура") + Или РезультатВыбора.ВыбранныеЗначения.Количество() = 0 Тогда + + Возврат; + + КонецЕсли; + + Если Не Объект.КодОКВЭД2 = РезультатВыбора.ВыбранныеЗначения[0].Код Тогда + Модифицированность = Истина; + + Объект.КодОКВЭД2 = РезультатВыбора.ВыбранныеЗначения[0].Код; + НаименованиеОКВЭД2 = РезультатВыбора.ВыбранныеЗначения[0].Наименование; + + НастроитьПодсказкуПоляКлассификатора(Элементы.КодОКВЭД2.Имя, НаименованиеОКВЭД2); + КонецЕсли; + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция НаименованиеОКВЭД2(КодОКВЭД2) + + НаименованиеОКВЭД2 = ""; + + Если ЗначениеЗаполнено(КодОКВЭД2) Тогда + ЗначениеОКВЭД2ПоКоду = КлассификаторОКВЭД.ЗначениеПоКоду(КодОКВЭД2, Ложь); + + Если ЗначениеОКВЭД2ПоКоду.Количество() > 0 Тогда + НаименованиеОКВЭД2 = ЗначениеОКВЭД2ПоКоду[0].Наименование; + КонецЕсли; + КонецЕсли; + + Возврат НаименованиеОКВЭД2; + +КонецФункции + +&НаКлиенте +Процедура НачатьВыборКодаВидаНоменклатурнойКлассификации_Завершение(Результат, Параметры) Экспорт + + Если ТипЗнч(Результат) = Тип("Структура") + И Результат.Свойство("КодВидаНоменклатурнойКлассификации") + И Результат.Свойство("НаименованиеВидаНоменклатурнойКлассификации") Тогда + + Объект.КодВидаНоменклатурнойКлассификации = Результат.КодВидаНоменклатурнойКлассификации; + Объект.НаименованиеВидаНоменклатурнойКлассификации = Результат.НаименованиеВидаНоменклатурнойКлассификации; + + НастроитьПодсказкуПоляКлассификатора(Элементы.КодВидаНоменклатурнойКлассификации.Имя, + Объект.НаименованиеВидаНоменклатурнойКлассификации); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриИзмененииТНВЭДиОКПД2() + + УказанТНВЭД = ЗначениеЗаполнено(Объект.КодТНВЭД); + УказанОКПД2 = ЗначениеЗаполнено(Объект.КодОКПД2); + + Если УказанТНВЭД Или УказанОКПД2 Тогда + ДоступныеВидыПродукции = ВидыПродукцииПоТНВЭДиОКПД2(Объект.КодТНВЭД, Объект.КодОКПД2); + Если ДоступныеВидыПродукции.Количество() = 1 + И ВидПродукцииГИСМТ <> ДоступныеВидыПродукции[0] Тогда + Если Не ЗначениеЗаполнено(ВидПродукцииГИСМТ) Тогда + ВидПродукцииГИСМТ = ДоступныеВидыПродукции[0]; + ИнтеграцияИСКлиент.ВидПродукцииГИСМТПриИзменении(ЭтотОбъект); + НастроитьФормуИОбновитьКарточку(); + Иначе + Если УказанТНВЭД И УказанОКПД2 Тогда + НачалоВопроса = СтрШаблон( + НСтр("ru='Указанным ТН ВЭД %1 и ОКПД2 %2'"), + Строка(Объект.КодТНВЭД), + Строка(Объект.КодОКПД2)); + ИначеЕсли УказанТНВЭД Тогда + НачалоВопроса = СтрШаблон( + НСтр("ru='Указанному ТН ВЭД %1'"), + Объект.КодТНВЭД); + Иначе + НачалоВопроса = СтрШаблон( + НСтр("ru='Указанному ОКПД2 %1'"), + Объект.КодОКПД2); + КонецЕсли; + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("ВидПродукции", ДоступныеВидыПродукции[0]); + ПоказатьВопрос( + Новый ОписаниеОповещения("ВопросИзменитьВидПродукцииЗавершение", + ЭтотОбъект, + ДополнительныеПараметры), + СтрШаблон( + НСтр("ru='%1 соответствует вид продукции %2. + |Изменить текущий вид продукции %3 на %2'"), + НачалоВопроса, + ДоступныеВидыПродукции[0], + ВидПродукцииГИСМТ), + РежимДиалогаВопрос.ДаНет); + КонецЕсли; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВопросИзменитьВидПродукцииЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Если Результат = КодВозвратаДиалога.Да Тогда + ВидПродукцииГИСМТ = ДополнительныеПараметры.ВидПродукции; + ИнтеграцияИСКлиент.ВидПродукцииГИСМТПриИзменении(ЭтотОбъект); + НастроитьФормуИОбновитьКарточку(); + КонецЕсли; + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ВидыПродукцииПоТНВЭДиОКПД2(ТНВЭД, ОКПД2) + + ДанныеДляУточнения = ОбщегоНазначенияИСМПКлиентСервер.ДанныеДляУточненияВидовПродукцииПоТНВЭДиОКПД2(); + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("ТНВЭД", ТНВЭД); + Запрос.УстановитьПараметр("ОКПД2", ОКПД2); + Запрос.Текст = + "ВЫБРАТЬ + | ЕСТЬNULL(МАКСИМУМ(ЗначенияКлассификаторов.ТНВЭД), """") КАК ТНВЭД, + | ЕСТЬNULL(МАКСИМУМ(ЗначенияКлассификаторов.ОКПД2), """") КАК ОКПД2 + |ИЗ + |(ВЫБРАТЬ + | КлассификаторТНВЭД.Код КАК ТНВЭД, + | NULL КАК ОКПД2 + |ИЗ + | Справочник.КлассификаторТНВЭД КАК КлассификаторТНВЭД + |ГДЕ + | КлассификаторТНВЭД.Ссылка = &ТНВЭД + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | NULL КАК ТНВЭД, + | КлассификаторОКПД2.Код КАК ОКПД2 + |ИЗ + | Справочник.КлассификаторОКПД2 КАК КлассификаторОКПД2 + |ГДЕ + | КлассификаторОКПД2.Ссылка = &ОКПД2) КАК ЗначенияКлассификаторов"; + + Выборка = Запрос.Выполнить().Выбрать(); + Если Выборка.Следующий() Тогда + ЗаполнитьЗначенияСвойств(ДанныеДляУточнения, Выборка); + КонецЕсли; + + Возврат ИнтерфейсИСМПОбщегоНазначенияВызовСервера.ВидыПродукцииПоДаннымУточнения(ДанныеДляУточнения, Ложь); + +КонецФункции + +//-- Локализация + +#КонецОбласти diff --git a/src/Catalogs/Номенклатура/Forms/ФормаЭлемента/Ext/Help.xml b/src/Catalogs/Номенклатура/Forms/ФормаЭлемента/Ext/Help.xml new file mode 100644 index 0000000..d983f4c --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаЭлемента/Ext/Help.xml @@ -0,0 +1,4 @@ + + + ru + \ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Forms/ФормаЭлемента/Ext/Help/ru.html b/src/Catalogs/Номенклатура/Forms/ФормаЭлемента/Ext/Help/ru.html new file mode 100644 index 0000000..ff7c57a --- /dev/null +++ b/src/Catalogs/Номенклатура/Forms/ФормаЭлемента/Ext/Help/ru.html @@ -0,0 +1,47 @@ + +

Номенклатура

+

Справочник предназначен для хранения информации о номенклатурных позициях следующих типов: товар, услуга, работа, тара и набор.

+

Подробное описание сценариев ведения справочника приведено в документации https://its.1c.ru/db/utdoc#bookmark:Goods:Goods

+

Позиции номенклатуры могут быть классифицированы по видам номенклатуры.

+

Вид номенклатуры – это дополнительная классификация товаров более обобщенная чем тип, и позволяющая отличать номенклатурные позиции по различным параметрам, например, характеристикам. Причем для более детальной классификации, рекомендуется использование нескольких видов номенклатуры с общим типом.
Вид номенклатуры можно поменять после создания номенклатуры. При этом новый и старый вид номенклатуры должны отвечать следующим требованиям:
- установлен один тип номенклатуры;
- одинаково установлен признак алкогольная продукция;
- одинаково установлен признак содержит драгоценные металлы или камни;
- характеристики не используются, или они индивидуальные для номенклатуры, или общие для нескольких видов (при этом оба вида - новый и старый - должны использовать один набор характеристик);
- серии не используются или настроены одинаково.

+

Пример. Если необходимо разделять услуги, которые оказывает наше предприятие, и услуги, оказываемые сторонними организациями, то можно создать два вида номенклатуры: внутренние услуги и сторонние услуги с одним и тем же типом – услуга.

Дополнительные материалы на ИТС

+

Основная информация

+

Признак подакцизного товара

+

Указание комплектующих (спецификация комплекта)

+

Размещение товара на складе

+

Настройка обеспечения потребностей

+

Указание аналогов

+

Сведения об алкогольной продукции

+

Настройка маркируемой продукции

+

Ввод дополнительных сведений

+

Анализ и связанная информации

+

Основная информация

+

В карточке номенклатуры отображается следующая информация:

+
  • Производитель, импортер (контрагент) - контрагент, импортер продукции зарубежного производства или производитель продукции российского производства. Требуется заполнять при торговле алкогольной продукцией и при ввозе товаров из ЕАЭС (при наличии сведений о производителе).
  • Производитель (бренд) - наименование производителя данной позиции номенклатуры, указывается справочно, может уточнять принадлежность марки, выводиться при печати этикеток и ценников.
  • Марка (бренд) - принадлежность позиции к зарегистрированным товарным знакам.
  • Коллекция (сезон) - принадлежность номенклатурной позиции к определенной коллекции товаров (доступно только при включенной функциональной опции Управление коллекциями товаров в разделе НСИ и администрирование - CRM и маркетинг - Маркетинг).
  • Артикул - артикул позиции номенклатуры.
  • Рабочее наименование - название товара или услуги, которое используется для быстрой визуальной идентификации позиции номенклатуры.
  • Наименование для печати - наименование товара и услуги, которое будет отображаться в печатных формах документов.
  • Вид номенклатуры - определение вида к которому относится данная позиция номенклатуры.
  • Единица хранения - единица измерения, в которой ведется учет складских остатков по данной позиции.
  • Вес / Объем / Площадь / Длина - соотношение единицы хранения товара к единице измерения веса / объема / площади / длины. Соотношение может быть указано как справочно (для использования везде, кроме указания в документах), так и для указания количества в единице измерения веса / объема / площади / длины в документах (включает в себя режим справочного указания).
  • Качество - градация качества позиции (доступно три значения качества: Новый, Ограниченно годен, Не годен).
  • Импортный товар (учет по ГТД или РНПТ) - признак того, что товар является импортным и для него необходимо вести учет по номерам ГТД или РНПТ.
  • Прослеживаемый товар - признак того, что товар относится к прослеживаемым импортным товарам.
  • Группа списка - группа, в которую входит данная позиция номенклатуры в соответствии с классификацией (иерархией) товаров в справочнике Номенклатура.
  • Ценовая группа - группа в которую входит позиция номенклатуры в соответствии с классификацией товаров по ценовым характеристикам.
  • Товарная категория - принадлежность номенклатурной позиции к одной из категорий товаров (доступно при условии задействования одноименной функциональной опции в разделе НСИ и администрирование - CRM и маркетинг - Маркетинг).
  • Использовать упаковки - определение единиц измерения для хранения данной позиции номенклатуры на складах предприятия.
  • Поставляется в многооборотной таре - определение для данной товарной позици типа возвратной тары (доступно при условии включения функциональной опции Многооборотная тара в разделе НСИ и администрирование - Номенклатура - Разрезы учета).
  • Обособленная закупка/продажа - при установке данного флага в заказах для данной позиции номенклатуры будет автоматически выбран вариант обеспечения Обеспечивать обособленно. Также для данной позиции будет доступна при заполнении поля складская группа возможность размещения товаров с разными физическими свойствами в области общего назначения (переключатель можно хранить в одной ячейке).
  • Состав набора - гиперссылка доступна только для номенклатурной позиции с типом Набор и позволяет настроить или изменить состав текущего набора, указать вариант его представления в печатных формах и правила задания цены.
  • Группа аналитического учета - экономический классификатор номенклатуры по однородным группам.
  • ОКВЭД - код позиции номенклатуры по общероссийскому классификатору видов экономической деятельности.
  • ТНВЭД - код по товарной номенклатуре внешнеэкономической деятельности Таможенного союза.
  • ОКП - код позиции номенклатуры по общероссийскому классификатору продукции.

Признак подакцизного товара

+

Признак подакцизного товара используется при оформлении розничных продаж, использующих систему налогообложения ЕНВД. Подакцизные товары являются объектами налогообложения в любом случае, независимо от того, применяется ли система налогообложения ЕНВД при розничной торговле. Список подакцизных товаров регламентирован в соответствии со статьей 181 НК РФ.

+
  • При оформлении продаж с розничного склада, применяющего систему ЕНВД, обобщенному покупателю (документы Чек ККМ, Отчет о розничных продажах) для подакцизных товаров устанавливается ставка НДС, указанная в форме номенклатуры.
  • Подакцизные товары запрещено продавать в рамках соглашений (документов) с видом налогообложения Продажа облагается ЕНВД.

Указание комплектующих (спецификация комплекта)

+

Комплектом может быть только позиция номенклатуры с типом товар.

+


Операция по сборке комплектов оформляется документом Сборка(разборка) товаров. Предусмотрена возможность оформления предварительного заказа на сборку(разборку) товаров. При заполнении комплектующих в документах по умолчанию используется основной вариант комплектации.

В случае если номенклатурная позиция относится к типу Набор, то для неё будет доступен только один вариант комплектации, т.е. при использовании характеристик номенклатуры будет доступно по одному варианту комплектации на каждую из характеристик.

+
  • Перейдите по гиперссылке Варианты комплектации или по команде Варианты комплектации в подменю Перейти в командной панели.
  • Создайте вариант комплектации, в котором укажите список комплектующих.
  • Можно создать несколько вариантов комплектации, один из вариантов можно отметить, как основной.

Размещение товара на складе

+

Информацию о местонахождении номенклатурной позиции на складах предприятия можно посмотреть, используя команду Размещение номенклатуры по ячейкам в подменю Перейти в командной панели. Информация о размещении товара на конкретном складе, в конкретном помещении и конкретной ячейке задается в момент приема товара на склад кладовщиком.

+

Информация о размещении доступна только в том случае, если данный товар размещен в ячейке адресного склада (помещения). Для склада (помещения), на котором хранится товар, должен быть выбран вариант работы с ячейками Использовать для хранения остатков номенклатуры.

+

Настройка обеспечения потребностей

+

При включенной функциональной опции Расширенное в разделе НСИ и администрирование – Склад и доставка - Обеспечение потребностей имеется возможность установить настройки обеспечения складов предприятия номенклатурой, для целей планирования обеспечения.

+

Для номенклатурной позиции (товара, многооборотной тары) устанавливается схема обеспечения, которая определяет способы обеспечения потребностей в номенклатуре на складах предприятия. Схема обеспечения может быть заполнена автоматически по соответствующей настройке указанной в виде номенклатуры. Установку способа обеспечения потребностей, исключая схему обеспечения, можно сделать, перейдя по гиперссылке Настройка способов обеспечения потребностей. Для работ способ обеспечения потребностей устанавливается непосредственно, без использования схем обеспечения.

+

Поддержание запаса номенклатуры: необходимость поддержания запаса на складах, особенности обеспечения для отдельных характеристик номенклатурной позиции можно просмотреть и отредактировать с помощью гиперссылки Настройка поддержания запасов.

+

Указание аналогов

+

Информацию о всех имеющихся аналогах и товарах с качеством отличным от нового, для данной номенклатурной позиции можно отобразить и при желании отредактировать,
перейдя по гиперссылке Номенклатура с аналогичными свойствами или по команде Номенклатура с аналогичными свойствами в подменю Перейти в командной панели.

+

Сведения об алкогольной продукции

+

При включенной функциональной опции Алкогольная (спиртосодержащая) продукция в рознице в разделе НСИ и администрирование – Продажи - Розничные продажи имеется возможность указать основные свойства алкогольной продукции.

+

Для номенклатурной позиции (товара) задаются:

+
  • Вид алкогольной продукции;
  • Происхождение - Россия или Импорт;
  • Объем - объем тары алкогольной продукции (в декалитрах);
  • Крепость - объемная доля этилового спирта;

Сведения об алкогольной продукции используются при оформлении продаж алкогольной продукции через ЕГАИС и для заполнения деклараций об объемах розничных продаж по данным видам товаров.
При оформлении продаж алкогольной продукции через ЕГАИС сведения об алкогольной продукции (заданные для позиции номенклатуры) используются только, если позиция номенклатуры не сопоставлена с элементом классификатора алкогольной продукции ЕГАИС.

+

Настройка маркируемой продукции

+

Для Вида номенклатуры соответствующего товарам, подлежащим обязательной маркировке, должен быть установлен Тип номенклатуры по соответствующей товарной категории.

+

Для молочной продукции в случае если вес или объем потребительской упаковки не фиксирован, учет продукции ведется в мерных единицах, в частности, в килограммах или литрах. Примером такой продукции будет сыр, отгружаемый в головах. Такую продукцию будем называть весовой молочной продукцией. При оформлении операций нанесения кодов маркировки и ввода такой продукции в оборот требуется указание кодов маркировки по количеству единиц продукции.

+

Сценарии работы с весовой молочной продукцией рассматриваются в документации на ИТС https://its.1c.ru/db/utdoc#bookmark:ismotp:WeightMilk

+

Для отдельных видов маркируемой продукции в розничной торговле сложилась практика распаковки потребительской упаковки и частичной продажи маркируемой продукции из этой потребительской упаковки. В частности, это, например, поштучная продажа сигар и продажа парфюмерной продукции на розлив.
Возможность частичного выбытия маркируемой продукции доступна только в случае использования упаковок (установлен флажок Упаковки).
В случае использования индивидуального набора упаковок в группе Маркируемая продукция ГИС МТ становятся доступными реквизиты Потребительская упаковка и Поштучная продажа, в которых соответственно нужно указать упаковку, которая соответствует потребительской упаковке маркируемого товара (пачка) и упаковку, которая используется для поштучной продаже. В частности, в список упаковок можно добавить единицу поштучной продажи (сигару), которая получается распаковкой потребительской упаковки.
При использовании общего набора упаковок настройка соответствия упаковкам ГИС МТ производится в карточке набора упаковок, а в карточке номенклатуры это соответствие отображается для сведения без возможности редактирования.

+

Подробно частичное выбытие рассматриваются в документации на ИТС https://its.1c.ru/db/utdoc#bookmark:ismotp:ParticularSaleSettings

+

Ввод дополнительных сведений

+
  • Выберите Ещё - Дополнительные сведения. Можно также воспользоваться соответствующей пиктограммой.
  • Откроется список дополнительных сведений.
  • В списке представлены те дополнительные сведения, которые являются общими или введены для вида номенклатуры, к которому относится данная позиция. В качестве значений могут использоваться различные виды значений: число, дата, текстовая строка, различные справочники.

Анализ и связанная информации

+

При помощи гиперссылок на форме номенклатуры и команд в подменю Отчеты и Перейти доступен анализ и редактирование связанной информации.

+

 

\ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Templates/ЗагрузкаИзФайла.xml b/src/Catalogs/Номенклатура/Templates/ЗагрузкаИзФайла.xml new file mode 100644 index 0000000..bd9d0bf --- /dev/null +++ b/src/Catalogs/Номенклатура/Templates/ЗагрузкаИзФайла.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Templates/ЗагрузкаИзФайла/Ext/Template.xml b/src/Catalogs/Номенклатура/Templates/ЗагрузкаИзФайла/Ext/Template.xml new file mode 100644 index 0000000..fea5994 --- /dev/null +++ b/src/Catalogs/Номенклатура/Templates/ЗагрузкаИзФайла/Ext/Template.xml @@ -0,0 +1,4953 @@ + + + + ru + ru + + ru + Русский + Русский + + + + 99 + + 0 + + 1 + + + + 1 + + 2 + + + + 2 + + 3 + + + + 3 + + 4 + + + + 4 + + 5 + + + + 5 + + 6 + + + + 6 + + 7 + + + + 7 + + 8 + + + + 8 + + 9 + + + + 9 + + 10 + + + + 10 + + 11 + + + + 11 + + 12 + + + + 12 + + 13 + + + + 13 + + 14 + + + + 15 + + 15 + + + + 16 + + 16 + + + + 17 + + 17 + + + + 18 + + 18 + + + + 19 + + 19 + + + + 20 + + 20 + + + + 21 + + 21 + + + + 22 + + 22 + + + + 23 + + 23 + + + + 24 + + 24 + + + + 25 + + 18 + + + + 26 + + 25 + + + + 27 + + 26 + + + + 28 + + 27 + + + + 29 + + 28 + + + + 30 + + 29 + + + + 31 + + 30 + + + + 32 + + 31 + + + + 33 + + 32 + + + + 34 + + 33 + + + + 35 + + 34 + + + + 36 + + 35 + + + + 37 + + 36 + + + + 38 + + 37 + + + + 39 + + 38 + + + + 40 + + 39 + + + + 41 + + 30 + + + + 42 + + 40 + + + + 43 + + 24 + + + + 44 + + 41 + + + + 45 + + 1 + + + + 46 + + 42 + + + + 47 + + 43 + + + + 48 + + 44 + + + + 49 + + 45 + + + + 50 + + 46 + + + + 51 + + 47 + + + + 52 + + 34 + + + + 53 + + 48 + + + + 54 + + 49 + + + + 55 + + 35 + + + + 56 + + 50 + + + + 57 + + 51 + + + + 58 + + 52 + + + + 59 + + 53 + + + + 60 + + 10 + + + + 61 + + 54 + + + + 62 + + 55 + + + + 63 + + 56 + + + + 64 + + 57 + + + + 65 + + 58 + + + + 66 + + 59 + + + + 67 + + 60 + + + + 68 + + 60 + + + + 69 + + 10 + + + + 70 + + 61 + + + + 71 + + 62 + + + + 72 + + 63 + + + + 73 + + 40 + + + + 74 + + 64 + + + + 75 + + 54 + + + + 76 + + 65 + + + + 77 + + 18 + + + + 78 + + 28 + + + + 79 + + 66 + + + + 80 + + 67 + + + + 81 + + 68 + + + + 82 + + 37 + + + + 83 + + 69 + + + + 84 + + 70 + + + + 85 + + 3 + + + + 86 + + 71 + + + + 87 + + 52 + + + + 88 + + 72 + + + + 89 + + 72 + + + + 90 + + 73 + + + + 91 + + 63 + + + + 92 + + 74 + + + + 93 + + 75 + + + + 94 + + 76 + + + + 95 + + 77 + + + + 96 + + 11 + + + + + 0 + + + + 78 + + + ru + Наименование + + + + Comment + 0 + 79 + + + ru + Используется для быстрой визуальной идентификации номенклатуры в процессе работы с программой. +Строка (не более 100 символов) + + + 1 + -21 + 0 + 93 + 1 + 21 + 0 + 1650 + true + Stretch + + + + + + 78 + + + ru + Группа + + + + Comment + 0 + 79 + + + ru + Группа, в которую входит данная позиция номенклатуры. +Номенклатура + + + 1 + -21 + 0 + 93 + 1 + 21 + 1 + 912 + true + Stretch + + + + + + 78 + + + ru + Единица хранения + + + + Comment + 0 + 79 + + + ru + В этой единице измерения ведется учет складских остатков товаров и указывается количество номенклатуры в одной упаковке. + + + 1 + -21 + 0 + 51 + 1 + 21 + 2 + 2055 + true + Stretch + + + + + + 78 + + + ru + Артикул + + + + Comment + 0 + 79 + + + ru + Артикул номенклатуры. +Строка, макс. количество символов: 50 + + + 1 + -21 + 0 + 93 + 1 + 21 + 3 + 636 + true + Stretch + + + + + + 78 + + + ru + Оформление продажи + + + + Comment + 0 + 79 + + + ru + Содержит информацию каким документом будет оформляться данная услуга. +Варианты заполнения «Реализация товаров и услуг», «Акт выполненных работ», +«Акт на передачу прав». + + + 4 + 33 + 0 + 1011 + 1 + 45 + 4 + 1653 + false + Stretch + + + + + + 78 + + + ru + Единица измерения веса + + + + Comment + 0 + 79 + + + ru + Единица измерения веса + + + 8 + 39 + 0 + 879 + 1 + 75 + 5 + 900 + false + Stretch + + + + + + 78 + + + ru + Вес (знаменатель) + + + + Comment + 0 + 79 + + + ru + Вес (знаменатель) +Число, Длина: 15, Точность: 3 + + + 1 + -21 + 0 + 93 + 1 + 21 + 6 + 471 + true + Stretch + + + + + + 78 + + + ru + Вес + + + + Comment + 0 + 79 + + + ru + Вес +Флаг, Да или Нет + + + 1 + -21 + 0 + 93 + 1 + 21 + 7 + 279 + true + Stretch + + + + + + 78 + + + ru + Вес можно указывать в документах + + + + Comment + 0 + 79 + + + ru + Вес можно указывать в документах +Флаг, Да или Нет + + + 1 + -21 + 0 + 93 + 1 + 21 + 8 + 582 + true + Stretch + + + + + + 78 + + + ru + Вес (числитель) + + + + Comment + 0 + 79 + + + ru + Вес (числитель) +Число, Длина: 15, Точность: 3 + + + 1 + -21 + 0 + 93 + 1 + 21 + 9 + 471 + true + Stretch + + + + + + 78 + + + ru + Импортный товар (учет по ГТД) + + + + Comment + 0 + 79 + + + ru + Импортный товар (учет по ГТД) +Флаг, Да или Нет + + + 1 + -21 + 0 + 93 + 1 + 21 + 10 + 522 + true + Stretch + + + + + + 78 + + + ru + Вести учет сертификатов номенклатуры + + + + Comment + 0 + 79 + + + ru + Признак того, что для элемента номенклатуры используются сертификаты номенклатуры. +Флаг, Да или Нет + + + 1 + -21 + 0 + 93 + 1 + 21 + 11 + 1431 + true + Stretch + + + + + + 78 + + + ru + Вид алкогольной (спиртосодержащей) продукции + + + + Comment + 0 + 79 + + + ru + Вид алкогольной продукции, используется в декларации по алкогольной продукции + + + 1 + -21 + 0 + 51 + 1 + 21 + 12 + 1299 + true + Stretch + + + + + + 78 + + + ru + Вид номенклатуры + + + + Comment + 0 + 79 + + + ru + Указывается вид, к которому следует отнести данную позицию номенклатуры. + + + 1 + -21 + 0 + 51 + 1 + 21 + 13 + 1251 + true + Stretch + + + + + + 78 + + + ru + Группа доступа + + + + Comment + 0 + 79 + + + ru + Определяет группу доступа к элементам справочника. + + + 1 + -21 + 0 + 51 + 1 + 21 + 14 + 873 + true + Stretch + + + + + + 78 + + + ru + Алкогольная (спиртосодержащая) продукция + + + + Comment + 0 + 79 + + + ru + Алкогольная (спиртосодержащая) продукция. +Флаг, Да или Нет + + + 1 + -21 + 0 + 93 + 1 + 21 + 15 + 723 + true + Stretch + + + + + + 78 + + + ru + Наименование для печати + + + + Comment + 0 + 79 + + + ru + Наименование номенклатуры, которое будет печататься во всех документах. + + + 1 + -21 + 0 + 51 + 1 + 21 + 16 + 1242 + true + Stretch + + + + + + 78 + + + ru + Единица измерения срока годности + + + + Comment + 0 + 79 + + + ru + Единица измерения срока годности + + + 1 + -21 + 0 + 51 + 1 + 21 + 17 + 561 + true + Stretch + + + + + + 78 + + + ru + Есть товары другого качества + + + + Comment + 0 + 79 + + + ru + Есть товары другого качества. +Флаг, Да или Нет + + + 1 + -21 + 0 + 93 + 1 + 21 + 18 + 501 + true + Stretch + + + + + + 78 + + + ru + Импортная алкогольная (спиртосодержащая) продукция + + + + Comment + 0 + 79 + + + ru + Отечественное либо импортное происхождение, используется при заполнении деклараций по алкогольной продукции. +Флаг, Да или Нет + + + 1 + -21 + 0 + 93 + 1 + 21 + 19 + 1854 + true + Stretch + + + + + + 78 + + + ru + Единица измерения длины + + + + Comment + 0 + 79 + + + ru + Единица измерения длины + + + 1 + -21 + 0 + 51 + 1 + 21 + 20 + 423 + true + Stretch + + + + + + 78 + + + ru + Длина (знаменатель) + + + + Comment + 0 + 79 + + + ru + Длина (знаменатель) +Число, Длина: 15, Точность: 3 + + + 1 + -21 + 0 + 93 + 1 + 21 + 21 + 471 + true + Stretch + + + + + + 78 + + + ru + Длина + + + + Comment + 0 + 79 + + + ru + Длина +Флаг, Да или Нет + + + 1 + -21 + 0 + 93 + 1 + 21 + 22 + 279 + true + Stretch + + + + + + 78 + + + ru + Длину можно указывать в документах + + + + Comment + 0 + 79 + + + ru + Длину можно указывать в документах +Флаг, Да или Нет + + + 1 + -21 + 0 + 93 + 1 + 21 + 23 + 621 + true + Stretch + + + + + + 78 + + + ru + Длина (числитель) + + + + Comment + 0 + 79 + + + ru + Длина (числитель) +Число, Длина: 15, Точность: 3 + + + 1 + -21 + 0 + 93 + 1 + 21 + 24 + 471 + true + Stretch + + + + + + 78 + + + ru + Использование характеристик + + + + Comment + 0 + 79 + + + ru + Использование характеристик. +Если характеристики не используются, то поле заполнить «Не используются» + + + 1 + -21 + 0 + 744 + 0 + 576 + 25 + 1749 + false + Stretch + + + + + + 78 + + + ru + Использовать индивидуальный шаблон ценника + + + + Comment + 0 + 79 + + + ru + Использовать индивидуальный шаблон ценника +Флаг, Да или Нет + + + 1 + -21 + 0 + 93 + 1 + 21 + 26 + 768 + true + Stretch + + + + + + 78 + + + ru + Использовать индивидуальный шаблон этикетки + + + + Comment + 0 + 79 + + + ru + Использовать индивидуальный шаблон этикетки +Флаг, Да или Нет + + + 1 + -21 + 0 + 93 + 1 + 21 + 27 + 783 + true + Stretch + + + + + + 78 + + + ru + Использовать упаковки + + + + Comment + 0 + 79 + + + ru + Использовать упаковки +Флаг, Да или Нет + + + 1 + -21 + 0 + 93 + 1 + 21 + 28 + 393 + true + Stretch + + + + + + 78 + + + ru + Качество + + + + Comment + 0 + 79 + + + ru + Качество +Возможные значения: "Новый", "Ограниченно годен", "Не годен" + + + 1 + -21 + 0 + 93 + 1 + 21 + 29 + 999 + true + Stretch + + + + + + 78 + + + ru + Код для поиска + + + + Comment + 0 + 79 + + + ru + Код для поиска +Строка, макс. количество символов: 11 + + + 1 + -21 + 0 + 93 + 1 + 21 + 30 + 633 + true + Stretch + + + + + + 78 + + + ru + Марка (бренд) + + + + Comment + 0 + 79 + + + ru + Марка (бренд) + + + 1 + -21 + 0 + 51 + 1 + 21 + 31 + 234 + true + Stretch + + + + + + 78 + + + ru + Набор упаковок + + + + Comment + 0 + 79 + + + ru + Набор упаковок для данной номенклатуры. +Если указано значение "Индивидуальный набор упаковок", то упаковки ведутся отдельно для этой позиции номенклатуры, +если значение не заполнено, то упаковки для этой позиции не используются. + + + 1 + -21 + 0 + 135 + 1 + 21 + 32 + 1935 + true + Stretch + + + + + + 78 + + + ru + Группа настроек фин. учета + + + + Comment + 0 + 79 + + + ru + Группа настроек фин. учета + + + 1 + -21 + 0 + 51 + 1 + 21 + 33 + 450 + true + Stretch + + + + + + 78 + + + ru + Многооборотная тара + + + + Comment + 0 + 79 + + + ru + Многооборотная тара, в которой транспортируется товар + + + 1 + -21 + 0 + 51 + 1 + 21 + 34 + 921 + true + Stretch + + + + + + 78 + + + ru + Объем в декалитрах + + + + Comment + 0 + 79 + + + ru + Объем в декалитрах +Число, Длина: 18, Точность: 6 + + + 1 + -21 + 0 + 93 + 1 + 21 + 35 + 471 + true + Stretch + + + + + + 78 + + + ru + Текстовое описание + + + + Comment + 0 + 79 + + + ru + Текстовое описание +Строка, макс. количество символов: 1 024 + + + 1 + -21 + 0 + 93 + 1 + 21 + 36 + 681 + true + Stretch + + + + + + 78 + + + ru + Поставляется в многооборотной таре + + + + Comment + 0 + 79 + + + ru + Товар транспортируется в многооборотной таре +Флаг, Да или Нет + + + 1 + -21 + 0 + 93 + 1 + 21 + 37 + 777 + true + Stretch + + + + + + 78 + + + ru + Производитель + + + + Comment + 0 + 79 + + + ru + Производитель + + + 1 + -21 + 0 + 51 + 1 + 21 + 38 + 255 + true + Stretch + + + + + + 78 + + + ru + Производитель (импортер) алкогольной (спиртосодержащей) продукции + + + + Comment + 0 + 79 + + + ru + Производитель для отечественной, импортер для импортной алкогольной продукции + + + 1 + -21 + 0 + 51 + 1 + 21 + 39 + 1338 + true + Stretch + + + + + + 78 + + + ru + Складская группа + + + + Comment + 0 + 79 + + + ru + Классификация номенклатуры по признакам складской обработки. +В разрезе складских групп номенклатуры задаются правила автоматического +размещения номенклатуры на складе с адресным хранением остатков. + + + 1 + -21 + 0 + 135 + 1 + 21 + 40 + 1233 + true + Stretch + + + + + + 78 + + + ru + Срок годности + + + + Comment + 0 + 79 + + + ru + Срок годности товара +Число, Длина: 15, Точность: 0 + + + 1 + -21 + 0 + 93 + 1 + 21 + 41 + 471 + true + Stretch + + + + + + 78 + + + ru + Ставка НДС + + + + Comment + 0 + 79 + + + ru + Определяется ставка НДС товара или услуги + + + 1 + -21 + 0 + 51 + 1 + 21 + 42 + 726 + true + Stretch + + + + + + 78 + + + ru + Тип номенклатуры + + + + Comment + 0 + 79 + + + ru + Содержит тип, к которому относится номенклатура. Данный реквизит копируется из вида номенклатуры. В элементе номенклатуры реквизит не может быть изменен пользователем. + + + 1 + -21 + 0 + 51 + 1 + 21 + 43 + 2877 + true + Stretch + + + + + + 78 + + + ru + Товарная категория + + + + Comment + 0 + 79 + + + ru + Товарная категория + + + 1 + -21 + 0 + 51 + 1 + 21 + 44 + 324 + true + Stretch + + + + + + 78 + + + ru + Файл картинки + + + + + + + 78 + + + ru + Файл описания для сайта + + + + Comment + 0 + 79 + + + ru + Ссылка на файл картинки номенклатуры + + + 1 + -21 + 0 + 51 + 1 + 21 + 46 + 645 + true + Stretch + + + + + + 78 + + + ru + Единица измерения объема + + + + Comment + 0 + 79 + + + ru + Единица измерения объема + + + 1 + -21 + 0 + 51 + 1 + 21 + 47 + 444 + true + Stretch + + + + + + 78 + + + ru + Объем (знаменатель) + + + + Comment + 0 + 79 + + + ru + Объем (знаменатель) +Число, Длина: 15, Точность: 3 + + + 1 + -21 + 0 + 93 + 1 + 21 + 48 + 471 + true + Stretch + + + + + + 78 + + + ru + Объем + + + + Comment + 0 + 79 + + + ru + Объем +Флаг, Да или Нет + + + 1 + -21 + 0 + 93 + 1 + 21 + 49 + 279 + true + Stretch + + + + + + 78 + + + ru + Объем можно указывать в документах + + + + Comment + 0 + 79 + + + ru + Объем можно указывать в документах +Флаг, Да или 1 / Нет или 0 + + + 1 + -21 + 0 + 93 + 1 + 21 + 50 + 630 + true + Stretch + + + + + + 78 + + + ru + Объем (числитель) + + + + Comment + 0 + 79 + + + ru + Объем (числитель) +Число, Длина: 15, Точность: 3 + + + 1 + -21 + 0 + 93 + 1 + 21 + 51 + 471 + true + Stretch + + + + + + 78 + + + ru + Характеристика тары + + + + Comment + 0 + 79 + + + ru + Характеристика многооборотной тары, в которой транспортируется товар + + + 1 + -21 + 0 + 51 + 1 + 21 + 52 + 1185 + true + Stretch + + + + + + 78 + + + ru + Единица измерения площади + + + + Comment + 0 + 79 + + + ru + Единица измерения площади + + + 1 + -21 + 0 + 51 + 1 + 21 + 53 + 459 + true + Stretch + + + + + + 78 + + + ru + Площадь (знаменатель) + + + + Comment + 0 + 79 + + + ru + Площадь (знаменатель) +Число, Длина: 15, Точность: 3 + + + 1 + -21 + 0 + 93 + 1 + 21 + 54 + 471 + true + Stretch + + + + + + 78 + + + ru + Схема обеспечения + + + + Comment + 0 + 79 + + + ru + Схема обеспечения + + + 1 + -21 + 0 + 51 + 1 + 21 + 55 + 324 + true + Stretch + + + + + + 78 + + + ru + Способ обеспечения потребностей + + + + Comment + 0 + 79 + + + ru + Способ обеспечения потребностей + + + 1 + -21 + 0 + 51 + 1 + 21 + 56 + 561 + true + Stretch + + + + + + 78 + + + ru + Площадь + + + + Comment + 0 + 79 + + + ru + Площадь +Флаг, Да или Нет + + + 1 + -21 + 0 + 93 + 1 + 21 + 57 + 279 + true + Stretch + + + + + + 78 + + + ru + Площадь можно указывать в документах + + + + Comment + 0 + 79 + + + ru + Площадь можно указывать в документах +Флаг, Да или Нет + + + 1 + -21 + 0 + 93 + 1 + 21 + 58 + 660 + true + Stretch + + + + + + 78 + + + ru + Площадь (числитель) + + + + Comment + 0 + 79 + + + ru + Площадь (числитель) +Число, Длина: 15, Точность: 3 + + + 1 + -21 + 0 + 93 + 1 + 21 + 59 + 471 + true + Stretch + + + + + + 78 + + + ru + Ценовая группа + + + + Comment + 0 + 79 + + + ru + Определяет ценовую группу, к которой относится номенклатурная позиция. + + + 1 + -21 + 0 + 51 + 1 + 21 + 60 + 1200 + true + Stretch + + + + + + 78 + + + ru + Шаблон ценника + + + + Comment + 0 + 79 + + + ru + Шаблон ценника + + + 1 + -21 + 0 + 51 + 1 + 21 + 61 + 270 + true + Stretch + + + + + + 78 + + + ru + Единица для отчетов + + + + Comment + 0 + 79 + + + ru + В отчетах можно сопоставить между собой количества товаров, пересчитанные в эту единицу из единицы хранения с указанным коэффициентом. + + + 1 + -21 + 0 + 51 + 1 + 21 + 62 + 2328 + true + Stretch + + + + + + 78 + + + ru + Коэффициент единицы для отчетов + + + + Comment + 0 + 79 + + + ru + Коэффициент пересчета единицы хранения в единицу для отчетов. +Число, Длина: 15, Точность: 3 + + + 1 + -21 + 0 + 93 + 1 + 21 + 63 + 1071 + true + Stretch + + + + + + 78 + + + ru + Шаблон этикетки + + + + Comment + 0 + 79 + + + ru + Шаблон этикетки + + + 1 + -21 + 0 + 51 + 1 + 21 + 64 + 285 + true + Stretch + + + + + + 78 + + + ru + Сезонная группа + + + + Comment + 0 + 79 + + + ru + Определяет сезонную группу, к которой относится номенклатурная позиция. + + + 1 + -21 + 0 + 51 + 1 + 21 + 65 + 1212 + true + Stretch + + + + + + 78 + + + ru + Коллекция (сезон) + + + + Comment + 0 + 79 + + + ru + Коллекция (сезон) к которому принадлежит данный товар. + + + 1 + -21 + 0 + 51 + 1 + 21 + 66 + 927 + true + Stretch + + + + + + 78 + + + ru + Принципал + + + + Comment + 0 + 79 + + + ru + Принципал - поставщик, которому продавец услуги предоставляет отчет + + + 1 + -21 + 0 + 51 + 1 + 21 + 67 + 1158 + true + Stretch + + + + + + 78 + + + ru + Контрагент + + + + Comment + 0 + 79 + + + ru + Контрагент данного принципала, используется для проводок + + + 1 + -21 + 0 + 51 + 1 + 21 + 68 + 960 + true + Stretch + + + + + + 78 + + + ru + Рейтинг продаж + + + + Comment + 0 + 79 + + + ru + Рейтинг продажи, с которым продается товар. + + + 1 + -21 + 0 + 51 + 1 + 21 + 69 + 741 + true + Stretch + + + + + + 78 + + + ru + Обособленное обеспечение + + + + Comment + 0 + 79 + + + ru + Обособленное обеспечение +Флаг, Да или Нет + + + 1 + -21 + 0 + 93 + 1 + 21 + 70 + 447 + true + Stretch + + + + + + 78 + + + ru + Группа аналитического учета + + + + Comment + 0 + 79 + + + ru + Группа аналитического учета + + + 1 + -21 + 0 + 51 + 1 + 21 + 71 + 474 + true + Stretch + + + + + + 78 + + + ru + Код ТНВЭД + + + + Comment + 0 + 79 + + + ru + Код по товарной номенклатуре внешнеэкономической деятельности Таможенного союза + + + 1 + -21 + 0 + 51 + 1 + 21 + 72 + 1404 + true + Stretch + + + + + + 78 + + + ru + Код ОКВЭД + + + + Comment + 0 + 79 + + + ru + Код по общероссийскому классификатору видов экономической деятельности + + + 1 + -21 + 0 + 51 + 1 + 21 + 73 + 1242 + true + Stretch + + + + + + 78 + + + ru + Код ОКП + + + + Comment + 0 + 79 + + + ru + Код по общероссийскому классификатору продукции + + + 1 + -21 + 0 + 51 + 1 + 21 + 74 + 837 + true + Stretch + + + + + + 78 + + + ru + Владелец серий + + + + Comment + 0 + 79 + + + ru + Владелец серий + + + 1 + -21 + 0 + 51 + 1 + 21 + 75 + 264 + true + Stretch + + + + + + 78 + + + ru + Владелец характеристик + + + + Comment + 0 + 79 + + + ru + Владелец характеристик + + + 1 + -21 + 0 + 51 + 1 + 21 + 76 + 402 + true + Stretch + + + + + + 78 + + + ru + Владелец товарных категорий + + + + Comment + 0 + 79 + + + ru + Владелец товарных категорий + + + 1 + -21 + 0 + 51 + 1 + 21 + 77 + 489 + true + Stretch + + + + + + 78 + + + ru + Крепость + + + + Comment + 0 + 79 + + + ru + Крепость +Число, Длина: 5, Точность: 3 + + + 1 + -21 + 0 + 93 + 1 + 21 + 78 + 453 + true + Stretch + + + + + + 78 + + + ru + Особенность учета + + + + Comment + 0 + 79 + + + ru + Особенность учета + + + 1 + -21 + 0 + 51 + 1 + 21 + 79 + 321 + true + Stretch + + + + + + 78 + + + ru + Продукция, маркируемая для ГИСМ + + + + Comment + 0 + 79 + + + ru + Продукция, маркируемая для ГИСМ +Флаг, Да или Нет + + + 1 + -21 + 0 + 93 + 1 + 21 + 80 + 567 + true + Stretch + + + + + + 78 + + + ru + Контрольный (идентификационный) знак ГИСМ + + + + Comment + 0 + 79 + + + ru + Контрольный (идентификационный) знак ГИСМ +Флаг, Да или Нет + + + 1 + -21 + 0 + 93 + 1 + 21 + 81 + 747 + true + Stretch + + + + + + 78 + + + ru + Вид КиЗ ГИСМ + + + + Comment + 0 + 79 + + + ru + Вид КиЗ ГИСМ + + + 1 + -21 + 0 + 51 + 1 + 21 + 82 + 243 + true + Stretch + + + + + + 78 + + + ru + Способ выпуска в оборот КиЗ ГИСМ + + + + Comment + 0 + 79 + + + ru + Способ выпуска в оборот КиЗ ГИСМ + + + 1 + -21 + 0 + 51 + 1 + 21 + 83 + 585 + true + Stretch + + + + + + 78 + + + ru + GTIN, записываемый эмитентом в КиЗ ГИСМ + + + + Comment + 0 + 79 + + + ru + GTIN, записываемый эмитентом в КиЗ ГИСМ +Строка, макс. количество символов: 14 + + + 1 + -21 + 0 + 93 + 1 + 21 + 84 + 720 + true + Stretch + + + + + + 78 + + + ru + Размер КиЗ ГИСМ + + + + Comment + 0 + 79 + + + ru + Размер КиЗ ГИСМ + + + 1 + -21 + 0 + 51 + 1 + 21 + 85 + 297 + true + Stretch + + + + + + 78 + + + ru + Алкогольная продукция во вскрытой таре + + + + Comment + 0 + 79 + + + ru + Алкогольная продукция во вскрытой таре +Флаг, Да или Нет + + + 1 + -21 + 0 + 93 + 1 + 21 + 86 + 669 + true + Stretch + + + + + + 80 + + + ru + Операции НДС 0% + + + + Comment + 0 + 79 + + + ru + Операции НДС 0% + + + 1 + -21 + 0 + 51 + 1 + 21 + 87 + 300 + true + Stretch + + + + + + 78 + + + ru + Код для раздела 7 декларации по НДС + + + + Comment + 0 + 79 + + + ru + Код операции для заполнения раздела 7 декларации по НДС + + + 1 + -21 + 0 + 51 + 1 + 21 + 88 + 942 + true + Stretch + + + + + + 78 + + + ru + Код ОКВЭД2 + + + + + + + 78 + + + ru + Код ОКПД2 + + + + Comment + 0 + 79 + + + ru + Код ОКПД2 + + + 1 + -21 + 0 + 51 + 1 + 21 + 90 + 192 + true + Stretch + + + + + + 78 + + + ru + Код вида номенклатурной классификации + + + + Comment + 0 + 79 + + + ru + Код вида номенклатурной классификации +Строка, макс. количество символов: 13 + + + 1 + -21 + 0 + 93 + 1 + 21 + 91 + 666 + true + Stretch + + + + + + 78 + + + ru + Наименование вида номенклатурной классификации + + + + Comment + 0 + 79 + + + ru + Наименование вида номенклатурной классификации +Строка, макс. количество символов: 150 + + + 1 + -21 + 0 + 93 + 1 + 21 + 92 + 837 + true + Stretch + + + + + + 78 + + + ru + Единица измерения ТН ВЭД + + + + Comment + 0 + 79 + + + ru + В этой единице измерения ведется учет остатков импортных товаров организации, подлежащих прослеживаемости. + + + 1 + -21 + 0 + 51 + 1 + 21 + 93 + 1854 + true + Stretch + + + + + + 78 + + + ru + Страна происхождения + + + + Comment + 0 + 79 + + + ru + Страна происхождения + + + 1 + -21 + 0 + 51 + 1 + 21 + 94 + 378 + true + Stretch + + + + + + 0 + + + ru + Препарат отпускается по документу + + + + Comment + 0 + 79 + + + ru + Препарат отпускается по документу +Флаг, Да или 1 / Нет или 0 + + + 1 + -21 + 0 + 93 + 1 + 21 + 95 + 588 + true + Stretch + + + + + + 0 + + + ru + <Дополнительные реквизиты> + + + + + + + 81 + + + ru + Контролировать качество поступившего товара + + + + + + + 82 + + + ru + Срок контроля качества + + + + + + + true + 1 + 1 + + АлкогольнаяПродукция + + Rectangle + 0 + 0 + 15 + 15 + + + + АлкогольнаяПродукцияВоВскрытойТаре + + Rectangle + 0 + 0 + 86 + 86 + + + + Артикул + + Rectangle + 0 + 0 + 3 + 3 + + + + ВариантОформленияПродажи + + Rectangle + 0 + 0 + 4 + 4 + + + + ВесЕдиницаИзмерения + + Rectangle + 0 + 0 + 5 + 5 + + + + ВесЗнаменатель + + Rectangle + 0 + 0 + 6 + 6 + + + + ВесИспользовать + + Rectangle + 0 + 0 + 7 + 7 + + + + ВесМожноУказыватьВДокументах + + Rectangle + 0 + 0 + 8 + 8 + + + + ВестиУчетПоГТД + + Rectangle + 0 + 0 + 10 + 10 + + + + ВестиУчетСертификатовНоменклатуры + + Rectangle + 0 + 0 + 11 + 11 + + + + ВесЧислитель + + Rectangle + 0 + 0 + 9 + 9 + + + + ВидАлкогольнойПродукции + + Rectangle + 0 + 0 + 12 + 12 + + + + ВидНоменклатуры + + Rectangle + 0 + 0 + 13 + 13 + + + + ВладелецСерий + + Rectangle + 0 + 0 + 75 + 75 + + + + ВладелецТоварныхКатегорий + + Rectangle + 0 + 0 + 77 + 77 + + + + ВладелецХарактеристик + + Rectangle + 0 + 0 + 76 + 76 + + + + ГруппаАналитическогоУчета + + Rectangle + 0 + 0 + 71 + 71 + + + + ГруппаДоступа + + Rectangle + 0 + 0 + 14 + 14 + + + + ГруппаФинансовогоУчета + + Rectangle + 0 + 0 + 33 + 33 + + + + ДлинаЕдиницаИзмерения + + Rectangle + 0 + 0 + 20 + 20 + + + + ДлинаЗнаменатель + + Rectangle + 0 + 0 + 21 + 21 + + + + ДлинаИспользовать + + Rectangle + 0 + 0 + 22 + 22 + + + + ДлинаМожноУказыватьВДокументах + + Rectangle + 0 + 0 + 23 + 23 + + + + ДлинаЧислитель + + Rectangle + 0 + 0 + 24 + 24 + + + + ДополнительныеРеквизиты + + Rectangle + 0 + 0 + 96 + 96 + + + + ЕдиницаДляОтчетов + + Rectangle + 0 + 0 + 62 + 62 + + + + ЕдиницаИзмерения + + Rectangle + 0 + 0 + 2 + 2 + + + + ЕдиницаИзмеренияСрокаГодности + + Rectangle + 0 + 0 + 17 + 17 + + + + ЕдиницаИзмеренияТНВЭД + + Rectangle + 0 + 0 + 93 + 93 + + + + ЕстьТоварыДругогоКачества + + Rectangle + 0 + 0 + 18 + 18 + + + + ИмпортнаяАлкогольнаяПродукция + + Rectangle + 0 + 0 + 19 + 19 + + + + ИспользованиеХарактеристик + + Rectangle + 0 + 0 + 25 + 25 + + + + ИспользоватьИндивидуальныйШаблонЦенника + + Rectangle + 0 + 0 + 26 + 26 + + + + ИспользоватьИндивидуальныйШаблонЭтикетки + + Rectangle + 0 + 0 + 27 + 27 + + + + ИспользоватьУпаковки + + Rectangle + 0 + 0 + 28 + 28 + + + + Качество + + Rectangle + 0 + 0 + 29 + 29 + + + + КиЗГИСМ + + Rectangle + 0 + 0 + 81 + 81 + + + + КиЗГИСМGTIN + + Rectangle + 0 + 0 + 84 + 84 + + + + КиЗГИСМВид + + Rectangle + 0 + 0 + 82 + 82 + + + + КиЗГИСМРазмер + + Rectangle + 0 + 0 + 85 + 85 + + + + КиЗГИСМСпособВыпускаВОборот + + Rectangle + 0 + 0 + 83 + 83 + + + + КодВидаНоменклатурнойКлассификации + + Rectangle + 0 + 0 + 91 + 91 + + + + КодДляПоиска + + Rectangle + 0 + 0 + 30 + 30 + + + + КодОКВЭД + + Rectangle + 0 + 0 + 73 + 73 + + + + КодОКВЭД2 + + Rectangle + 0 + 0 + 89 + 89 + + + + КодОКП + + Rectangle + 0 + 0 + 74 + 74 + + + + КодОКПД2 + + Rectangle + 0 + 0 + 90 + 90 + + + + КодРаздел7ДекларацииНДС + + Rectangle + 0 + 0 + 88 + 88 + + + + КодТНВЭД + + Rectangle + 0 + 0 + 72 + 72 + + + + КоллекцияНоменклатуры + + Rectangle + 0 + 0 + 66 + 66 + + + + Контрагент + + Rectangle + 0 + 0 + 68 + 68 + + + + КонтролироватьКачествоПоступившегоТовара + + Rectangle + 0 + 0 + 97 + 97 + + + + КоэффициентЕдиницыДляОтчетов + + Rectangle + 0 + 0 + 63 + 63 + + + + Крепость + + Rectangle + 0 + 0 + 78 + 78 + + + + Марка + + Rectangle + 0 + 0 + 31 + 31 + + + + НаборУпаковок + + Rectangle + 0 + 0 + 32 + 32 + + + + Наименование + + Rectangle + 0 + 0 + 0 + 0 + + + + НаименованиеВидаНоменклатурнойКлассификации + + Rectangle + 0 + 0 + 92 + 92 + + + + НаименованиеПолное + + Rectangle + 0 + 0 + 16 + 16 + + + + НоменклатураМногооборотнаяТара + + Rectangle + 0 + 0 + 34 + 34 + + + + ОбособленнаяЗакупкаПродажа + + Rectangle + 0 + 0 + 70 + 70 + + + + ОбъемДАЛ + + Rectangle + 0 + 0 + 35 + 35 + + + + ОбъемЕдиницаИзмерения + + Rectangle + 0 + 0 + 47 + 47 + + + + ОбъемЗнаменатель + + Rectangle + 0 + 0 + 48 + 48 + + + + ОбъемИспользовать + + Rectangle + 0 + 0 + 49 + 49 + + + + ОбъемМожноУказыватьВДокументах + + Rectangle + 0 + 0 + 50 + 50 + + + + ОбъемЧислитель + + Rectangle + 0 + 0 + 51 + 51 + + + + Операции0 + + Rectangle + 0 + 0 + 87 + 87 + + + + Описание + + Rectangle + 0 + 0 + 36 + 36 + + + + ОсобенностьУчета + + Rectangle + 0 + 0 + 79 + 79 + + + + ПлощадьЕдиницаИзмерения + + Rectangle + 0 + 0 + 53 + 53 + + + + ПлощадьЗнаменатель + + Rectangle + 0 + 0 + 54 + 54 + + + + ПлощадьИспользовать + + Rectangle + 0 + 0 + 57 + 57 + + + + ПлощадьМожноУказыватьВДокументах + + Rectangle + 0 + 0 + 58 + 58 + + + + ПлощадьЧислитель + + Rectangle + 0 + 0 + 59 + 59 + + + + ПоставляетсяВМногооборотнойТаре + + Rectangle + 0 + 0 + 37 + 37 + + + + Принципал + + Rectangle + 0 + 0 + 67 + 67 + + + + ПродаетсяПоРазрешению + + Rectangle + 0 + 0 + 95 + 95 + + + + ПродукцияМаркируемаяДляГИСМ + + Rectangle + 0 + 0 + 80 + 80 + + + + Производитель + + Rectangle + 0 + 0 + 38 + 38 + + + + ПроизводительИмпортерКонтрагент + + Rectangle + 0 + 0 + 39 + 39 + + + + РейтингПродаж + + Rectangle + 0 + 0 + 69 + 69 + + + + Родитель + + Rectangle + 0 + 0 + 1 + 1 + + + + СезоннаяГруппа + + Rectangle + 0 + 0 + 65 + 65 + + + + СкладскаяГруппа + + Rectangle + 0 + 0 + 40 + 40 + + + + СпособОбеспеченияПотребностей + + Rectangle + 0 + 0 + 56 + 56 + + + + СрокГодности + + Rectangle + 0 + 0 + 41 + 41 + + + + СрокКонтроляКачества + + Rectangle + 0 + 0 + 98 + 98 + + + + СтавкаНДС + + Rectangle + 0 + 0 + 42 + 42 + + + + СтранаПроисхождения + + Rectangle + 0 + 0 + 94 + 94 + + + + СхемаОбеспечения + + Rectangle + 0 + 0 + 55 + 55 + + + + ТипНоменклатуры + + Rectangle + 0 + 0 + 43 + 43 + + + + ТоварнаяКатегория + + Rectangle + 0 + 0 + 44 + 44 + + + + ФайлКартинки + + Rectangle + 0 + 0 + 45 + 45 + + + + ФайлОписанияДляСайта + + Rectangle + 0 + 0 + 46 + 46 + + + + ХарактеристикаМногооборотнаяТара + + Rectangle + 0 + 0 + 52 + 52 + + + + ЦеноваяГруппа + + Rectangle + 0 + 0 + 60 + 60 + + + + ШаблонЦенника + + Rectangle + 0 + 0 + 61 + 61 + + + + ШаблонЭтикетки + + Rectangle + 0 + 0 + 64 + 64 + + + + + 114 + + + 62 + + + 142 + + + 69 + + + 166 + + + 187 + + + 141 + + + 40 + + + 261 + + + 123 + + + 227 + + + 287 + + + 355 + + + 143 + + + 326 + + + 194 + + + 259 + + + 221 + + + 402 + + + 199 + + + 157 + + + 56 + + + 277 + + + 139 + + + 346 + + + 349 + + + 175 + + + 77 + + + 121 + + + 112 + + + 122 + + + 205 + + + 160 + + + 155 + + + 151 + + + 269 + + + 118 + + + 510 + + + 137 + + + 96 + + + 149 + + + 191 + + + 207 + + + 161 + + + 61 + + + 281 + + + 144 + + + 218 + + + 179 + + + 253 + + + 79 + + + 299 + + + 162 + + + 126 + + + 159 + + + 255 + + + 128 + + + 129 + + + 138 + + + 88 + + + 206 + + + 215 + + + 94 + + + 75 + + + 183 + + + 145 + + + 264 + + + 335 + + + 265 + + + 323 + + + 251 + + + 283 + + + 104 + + + 302 + + + 376 + + + 209 + + + 174 + + + 0 + + + Top + #FFFAD9 + + + 0 + 283 + + + 174 + 1 + + + 168 + 1 + + \ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Templates/ПФ_MXL_КарточкаНоменклатуры.xml b/src/Catalogs/Номенклатура/Templates/ПФ_MXL_КарточкаНоменклатуры.xml new file mode 100644 index 0000000..f1b201d --- /dev/null +++ b/src/Catalogs/Номенклатура/Templates/ПФ_MXL_КарточкаНоменклатуры.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Templates/ПФ_MXL_КарточкаНоменклатуры/Ext/Template.xml b/src/Catalogs/Номенклатура/Templates/ПФ_MXL_КарточкаНоменклатуры/Ext/Template.xml new file mode 100644 index 0000000..7713da7 --- /dev/null +++ b/src/Catalogs/Номенклатура/Templates/ПФ_MXL_КарточкаНоменклатуры/Ext/Template.xml @@ -0,0 +1,18212 @@ + + + + ru + ru + + ru + Русский + Русский + + + + 65 + + 0 + + 1 + + + + 1 + + 2 + + + + 2 + + 2 + + + + 3 + + 2 + + + + 4 + + 2 + + + + 5 + + 2 + + + + 6 + + 2 + + + + 7 + + 2 + + + + 8 + + 2 + + + + 9 + + 2 + + + + 10 + + 2 + + + + 11 + + 2 + + + + 12 + + 2 + + + + 13 + + 2 + + + + 14 + + 2 + + + + 15 + + 2 + + + + 16 + + 2 + + + + 17 + + 2 + + + + 18 + + 2 + + + + 19 + + 2 + + + + 20 + + 2 + + + + 21 + + 2 + + + + 22 + + 2 + + + + 23 + + 2 + + + + 24 + + 2 + + + + 25 + + 2 + + + + 26 + + 2 + + + + 27 + + 2 + + + + 28 + + 2 + + + + 29 + + 2 + + + + 30 + + 2 + + + + 31 + + 2 + + + + 32 + + 2 + + + + 33 + + 2 + + + + 34 + + 2 + + + + 35 + + 2 + + + + 36 + + 2 + + + + 37 + + 2 + + + + 38 + + 2 + + + + 39 + + 2 + + + + 40 + + 2 + + + + 41 + + 2 + + + + 42 + + 1 + + + + + 0 + + 3 + + + 4 + + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + 5 + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + 5 + + + + + + 5 + + + + + 5 + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + 5 + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + 5 + + + + + 5 + + + + + + 5 + + + + + + 5 + + + + + 5 + + + + + 5 + + + + + 4 + + + + + + 1 + + 6 + + + 4 + + + + + + 7 + + + ru + Рабочее наименование: + + + РасшифровкаНаименование + + + + 11 + + 8 + Наименование + РасшифровкаНаименование + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + + 2 + + 6 + + + 4 + + + + + + 7 + + + ru + Наименование для печати: + + + РасшифровкаНаименованиеПолное + + + + 11 + + 10 + НаименованиеПолное + РасшифровкаНаименованиеПолное + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + + 3 + + 6 + + + 4 + + + + + + 11 + + + ru + Артикул: + + + РасшифровкаАртикул + + + + 11 + + 12 + Артикул + РасшифровкаАртикул + + + + + 13 + + + + + 13 + + + + + 13 + + + + + 13 + + + + + 13 + + + + + 13 + + + + + 13 + + + + + 13 + + + + + 13 + + + + + 13 + + + + + 14 + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + РасшифровкаГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + + + + + 15 + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + + + + + 15 + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + + + + + 15 + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + + + + + 15 + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + + + + + 15 + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + + + + + 15 + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + + + + + 15 + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + + + + + 15 + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + + + + + 15 + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + + + + + 15 + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + + + + + 15 + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + + + + + 15 + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + + + + + 15 + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + + + + + 15 + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + + + + + 15 + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + + + + + 15 + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + + + + + 15 + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + + + + + 15 + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + + + + + 15 + ГиперссылкаПерейтиНоменклатураСАналогичнымиСвойствами + + + + + + 4 + + 6 + + + 4 + + + + + + 7 + + + ru + Код: + + + РасшифровкаКод + + + + 11 + + 16 + Код + РасшифровкаКод + + + + + 17 + + + + + 17 + + + + + 17 + + + + + 17 + + + + + 17 + + + + + 17 + + + + + 17 + + + + + 17 + + + + + 17 + + + + + 17 + + + + + 18 + ГиперссылкаПерейтиШтрихкодыНоменклатуры + РасшифровкаГиперссылкаПерейтиШтрихкодыНоменклатуры + + + + 33 + + 7 + + + + + + 7 + + + + + + 7 + + + + + 7 + + + + + 7 + + + + + + 7 + + + + + + 7 + + + + + + 7 + + + + + 7 + + + + + + 5 + + 6 + + + 4 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 4 + + + + + + 6 + + 6 + + + 4 + + + + + 19 + + + ru + Ниже находится строка с доп.строками или отступами. Не удалять! + + + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 4 + + + + + + 7 + + 6 + + + 4 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 4 + + + + + + 8 + + 6 + + + 22 + + + + + 23 + + + ru + Описание + + + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 25 + + + ru + Основные параметры учета + + + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 4 + + + + + + 9 + + 6 + + + 22 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + ru + Группа списка: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + Родитель + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 26 + + + + + + 10 + + 6 + + + 22 + + + + + 27 + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 7 + + + ru + Группа доступа: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + ГруппаДоступа + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 26 + + + + + + 11 + + 6 + + + 22 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 7 + + + ru + Вид номенклатуры: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + ВидНоменклатуры + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 4 + + + + + + 12 + + 6 + + + 22 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 7 + + + ru + Тип номенклатуры: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + ТипНоменклатуры + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 4 + + + + + + 13 + + 6 + + + 22 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 18 + ГиперссылкаПерейтиСоставНабора + Расшифровка + + + + 37 + + 28 + Картинка + Расшифровка + + + + + 29 + + + + 42 + + 4 + + + + + + 14 + + 6 + + + 22 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 7 + + + ru + Характеристики: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + ИспользованиеХарактеристик + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 4 + + + + + + 15 + + 6 + + + 22 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 18 + ГиперссылкаПерейтиХарактеристикиНоменклатуры + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 4 + + + + + + 16 + + 6 + + + 22 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 7 + + + ru + Серии: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + НастройкаИспользованияСерий + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 4 + + + + + + 17 + + 6 + + + 22 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 7 + + + ru + Оформление продажи: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + ВариантОформленияПродажи + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 4 + + + + + + 18 + + 6 + + + 22 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 4 + + + + + + 19 + + 6 + + + 22 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 7 + + + ru + Ставка НДС: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + СтавкаНДС + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 22 + + + + + + 20 + + 6 + + + 22 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 30 + ГиперссылкаПерейтиСтавкиНДСНоменклатуры + Расшифровка + + + + + 31 + ГиперссылкаПерейтиСтавкиНДСНоменклатуры + + + + + 31 + ГиперссылкаПерейтиСтавкиНДСНоменклатуры + + + + + 31 + ГиперссылкаПерейтиСтавкиНДСНоменклатуры + + + + + 31 + ГиперссылкаПерейтиСтавкиНДСНоменклатуры + + + + + 31 + ГиперссылкаПерейтиСтавкиНДСНоменклатуры + + + + + 31 + ГиперссылкаПерейтиСтавкиНДСНоменклатуры + + + + + 31 + ГиперссылкаПерейтиСтавкиНДСНоменклатуры + + + + + 31 + ГиперссылкаПерейтиСтавкиНДСНоменклатуры + + + + + 31 + ГиперссылкаПерейтиСтавкиНДСНоменклатуры + + + + + 31 + ГиперссылкаПерейтиСтавкиНДСНоменклатуры + + + + + 31 + ГиперссылкаПерейтиСтавкиНДСНоменклатуры + + + + + 31 + ГиперссылкаПерейтиСтавкиНДСНоменклатуры + + + + + 31 + ГиперссылкаПерейтиСтавкиНДСНоменклатуры + + + + + 31 + ГиперссылкаПерейтиСтавкиНДСНоменклатуры + + + + + 31 + ГиперссылкаПерейтиСтавкиНДСНоменклатуры + + + + + 31 + ГиперссылкаПерейтиСтавкиНДСНоменклатуры + + + + + 31 + ГиперссылкаПерейтиСтавкиНДСНоменклатуры + + + + + 31 + ГиперссылкаПерейтиСтавкиНДСНоменклатуры + + + + + 31 + ГиперссылкаПерейтиСтавкиНДСНоменклатуры + + + + + 26 + + + + + + 21 + + 6 + + + 22 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 32 + + + + + 32 + + + ru + Код ТН ВЭД: + + + Расшифровка + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 34 + КодТНВЭД + Расшифровка + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 35 + + + + + + 22 + + 6 + + + 22 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 7 + + + ru + Качество: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + Качество + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 26 + + + + + + 23 + + 6 + + + 22 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 30 + ГиперссылкаПерейтиТоварыДругогоКачества + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 26 + + + + + + 24 + + 6 + + + 35 + + + + + 33 + + + ru + Изображение: + + + Расшифровка + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 36 + + + ru + Ошибка при чтении файла + + + Расшифровка + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 26 + + + + + + 25 + + 6 + + + 35 + + + + + 33 + + + ru + Изображение: + + + Расшифровка + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 37 + + + ru + <не указано> + + + Расшифровка + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 7 + + + + + 38 + + + ru + Единицы измерения и условия хранения + + + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 26 + + + + + + 26 + + 6 + + + 22 + + + + + 7 + + + ru + Текстовое описание: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + Описание + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 7 + + + ru + Упаковки: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + ИспользоватьУпаковки + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 26 + + + + + + 27 + + 6 + + + 22 + + + + + 7 + + + ru + Файл описания для сайта: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + ФайлОписанияДляСайта + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 30 + ГиперссылкаПерейтиУпаковкиНоменклатуры + Расшифровка + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 39 + Картинка + Расшифровка + + + + + 33 + + + + + 33 + + + + + 40 + + + + + 41 + + + + + 42 + + + + + 42 + + + + + 42 + + + + + 26 + + + + + + 28 + + 6 + + + 22 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 43 + ГиперссылкаПерейтиУпаковкиНабора + Расшифровка + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 44 + Картинка + Расшифровка + + + + + 33 + + + + + 33 + + + + + 45 + + + + + 46 + + + + + 46 + + + + + 46 + + + + + 46 + + + + + 26 + + + + + + 29 + + 6 + + + 22 + + + + + 18 + Файлы + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 46 + + + + + 47 + + + ru + Прогнозы расхода упаковок + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 35 + + + + + + 30 + + 6 + + + 7 + + + + + + 7 + + + ru + Учет сертификатов номенклатуры: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 10 + ВестиУчетСертификатовНоменклатуры + Расшифровка + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 7 + + + + + 16 + ЕдиницаИзмеренияРеквизит + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + ЕдиницаИзмерения + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 22 + + + + + + 31 + + 6 + + + 7 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 18 + ГиперссылкаПерейтиСертификатыНоменклатуры + РасшифровкаГиперссылки + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 39 + Картинка + РасшифровкаГиперссылки + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 48 + + + + + + 49 + + + + + 7 + + + + + 7 + + + ru + Многооборотная тара: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + НоменклатураМногооборотнаяТара + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 22 + + + + + + 32 + + 6 + + + 22 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + ru + Единица для отчетов: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + ЕдиницаДляОтчетов + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 22 + + + + + + 33 + + 6 + + + 22 + + + + + 23 + + + ru + Дополнительные реквизиты + + + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 50 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 35 + + + + + 7 + + + ru + Вес: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + Вес + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 22 + + + + + + 34 + + 6 + + + 22 + Все + + + + + 16 + ДополнительныеРеквизитыРеквизит + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + ДополнительныеРеквизиты + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 50 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 35 + + + + + 7 + + + ru + Объем: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + Объем + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 22 + + + + + + 35 + + 6 + + + 22 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 51 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + ru + Длина: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + Длина + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 22 + + + + + + 36 + + 6 + + + 22 + + + + + 23 + + + ru + Сведения о производителе + + + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 50 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 7 + + + ru + Площадь: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + Площадь + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 22 + + + + + + 37 + + 6 + + + 32 + + + + + 32 + + + ru + Производитель, импортер (контрагент): + + + Расшифровка + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 34 + ПроизводительИмпортерКонтрагент + Расшифровка + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 7 + + + + + 7 + + + ru + Складская группа: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + СкладскаяГруппа + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 22 + + + + + + 38 + + 6 + + + 32 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 46 + + + + + 47 + + + ru + Размещение номенклатуры по ячейкам (справочно) + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 35 + + + + + + 39 + + 6 + + + 22 + + + + + 7 + + + ru + Производитель (бренд): + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + Производитель + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 50 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 7 + + + ru + Срок годности: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + СрокГодности + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 22 + + + + + + 40 + + 6 + + + 22 + + + + + 7 + + + ru + Марка (бренд): + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + Марка + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 50 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 22 + + + + + + 41 + + 6 + + + 53 + + + + + 54 + + + ru + Страна происхождения: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 55 + СтранаПроисхождения + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 38 + + + ru + Финансовый учет + + + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 22 + + + + + + 42 + + 6 + + + 53 + + + + + 56 + РеализацияУслугиПоАгентскомуДоговору + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + + 7 + + + ru + Группа аналитического учета: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + ГруппаАналитическогоУчета + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 35 + + + + + + 43 + + 6 + + + 53 + + + + + 54 + + + ru + Принципал: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 55 + Принципал + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 35 + + + + + + 44 + + 6 + + + 53 + + + + + 54 + + + ru + Контрагент: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 55 + Контрагент + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 7 + + + + + 7 + + + ru + Группа финансового учета: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + ГруппаФинансовогоУчета + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 35 + + + + + + 45 + + 6 + + + 53 + + + + + 57 + ГиперссылкаПерейтиСоглашения + Расшифровка + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 7 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 35 + + + + + + 46 + + 6 + + + 22 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + + 7 + + + + + 7 + + + + + 51 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + + 47 + + + ru + Распределение продаж по направлениям деятельности + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 35 + + + + + + 47 + + 6 + + + 22 + + + + + 23 + + + ru + Планирование и маркетинг + + + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 50 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 58 + + + ru + Локализация + + + + + + + + 48 + + 6 + + + 22 + + + + + 7 + + + ru + Товарная категория: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + ТоварнаяКатегория + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 50 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + + 49 + + 6 + + + 22 + + + + + + 7 + + + ru + Коллекция (сезон): + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + КоллекцияНоменклатуры + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 50 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + + 50 + + 6 + + + 22 + + + + + 7 + + + ru + Сезонная группа: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + СезоннаяГруппа + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 50 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + + 51 + + 6 + + + 22 + + + + + 7 + + + ru + Рейтинг продаж: + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 16 + РейтингПродаж + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 50 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + + 52 + + 6 + + + 22 + + + + + 59 + + + ru + Совместные продажи + + + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 50 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + + 53 + + 6 + + + 22 + + + + + 30 + ГиперссылкаПерейтиСегменты + Расшифровка + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 50 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + + 54 + + 6 + + + 22 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 51 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + + 55 + + 6 + + + 22 + + + + + 60 + ОбеспечениеПроизводство + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 61 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + + 56 + + 6 + + + 26 + + + + + 32 + + + ru + Обособленная закупка/продажа: + + + Расшифровка + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 62 + Картинка + Расшифровка + + + + + 32 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + + 57 + + 6 + + + 26 + + + + + 32 + + + ru + Способ обеспечения потребностей: + + + Расшифровка + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 34 + СпособОбеспеченияПотребностей + Расшифровка + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + + 58 + + 6 + + + 26 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + + 59 + + 6 + + + 26 + + + + + 32 + + + ru + Схема обеспечения: + + + Расшифровка + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 34 + СхемаОбеспечения + Расшифровка + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + + 60 + + 6 + + + 26 + + + + + 63 + ГиперссылкаПерейтиВариантыКомплектации + Расшифровка + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + + 61 + + 6 + + + 26 + + + + + 64 + + + ru + Настройка поддержания запасов + + + Расшифровка + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + + 62 + + 6 + + + 26 + + + + + 64 + + + ru + Настройка способов обеспечения потребностей + + + Расшифровка + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 61 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + + 63 + + 6 + + + 65 + + + + + 66 + + + ru + Настройка передачи материалов в производство + + + Расшифровка + + + + + 67 + + + + + 67 + + + + + 67 + + + + + 67 + + + + + 67 + + + + + 67 + + + + + 67 + + + + + 67 + + + + + 67 + + + + + 67 + + + + + 67 + + + + + 67 + + + + + 67 + + + + + 67 + + + + + 67 + + + + + 67 + + + + + 67 + + + + + 67 + + + + + 67 + + + + + + 64 + + 6 + + + 26 + + + + + 64 + + + ru + Производство + + + Расшифровка + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 61 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + + 65 + + 6 + + + 26 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 68 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + + 66 + + 6 + + + 26 + + + + + 23 + + + ru + Контроль качества + + + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 50 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + + 67 + + 6 + + + 26 + + + + + 32 + + + ru + Контролировать качество поступившего товара: + + + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 69 + Картинка + Расшифровка + + + + + 32 + + + + + 32 + + + + + 32 + + + + + + 68 + + 6 + + + 26 + + + + + 32 + + + ru + Срок контроля качества: + + + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 70 + СрокКонтроляКачества + Расшифровка + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 48 + + + ru + дн. + + + + + + + 33 + + + + + 33 + + + + + + 69 + + 6 + + + 26 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 68 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + + 70 + + 6 + + + 22 + + + + + 23 + + + ru + Цены + + + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 61 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + + 71 + + 6 + + + 26 + + + + + 32 + + + ru + Ценовая группа: + + + Расшифровка + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 34 + ЦеноваяГруппа + Расшифровка + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 61 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + + 72 + + + + 26 + + + + + 71 + + + ru + Прайс-лист компании + + + Расшифровка + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 61 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + + 73 + + + + 26 + + + + + 72 + + + ru + Прайс-листы поставщиков + + + Расшифровка + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 61 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + + 74 + + + + 26 + + + + + 73 + + + ru + История изменения цен компании + + + Расшифровка + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + + 75 + + + + 26 + + + + + 73 + + + ru + История изменения цен поставщиков + + + Расшифровка + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + 33 + + + + + + 76 + + + + 26 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 68 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + 32 + + + + + + 77 + + + + 22 + + + + + 23 + + + ru + Печать этикеток и ценников + + + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 61 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + 24 + + + + + + 78 + + + + 26 + + + + + 34 + ИспользоватьИндивидуальныйШаблонЭтикетки + Расшифровка + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 61 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + + 79 + + + + 26 + + + + + 32 + + + + + 34 + ШаблонЭтикетки + Расшифровка + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 61 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + + 80 + + + + 26 + + + + + 34 + ИспользоватьИндивидуальныйШаблонЦенника + Расшифровка + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 61 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + + 81 + + + + 26 + + + + + 32 + + + + + 34 + ШаблонЦенника + Расшифровка + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 61 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + 52 + + + + + + 82 + 105 + + true + + + + 106 + + + + 1 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + + 107 + + + + 1 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + + 108 + + + + 1 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + + 109 + + + + 1 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + + 110 + + + + 1 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + + 111 + + + + 1 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + + 112 + + + + 1 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + + 113 + + true + + + + 114 + + + + 1 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + + 115 + + + + 1 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + + 116 + 136 + + true + + + true + 74 + 106 + 106 + + 1 + 1 + 9 + + + 1 + 11 + 30 + + + 2 + 1 + 9 + + + 2 + 11 + 30 + + + 3 + 1 + 9 + + + 3 + 11 + 10 + + + 3 + 22 + 19 + + + 4 + 1 + 9 + + + 4 + 11 + 10 + + + 4 + 22 + 10 + + + 6 + 1 + 40 + + + 8 + 1 + 19 + + + 8 + 22 + 19 + + + 9 + 22 + 7 + + + 9 + 30 + 11 + + + 10 + 1 + 12 + 19 + + + 10 + 22 + 7 + + + 10 + 30 + 11 + + + 11 + 22 + 7 + + + 11 + 30 + 11 + + + 12 + 22 + 7 + + + 12 + 30 + 11 + + + 13 + 30 + 6 + + + 14 + 22 + 7 + + + 14 + 30 + 11 + + + 15 + 30 + 11 + + + 16 + 22 + 7 + + + 16 + 30 + 11 + + + 17 + 22 + 1 + 7 + + + 17 + 30 + 1 + 11 + + + 19 + 22 + 7 + + + 19 + 30 + 11 + + + 20 + 22 + 19 + + + 21 + 22 + 7 + + + 21 + 30 + 11 + + + 22 + 22 + 7 + + + 22 + 30 + 11 + + + 23 + 22 + 19 + + + 24 + 1 + 7 + + + 24 + 9 + 11 + + + 25 + 1 + 7 + + + 25 + 9 + 11 + + + 25 + 22 + 19 + + + 26 + 1 + 7 + + + 26 + 9 + 11 + + + 26 + 22 + 7 + + + 26 + 30 + 11 + + + 27 + 1 + 1 + 7 + + + 27 + 9 + 1 + 11 + + + 27 + 30 + 3 + + + 28 + 30 + 3 + + + 29 + 1 + 19 + + + 29 + 22 + 19 + + + 30 + 1 + 1 + 7 + + + 30 + 22 + 7 + + + 30 + 30 + 11 + + + 31 + 9 + 3 + + + 31 + 22 + 7 + + + 31 + 30 + 11 + + + 32 + 22 + 7 + + + 32 + 30 + 11 + + + 33 + 1 + 19 + + + 33 + 22 + 7 + + + 33 + 30 + 11 + + + 34 + 1 + 7 + + + 34 + 9 + 11 + + + 34 + 22 + 7 + + + 34 + 30 + 11 + + + 35 + 22 + 7 + + + 35 + 30 + 11 + + + 36 + 1 + 19 + + + 36 + 22 + 7 + + + 36 + 30 + 11 + + + 37 + 1 + 1 + 7 + + + 37 + 9 + 1 + 11 + + + 37 + 22 + 7 + + + 37 + 30 + 11 + + + 38 + 22 + 19 + + + 39 + 1 + 7 + + + 39 + 9 + 11 + + + 39 + 22 + 7 + + + 39 + 30 + 11 + + + 40 + 1 + 7 + + + 40 + 9 + 11 + + + 41 + 1 + 7 + + + 41 + 9 + 11 + + + 41 + 22 + 19 + + + 42 + 1 + 19 + + + 42 + 22 + 1 + 7 + + + 42 + 30 + 1 + 11 + + + 43 + 1 + 7 + + + 43 + 9 + 11 + + + 44 + 1 + 7 + + + 44 + 9 + 11 + + + 44 + 22 + 1 + 7 + + + 44 + 30 + 1 + 11 + + + 45 + 1 + 19 + + + 46 + 22 + 19 + + + 47 + 1 + 19 + + + 47 + 21 + 34 + 21 + + + 48 + 1 + 7 + + + 48 + 9 + 11 + + + 49 + 1 + 7 + + + 49 + 9 + 11 + + + 50 + 1 + 7 + + + 50 + 9 + 11 + + + 51 + 1 + 7 + + + 51 + 9 + 11 + + + 52 + 1 + 19 + + + 53 + 1 + 19 + + + 55 + 1 + 19 + + + 56 + 1 + 10 + + + 56 + 13 + 7 + + + 57 + 1 + 1 + 7 + + + 57 + 9 + 1 + 11 + + + 59 + 1 + 7 + + + 59 + 9 + 11 + + + 60 + 1 + 19 + + + 61 + 1 + 19 + + + 62 + 1 + 19 + + + 63 + 1 + 19 + + + 64 + 1 + 19 + + + 66 + 1 + 19 + + + 67 + 1 + 15 + + + 68 + 1 + 8 + + + 68 + 10 + 7 + + + 68 + 18 + 2 + + + 70 + 1 + 19 + + + 71 + 1 + 7 + + + 71 + 9 + 11 + + + 72 + 1 + 19 + + + 73 + 1 + 19 + + + 74 + 1 + 19 + + + 75 + 1 + 19 + + + 77 + 1 + 19 + + + 78 + 1 + 19 + + + 79 + 2 + 18 + + + 80 + 1 + 19 + + + 81 + 2 + 18 + + + 37 + 1 + 7 + + + 37 + 9 + 11 + + + 38 + 1 + 7 + + + 38 + 9 + 11 + + + АдресКартинки + + Rectangle + 10 + 22 + 1 + 20 + + + + ВариантОформленияПродажиСтрока + + Rectangle + 17 + 18 + 21 + 42 + + + + ВесСтрока + + Rectangle + 33 + 33 + 21 + 42 + + + + ВестиУчетСертификатовНоменклатурыСтрока + + Rectangle + 30 + 31 + 0 + 20 + + + + ВестиУчетСертификатовНоменклатурыФлаг + + Rectangle + 30 + 30 + 9 + 9 + + + + ВидНоменклатурыСтрока + + Rectangle + 11 + 11 + 21 + 42 + + + + ГиперссылкаПерейтиВариантыКомплектацииСтрока + + Rectangle + 60 + 60 + 0 + 20 + + + + ГиперссылкаПерейтиНастройкаПередачиМатериаловВПроизводствоСтрока + + Rectangle + 63 + 63 + 0 + 20 + + + + ГиперссылкаПерейтиНастройкаПоддержанияЗапасовСтрока + + Rectangle + 61 + 61 + 0 + 20 + + + + ГиперссылкаПерейтиНастройкаСпособовОбеспеченияПотребностейСтрока + + Rectangle + 62 + 62 + 0 + 20 + + + + ГиперссылкаПерейтиПрогнозыРасходаУпаковокСтрока + + Rectangle + 29 + 29 + 21 + 42 + + + + ГиперссылкаПерейтиПроизводствоСтрока + + Rectangle + 64 + 64 + 0 + 20 + + + + ГиперссылкаПерейтиРазмещениеНоменклатурыСтрока + + Rectangle + 38 + 38 + 21 + 42 + + + + ГиперссылкаПерейтиРаспределениеПродажПоНаправлениямДеятельностиСтрока + + Rectangle + 46 + 46 + 21 + 42 + + + + ГиперссылкаПерейтиСегментыСтрока + + Rectangle + 53 + 53 + 0 + 20 + + + + ГиперссылкаПерейтиСертификатыНоменклатурыВнимание + + Rectangle + 31 + 31 + 13 + 13 + + + + ГиперссылкаПерейтиСовместныеПродажиСтрока + + Rectangle + 52 + 52 + 0 + 20 + + + + ГиперссылкаПерейтиСоглашенияСтрока + + Rectangle + 45 + 45 + 0 + 20 + + + + ГиперссылкаПерейтиСоставНабораВнимание + + Rectangle + 13 + 13 + 37 + 37 + + + + ГиперссылкаПерейтиСоставНабораСтрока + + Rectangle + 13 + 13 + 21 + 42 + + + + ГиперссылкаПерейтиСтавкиНДСНоменклатурыСтрока + + Rectangle + 20 + 20 + 21 + 42 + + + + ГиперссылкаПерейтиТоварыДругогоКачестваСтрока + + Rectangle + 23 + 23 + 21 + 42 + + + + ГиперссылкаПерейтиУпаковкиНабораВнимание + + Rectangle + 28 + 28 + 34 + 34 + + + + ГиперссылкаПерейтиУпаковкиНабораСтрока + + Rectangle + 28 + 28 + 21 + 42 + + + + ГиперссылкаПерейтиУпаковкиНоменклатурыВнимание + + Rectangle + 27 + 27 + 34 + 34 + + + + ГиперссылкаПерейтиУпаковкиНоменклатурыСтрока + + Rectangle + 27 + 27 + 21 + 42 + + + + ГиперссылкаПерейтиХарактеристикиНоменклатурыСтрока + + Rectangle + 15 + 15 + 21 + 42 + + + + ГруппаАналитическогоУчетаСтрока + + Rectangle + 42 + 43 + 21 + 42 + + + + ГруппаДоступаСтрока + + Rectangle + 10 + 10 + 21 + 42 + + + + ГруппаФинансовогоУчетаСтрока + + Rectangle + 44 + 45 + 21 + 42 + + + + ДлинаСтрока + + Rectangle + 35 + 35 + 21 + 42 + + + + ДополнительныеРеквизитыЗаголовок + + Rectangle + 32 + 33 + 0 + 20 + + + + ДополнительныеРеквизитыСтрока + + Rectangle + 34 + 34 + 0 + 20 + + + + ДопСтрокаЛево + + Rectangle + 7 + 7 + 0 + 20 + + + + ДопСтрокаПраво + + Rectangle + 7 + 7 + 21 + 42 + + + + ЕдиницаДляОтчетовСтрока + + Rectangle + 32 + 32 + 21 + 42 + + + + ЕдиницаИзмеренияСтрока + + Rectangle + 30 + 30 + 21 + 42 + + + + ЕдиницыИзмеренияИОбластьХраненияЗаголовок + + Rectangle + 24 + 25 + 21 + 42 + + + + ИспользованиеХарактеристикСтрока + + Rectangle + 14 + 14 + 21 + 42 + + + + ИспользоватьИндивидуальныйШаблонЦенникаСтрока + + Rectangle + 80 + 80 + 0 + 20 + + + + ИспользоватьИндивидуальныйШаблонЭтикеткиСтрока + + Rectangle + 78 + 78 + 0 + 20 + + + + ИспользоватьУпаковкиСтрока + + Rectangle + 26 + 26 + 21 + 42 + + + + ИсторияИзмененияЦенКомпанииСтрока + + Rectangle + 74 + 74 + 0 + 20 + + + + ИсторияИзмененияЦенПоставщиковСтрока + + Rectangle + 75 + 75 + 0 + 20 + + + + КачествоСтрока + + Rectangle + 22 + 22 + 21 + 42 + + + + КодТНВЭДСтрока + + Rectangle + 21 + 21 + 21 + 42 + + + + КоллекцияНоменклатурыСтрока + + Rectangle + 49 + 49 + 0 + 20 + + + + КонтрагентСтрока + + Rectangle + 44 + 44 + 0 + 20 + + + + КонтролироватьКачествоПоступившегоТовараСтрока + + Rectangle + 67 + 67 + 1 + 20 + + + + КонтролироватьКачествоПоступившегоТовараФлаг + + Rectangle + 67 + 67 + 17 + 17 + + + + КонтрольКачестваЗаголовок + + Rectangle + 65 + 66 + 1 + 20 + + + + МаркаСтрока + + Rectangle + 40 + 40 + 0 + 20 + + + + НастройкаИспользованияСерийСтрока + + Rectangle + 16 + 16 + 21 + 42 + + + + НоменклатураМногооборотнаяТараСтрока + + Rectangle + 31 + 31 + 21 + 42 + + + + ОбеспечениеИПроизводствоЗаголовок + + Rectangle + 54 + 55 + 0 + 20 + + + + ОбособленнаяЗакупкаПродажаСтрока + + Rectangle + 56 + 56 + 0 + 20 + + + + ОбособленнаяЗакупкаПродажаФлаг + + Rectangle + 56 + 56 + 12 + 12 + + + + ОбъемСтрока + + Rectangle + 34 + 34 + 21 + 42 + + + + ОписаниеЗаголовок + + Rectangle + 8 + 8 + 0 + 20 + + + + ОписаниеКартинка + + Rectangle + 9 + 23 + 0 + 20 + + + + ОписаниеСтрока + + Rectangle + 26 + 26 + 0 + 20 + + + + ОсновныеПараметрыУчетаЗаголовок + + Rectangle + 8 + 8 + 21 + 42 + + + + ПечатьЭтикетокИЦенниковЗаголовок + + Rectangle + 76 + 77 + 0 + 20 + + + + ПланированиеИМаркетингЗаголовок + + Rectangle + 46 + 47 + 0 + 20 + + + + ПлощадьСтрока + + Rectangle + 36 + 36 + 21 + 42 + + + + ПрайсЛистКомпанииСтрока + + Rectangle + 72 + 72 + 0 + 20 + + + + ПрайсЛистыПоставщиковСтрока + + Rectangle + 73 + 73 + 0 + 20 + + + + ПринципалСтрока + + Rectangle + 43 + 43 + 0 + 20 + + + + ПроизводительИмпортерКонтрагентСтрока + + Rectangle + 37 + 38 + 0 + 20 + + + + ПроизводительСтрока + + Rectangle + 39 + 39 + 0 + 20 + + + + РеализацияУслугиПоАгентскомуДоговору + + Rectangle + 42 + 42 + 0 + 20 + + + + РейтингПродажСтрока + + Rectangle + 51 + 51 + 0 + 20 + + + + РодительСтрока + + Rectangle + 9 + 9 + 21 + 42 + + + + СведенияОПроизводителеЗаголовок + + Rectangle + 35 + 36 + 0 + 20 + + + + СезоннаяГруппаСтрока + + Rectangle + 50 + 50 + 0 + 20 + + + + СкладскаяГруппаСтрока + + Rectangle + 37 + 37 + 21 + 42 + + + + СпособОбеспеченияПотребностейСтрока + + Rectangle + 57 + 58 + 0 + 20 + + + + СрокГодностиСтрока + + Rectangle + 39 + 39 + 21 + 42 + + + + СрокКонтроляКачестваСтрока + + Rectangle + 68 + 68 + 1 + 20 + + + + СтавкаНДССтрока + + Rectangle + 19 + 19 + 21 + 42 + + + + СтранаПроисхожденияСтрока + + Rectangle + 41 + 41 + 0 + 20 + + + + СхемаОбеспеченияСтрока + + Rectangle + 59 + 59 + 0 + 20 + + + + ТипНоменклатурыСтрока + + Rectangle + 12 + 12 + 21 + 42 + + + + ТоварнаяКатегорияСтрока + + Rectangle + 48 + 48 + 0 + 20 + + + + ФайлКартинкиСтрока + + Rectangle + 25 + 25 + 0 + 20 + + + + ФайлКартинкиСтрокаОшибка + + Rectangle + 24 + 24 + 0 + 20 + + + + ФайлОписанияДляСайтаСтрока + + Rectangle + 27 + 28 + 0 + 20 + + + + ФайлыСтрока + + Rectangle + 29 + 29 + 0 + 20 + + + + ФинансовыйУчетЗаголовок + + Rectangle + 40 + 41 + 21 + 42 + + + + ЦеноваяГруппаСтрока + + Rectangle + 71 + 71 + 0 + 20 + + + + ЦеныЗаголовок + + Rectangle + 69 + 70 + 0 + 20 + + + + ШаблонЦенникаСтрока + + Rectangle + 81 + 81 + 0 + 20 + + + + ШаблонЭтикеткиСтрока + + Rectangle + 79 + 79 + 0 + 20 + + + + Шапка + + Rectangle + 0 + 5 + 0 + 42 + + + + None + + + + + 8 + + + 19 + + + 21 + + + 0 + + + 0 + 21 + 24 + + + 48 + + + 0 + 44 + 24 + Left + Top + Wrap + + + 1 + 44 + 24 + Left + Top + Cut + Parameter + + + 44 + 24 + Cut + + + 0 + 44 + 24 + Left + Top + Cut + Parameter + + + 0 + 0 + 24 + Left + Top + Wrap + + + 0 + 0 + 24 + Left + Top + Wrap + Parameter + + + 0 + 19 + + + 0 + 0 + 24 + Left + Top + style:ГиперссылкаЦвет + Wrap + Parameter + true + + + Parameter + + + 0 + 44 + 24 + Left + Top + Wrap + Parameter + + + 44 + 19 + + + 0 + 44 + 24 + Left + Top + style:ГиперссылкаЦвет + Wrap + Parameter + true + + + 0 + 44 + 24 + Left + Top + style:SpecialTextColor + Wrap + + + 45 + 19 + + + 0 + 45 + 24 + Left + Top + Wrap + + + 0 + 44 + 8 + + + 0 + 44 + 72 + Left + Top + #DCDCDC + Wrap + + + 44 + 24 + + + 0 + 44 + 24 + Left + Top + #DCDCDC + Wrap + + + 0 + 48 + 8 + + + 0 + 44 + 24 + Left + Top + Wrap + Text + Proportionally + Center + Top + + + Cut + Parameter + true + + + 0 + 44 + 24 + Left + Top + style:ГиперссылкаЦвет + Wrap + Text + true + + + 0 + 44 + 24 + Left + Top + style:ГиперссылкаЦвет + Wrap + Parameter + true + + + 44 + 24 + Parameter + + + 0 + 48 + 24 + Left + Top + Wrap + + + 48 + 19 + + + 0 + 48 + 24 + Left + Top + Wrap + Parameter + + + 48 + 8 + + + 0 + 48 + 19 + style:SpecialTextColor + + + 0 + 48 + 19 + + + 0 + 44 + 24 + Left + Top + #DCDCDC + Wrap + + + 48 + 19 + Cut + Parameter + true + + + 0 + 44 + 24 + Left + Top + Wrap + Text + true + + + 0 + 60 + 22 + Left + Top + Wrap + 1 + + + 0 + 44 + 24 + Left + Top + style:ГиперссылкаЦвет + Wrap + + + 0 + 48 + 24 + Left + Top + style:ГиперссылкаЦвет + Wrap + Parameter + true + + + 48 + 19 + Cut + Parameter + true + true + Bottom + + + 0 + 48 + 19 + Left + Top + Wrap + Text + true + + + 0 + 48 + 19 + Left + Top + Wrap + + + 0 + 44 + 24 + Left + Top + style:ГиперссылкаЦвет + Wrap + Text + true + + + 0 + 44 + 24 + Left + Top + Wrap + Text + + + 0 + 44 + 24 + Left + Top + style:ГиперссылкаЦвет + Wrap + + + 44 + 12 + + + 0 + 44 + 12 + Left + Top + Wrap + + + 48 + 24 + + + 44 + 8 + + + 0 + 44 + 24 + Wrap + + + 0 + 44 + 24 + Wrap + Parameter + + + 44 + 24 + #DCDCDC + Parameter + + + 0 + 44 + 24 + style:ГиперссылкаЦвет + Wrap + Parameter + true + + + 0 + 44 + 24 + Center + Center + #DCDCDC + Pattern14 + Wrap + + + 0 + 44 + 24 + Left + Top + style:ГиперссылкаЦвет + Wrap + true + + + 0 + 44 + 72 + Left + Top + #DCDCDC + Wrap + Parameter + + + 48 + 12 + + + 0 + 0 + 48 + 24 + Left + Center + Cut + Parameter + Center + + + 0 + 48 + 24 + Left + Top + style:ГиперссылкаЦвет + Wrap + Parameter + true + + + 0 + 48 + 24 + Left + Top + style:ГиперссылкаЦвет + Wrap + true + + + -48 + 8 + + + 0 + -48 + 19 + style:ГиперссылкаЦвет + Wrap + true + + + -48 + 19 + + + 0 + 48 + 12 + Left + Top + Wrap + + + 0 + 0 + 48 + 24 + Left + Center + Cut + Parameter + Center + + + 0 + 44 + 24 + Right + Top + Wrap + Parameter + + + 0 + 44 + 22 + Left + Top + style:ГиперссылкаЦвет + Wrap + true + + + 0 + 44 + 22 + Left + Top + #1C55AE + Wrap + true + + + 0 + 48 + 24 + Left + Top + #1C55AE + Wrap + true + + + 72 + + + 0 + + + \ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Templates/ПФ_MXL_КарточкаНоменклатурыЛокализация.xml b/src/Catalogs/Номенклатура/Templates/ПФ_MXL_КарточкаНоменклатурыЛокализация.xml new file mode 100644 index 0000000..3d9e07d --- /dev/null +++ b/src/Catalogs/Номенклатура/Templates/ПФ_MXL_КарточкаНоменклатурыЛокализация.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/src/Catalogs/Номенклатура/Templates/ПФ_MXL_КарточкаНоменклатурыЛокализация/Ext/Template.xml b/src/Catalogs/Номенклатура/Templates/ПФ_MXL_КарточкаНоменклатурыЛокализация/Ext/Template.xml new file mode 100644 index 0000000..cc0cdf0 --- /dev/null +++ b/src/Catalogs/Номенклатура/Templates/ПФ_MXL_КарточкаНоменклатурыЛокализация/Ext/Template.xml @@ -0,0 +1,11260 @@ + + + + ru + ru + + ru + Русский + Русский + + + + 43 + + 0 + + 1 + + + + 1 + + 2 + + + + 2 + + 2 + + + + 3 + + 2 + + + + 4 + + 2 + + + + 5 + + 2 + + + + 6 + + 2 + + + + 7 + + 2 + + + + 8 + + 2 + + + + 9 + + 2 + + + + 10 + + 2 + + + + 11 + + 2 + + + + 12 + + 2 + + + + 13 + + 2 + + + + 14 + + 2 + + + + 15 + + 2 + + + + 16 + + 2 + + + + 17 + + 2 + + + + 18 + + 2 + + + + 19 + + 2 + + + + 20 + + 2 + + + + 21 + + 2 + + + + 22 + + 2 + + + + 23 + + 2 + + + + 24 + + 2 + + + + 25 + + 2 + + + + 26 + + 2 + + + + 27 + + 2 + + + + 28 + + 2 + + + + 29 + + 2 + + + + 30 + + 2 + + + + 31 + + 2 + + + + 32 + + 2 + + + + 33 + + 2 + + + + 34 + + 2 + + + + 35 + + 2 + + + + 36 + + 2 + + + + 37 + + 2 + + + + 38 + + 2 + + + + 39 + + 2 + + + + 40 + + 2 + + + + 41 + + 2 + + + + 42 + + 1 + + + + + 0 + + 3 + + + 4 + + + ru + Международная версия + + + + + + + + 1 + + 5 + true + + + + 2 + + true + + + + 3 + + 5 + true + + + + 4 + + true + + + + 5 + + 5 + true + + + + 6 + + true + + + + 7 + + 5 + true + + + + 8 + + true + + + + 9 + + 5 + true + + + + 10 + + true + + + + 11 + + 5 + true + + + + 12 + + true + + + + 13 + + 5 + true + + + + 14 + + true + + + + 15 + + 5 + true + + + + 16 + + true + + + + 17 + + 5 + true + + + + 18 + + true + + + + 19 + + 5 + true + + + + 20 + + true + + + + 21 + + 5 + true + + + + 22 + + true + + + + 23 + + 5 + true + + + + 24 + + true + + + + 25 + + 5 + true + + + + 26 + + true + + + + 27 + + 5 + true + + + + 28 + + true + + + + 29 + + 5 + true + + + + 30 + + true + + + + 31 + + 5 + true + + + + 32 + + true + + + + 33 + + 5 + true + + + + 34 + + true + + + + 35 + + 5 + true + + + + 36 + + true + + + + 37 + + 5 + true + + + + 38 + + true + + + + 39 + + 5 + true + + + + 40 + + true + + + + 41 + + 5 + true + + + + 42 + + true + + + + 43 + + 5 + true + + + + 44 + + true + + + + 45 + + 5 + true + + + + 46 + + true + + + + 47 + + 5 + + + 6 + + + ru + Международная версия + + + + + + + 7 + + + + + 7 + + + + + + 7 + + + + + + 7 + + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 9 + + + + + + 48 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + 12 + + + + + + 49 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 11 + + + + + 13 + + + ru + Регламентированный учет + + + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 12 + + + + + + 50 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 11 + + + + + + 15 + ВестиУчетПоГТДРеквизит + Расшифровка + + + + + 16 + ВестиУчетПоГТДРеквизит + + + + + 16 + ВестиУчетПоГТДРеквизит + + + + + 16 + ВестиУчетПоГТДРеквизит + + + + + 16 + ВестиУчетПоГТДРеквизит + + + + + 16 + ВестиУчетПоГТДРеквизит + + + + + 16 + ВестиУчетПоГТДРеквизит + + + + + 16 + ВестиУчетПоГТДРеквизит + + + + + 17 + ВестиУчетПоГТД + Расшифровка + + + + + 18 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 20 + + + + + + 51 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 21 + + + + + 16 + ВестиУчетПоГТДРеквизит + + + + + 16 + ВестиУчетПоГТДРеквизит + + + + + 16 + ВестиУчетПоГТДРеквизит + + + + + 16 + ВестиУчетПоГТДРеквизит + + + + + 16 + ВестиУчетПоГТДРеквизит + + + + + 16 + ВестиУчетПоГТДРеквизит + + + + + 16 + ВестиУчетПоГТДРеквизит + + + + + 16 + ВестиУчетПоГТДРеквизит + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 20 + + + + + + 52 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 11 + + + + + + 15 + ПрослеживаемыйТоварРеквизит + Расшифровка + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 17 + ПрослеживаемыйТовар + Расшифровка + + + + + 18 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 20 + + + + + + 53 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 11 + + + + + + 15 + ПереноситьРНПТМатериалаРеквизит + Расшифровка + + + + 30 + + 17 + ПереноситьРНПТМатериала + Расшифровка + + + + + 18 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 19 + + + + + 20 + + + + + + 54 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 11 + + + + 30 + + 22 + + + + + 11 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 24 + + + + + + 55 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 11 + + + + 30 + + 22 + + + + + 11 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 24 + + + + + + 56 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 11 + + + + 30 + + 22 + + + + + 11 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 24 + + + + + + 57 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 11 + + + + 30 + + 22 + + + + + 11 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 23 + + + + + 24 + + + + + + 58 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 11 + + + + + 11 + + + ru + Продается по разрешению: + + + + + + 30 + + 25 + ПродаетсяПоРазрешению + Расшифровка + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 12 + + + + + + 59 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 11 + + + + 30 + + 22 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 12 + + + + + + 60 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 11 + + + + + 11 + + + ru + Облагается НДС у покупателя товара: + + + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 25 + ОблагаетсяНДСУПокупателя + Расшифровка + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 12 + + + + + + 61 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 11 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 11 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 12 + + + + + + 62 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 21 + + + + + 11 + + + ru + Операция декларации по НДС: + + + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 15 + КодРаздел7ДекларацииНДС + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 20 + + + + + + 63 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 20 + + + + + + 64 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 26 + + + + + 11 + + + ru + Операции НДС 0%: + + + Расшифровка + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 15 + Операции0 + + + + + + 65 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 11 + + + + + 27 + ГиперссылкаПерейтиДрагоценныеМатериалы + Расшифровка + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 20 + + + + + + 66 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 20 + + + + + + 67 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 26 + + + + + 13 + + + ru + Сведения об алкогольной продукции + + + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 20 + + + + + + 68 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 26 + + + + + 26 + + + ru + Вид алкогольной продукции: + + + Расшифровка + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 29 + ВидАлкогольнойПродукции + Расшифровка + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 20 + + + + + + 69 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 26 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 20 + + + + + + 70 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 26 + + + + + 26 + + + ru + Происхождение: + + + Расшифровка + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 29 + ИмпортнаяАлкогольнаяПродукция + Расшифровка + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 20 + + + + + + 71 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 26 + + + + + 26 + + + ru + Алкогольная продукция во вскрытой таре: + + + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 25 + АлкогольнаяПродукцияВоВскрытойТаре + Расшифровка + + + + + 11 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 20 + + + + + + 72 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 26 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 20 + + + + + + 73 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 26 + + + + + 26 + + + ru + Объем: + + + Расшифровка + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 29 + ОбъемДАЛ + Расшифровка + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 20 + + + + + + 74 + + 5 + + + 10 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 7 + + + + + 26 + + + + + 26 + + + ru + Крепость: + + + Расшифровка + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 29 + Крепость + Расшифровка + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 20 + + + + + + 75 + + + + 30 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 26 + + + + + 20 + + + + + + 76 + + + + 30 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 26 + + + + + 13 + + + ru + Сведения о контрольном (идентификационном) знаке + + + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 20 + + + + + + 77 + + + + 30 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 26 + + + + + 26 + + + ru + Вид: + + + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 29 + КиЗГИСМВид + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 20 + + + + + + 78 + + + + 30 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 26 + + + + + 26 + + + ru + Способ выпуска в оборот: + + + Расшифровка + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 29 + КиЗГИСМСпособВыпускаВОборот + Расшифровка + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 20 + + + + + + 79 + + + + 30 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 26 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 20 + + + + + + 80 + + + + 30 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 26 + + + + + 26 + + + ru + Размер: + + + Расшифровка + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 29 + КиЗГИСМРазмер + Расшифровка + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 28 + + + + + 20 + + + + + + 81 + + + + 30 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 26 + + + + + + 26 + + + ru + GTIN, записываемый эмитентом: + + + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 29 + КиЗГИСМGTIN + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 1 + + + + + + 82 + + + + 30 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 26 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 1 + + + + + + 83 + + + + 30 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 1 + + + + + + 84 + + + + 30 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 26 + + + + + 13 + + + ru + Общероссийские классификаторы + + + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 14 + + + + + 1 + + + + + + 85 + + + + 30 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 26 + + + + + 26 + + + ru + Код ОКВЭД: + + + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 29 + КодОКВЭД + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 1 + + + + + + 86 + + + + 30 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 26 + + + + + 26 + + + ru + Код ОКВЭД 2: + + + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 29 + КодОКВЭД2 + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 9 + + + + + + 87 + + + + 30 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 26 + + + + + 26 + + + ru + Код ОКП: + + + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 29 + КодОКП + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 1 + + + + + + 88 + + + + 30 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 26 + + + + + 26 + + + ru + Код ОКПД2: + + + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 29 + КодОКПД2 + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 9 + + + + + + 89 + + + + 30 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 2 + + + + + 26 + + + ru + Код по КВПД: + + + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 29 + КодПоКВПД + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 1 + + + + + + 90 + + + + 30 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 2 + + + + + 26 + + + ru + Код вида номенклатуры: + + + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 29 + КодВидаНоменклатурнойКлассификации + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 1 + + + + + + 91 + + + + 30 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 31 + + + + + 26 + + + + + 26 + + + ru + Код ТРУ: + + + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 29 + КодТРУ + Расшифровка + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 21 + + + + + 9 + + + + + + 92 + 118 + + true + + + true + 32 + 109 + 109 + + 0 + 0 + 46 + 42 + + + 49 + 22 + 19 + + + 50 + 22 + 1 + 7 + + + 52 + 22 + 7 + + + 53 + 22 + 4 + 7 + + + 58 + 22 + 1 + 7 + + + 60 + 22 + 1 + 7 + + + 62 + 22 + 1 + 7 + + + 62 + 30 + 1 + 11 + + + 64 + 22 + 7 + + + 64 + 30 + 11 + + + 65 + 22 + 19 + + + 67 + 22 + 19 + + + 68 + 22 + 1 + 7 + + + 68 + 30 + 1 + 11 + + + 70 + 22 + 7 + + + 70 + 30 + 11 + + + 71 + 22 + 1 + 7 + + + 73 + 22 + 7 + + + 73 + 30 + 11 + + + 74 + 22 + 7 + + + 74 + 30 + 11 + + + 76 + 22 + 19 + + + 77 + 22 + 7 + + + 77 + 30 + 11 + + + 78 + 22 + 1 + 7 + + + 78 + 30 + 1 + 11 + + + 80 + 22 + 7 + + + 80 + 30 + 11 + + + 81 + 22 + 1 + 7 + + + 81 + 30 + 1 + 11 + + + 84 + 22 + 19 + + + 85 + 22 + 7 + + + 85 + 30 + 11 + + + 86 + 22 + 7 + + + 86 + 30 + 11 + + + 87 + 22 + 7 + + + 87 + 30 + 11 + + + 88 + 22 + 7 + + + 88 + 30 + 11 + + + 89 + 22 + 7 + + + 89 + 30 + 11 + + + 90 + 22 + 7 + + + 90 + 30 + 11 + + + 91 + 22 + 7 + + + 91 + 30 + 11 + + + 64 + 22 + 7 + + + АлкогольнаяПродукцияВоВскрытойТареСтрока + + Rectangle + 71 + 72 + 21 + 42 + + + + АлкогольнаяПродукцияВоВскрытойТареФлаг + + Rectangle + 71 + 71 + 30 + 30 + + + + ВестиУчетПоГТДСтрока + + Rectangle + 50 + 51 + 21 + 42 + + + + ВестиУчетПоГТДФлаг + + Rectangle + 50 + 50 + 30 + 30 + + + + ВидАлкогольнойПродукцииСтрока + + Rectangle + 68 + 69 + 21 + 42 + + + + ГиперссылкаПерейтиДрагоценныеМатериалыСтрока + + Rectangle + 65 + 65 + 21 + 42 + + + + ДопСтрокаПраво + + Rectangle + 47 + 47 + 21 + 42 + + + + ИмпортнаяАлкогольнаяПродукцияСтрока + + Rectangle + 70 + 70 + 21 + 42 + + + + КиЗГИСМGTINСтрока + + Rectangle + 81 + 82 + 21 + 42 + + + + КиЗГИСМВидСтрока + + Rectangle + 77 + 77 + 21 + 42 + + + + КиЗГИСМЗаголовок + + Rectangle + 75 + 76 + 21 + 42 + + + + КиЗГИСМРазмерСтрока + + Rectangle + 80 + 80 + 21 + 42 + + + + КиЗГИСМСпособВыпускаВОборотСтрока + + Rectangle + 78 + 79 + 21 + 42 + + + + КодВидаНоменклатурнойКлассификацииСтрока + + Rectangle + 90 + 90 + 21 + 42 + + + + КодОКВЭД2Строка + + Rectangle + 86 + 86 + 21 + 42 + + + + КодОКВЭДСтрока + + Rectangle + 85 + 85 + 21 + 42 + + + + КодОКПД2Строка + + Rectangle + 88 + 88 + 21 + 42 + + + + КодОКПСтрока + + Rectangle + 87 + 87 + 21 + 42 + + + + КодПоКВПДСтрока + + Rectangle + 89 + 89 + 21 + 42 + + + + КодРаздел7ДекларацииНДССтрока + + Rectangle + 62 + 63 + 21 + 42 + + + + КодТРУСтрока + + Rectangle + 91 + 91 + 21 + 42 + + + + КрепостьСтрока + + Rectangle + 74 + 74 + 21 + 42 + + + + ОблагаетсяНДСУПокупателяСтрока + + Rectangle + 60 + 61 + 21 + 42 + + + + ОблагаетсяНДСУПокупателяФлаг + + Rectangle + 60 + 60 + 30 + 30 + + + + ОбщероссийскиеКлассификаторыЗаголовок + + Rectangle + 83 + 84 + 21 + 42 + + + + ОбъемДАЛСтрока + + Rectangle + 73 + 73 + 21 + 42 + + + + Операции0Строка + + Rectangle + 64 + 64 + 21 + 42 + + + + ПереноситьРНПТМатериалаСтрока + + Rectangle + 53 + 57 + 21 + 42 + + + + ПереноситьРНПТМатериалаФлаг + + Rectangle + 53 + 53 + 30 + 30 + + + + ПродаетсяПоРазрешениюСтрока + + Rectangle + 58 + 59 + 21 + 42 + + + + ПродаетсяПоРазрешениюФлаг + + Rectangle + 58 + 58 + 30 + 30 + + + + ПрослеживаемыйтоварСтрока + + Rectangle + 52 + 52 + 21 + 42 + + + + ПрослеживаемыйТоварФлаг + + Rectangle + 52 + 52 + 30 + 30 + + + + РегламентированныйУчетЗаголовок + + Rectangle + 48 + 49 + 21 + 42 + + + + СведенияОбАлкогольнойПродукцииЗаголовок + + Rectangle + 66 + 67 + 21 + 42 + + + + + 8 + + + 19 + + + 21 + + + 0 + Center + Center + #DCDCDC + Pattern14 + + + 48 + + + 0 + 44 + 8 + Center + Center + #DCDCDC + Pattern14 + + + 0 + 48 + 19 + Center + Center + #DCDCDC + Pattern14 + + + 0 + 45 + 24 + Left + Top + Wrap + + + 0 + 48 + 8 + + + 0 + 48 + 8 + Center + Center + #DCDCDC + Pattern14 + + + 0 + 44 + 24 + Left + Top + Wrap + + + 0 + 44 + 8 + + + 0 + 44 + 24 + Left + Top + #DCDCDC + Wrap + + + 44 + 24 + + + 0 + 44 + 24 + Left + Top + Wrap + Parameter + + + 48 + 19 + Parameter + + + 0 + 44 + 24 + Left + Top + Cut + Parameter + + + 0 + 44 + 24 + Left + Top + Wrap + Text + + + 0 + 48 + 19 + Left + Top + Wrap + Text + + + 48 + 8 + + + 48 + 19 + + + 48 + 19 + Cut + + + 0 + 48 + 19 + Left + Top + Wrap + + + 0 + 48 + 8 + Left + Top + Wrap + + + 48 + 19 + Cut + Parameter + + + 0 + 48 + 24 + Left + Top + Wrap + + + 0 + 44 + 24 + Left + Top + style:ГиперссылкаЦвет + Wrap + Parameter + true + + + 48 + 24 + + + 0 + 48 + 24 + Left + Top + Wrap + Parameter + + + 0 + 8 + Center + Center + #DCDCDC + Pattern14 + + + 0 + 19 + Center + Center + #DCDCDC + Pattern14 + + + 72 + + \ No newline at end of file diff --git a/src/Catalogs/СерииНоменклатуры/Ext/Help.xml b/src/Catalogs/СерииНоменклатуры/Ext/Help.xml new file mode 100644 index 0000000..d983f4c --- /dev/null +++ b/src/Catalogs/СерииНоменклатуры/Ext/Help.xml @@ -0,0 +1,4 @@ + + + ru + \ No newline at end of file diff --git a/src/Catalogs/СерииНоменклатуры/Ext/Help/ru.html b/src/Catalogs/СерииНоменклатуры/Ext/Help/ru.html new file mode 100644 index 0000000..c4d5edb --- /dev/null +++ b/src/Catalogs/СерииНоменклатуры/Ext/Help/ru.html @@ -0,0 +1,5 @@ + +

Серии номенклатуры

+

Серия – это дополнительная складская аналитика учета номенклатуры, использование которой определяется политикой учета.

+

См. также https://its.1c.ru/db/utdoc#bookmark:Batches:Batches

+

 

\ No newline at end of file diff --git a/src/Catalogs/СерииНоменклатуры/Ext/ManagerModule.bsl b/src/Catalogs/СерииНоменклатуры/Ext/ManagerModule.bsl new file mode 100644 index 0000000..224552d --- /dev/null +++ b/src/Catalogs/СерииНоменклатуры/Ext/ManagerModule.bsl @@ -0,0 +1,219 @@ +#Если Не МобильныйАвтономныйСервер Тогда +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область ПрограммныйИнтерфейс + +// Рассчитывает максимальный номер серии который уже используется для вида номенклатуры +// или уже указан в ТаблицеЗначений "ТаблицаСерий". +// +// Параметры: +// ВидНоменклатуры - СправочникСсылка.ВидыНоменклатуры - вид номенклатуры, для которого ищется номер серии. +// +// Возвращаемое значение: +// Число - номер серии +// +Функция ВычислитьМаксимальныйНомерСерии(ВидНоменклатуры) Экспорт + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | СерииНоменклатуры.Номер + |ИЗ + | Справочник.СерииНоменклатуры КАК СерииНоменклатуры + |ГДЕ + | СерииНоменклатуры.ВидНоменклатуры = &ВидНоменклатуры + | И НЕ СерииНоменклатуры.ПометкаУдаления + | И СерииНоменклатуры.Номер ПОДОБНО ""[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"" + | + |УПОРЯДОЧИТЬ ПО + | Номер УБЫВ"; + + Запрос.УстановитьПараметр("ВидНоменклатуры", ВидНоменклатуры); + Результат = Запрос.Выполнить(); + Если Результат.Пустой() Тогда + ЗначениеКодаЧислом = 0; + Иначе + Выборка = Результат.Выбрать(); + Выборка.Следующий(); + + ОписаниеТипаЧисла = Новый ОписаниеТипов("Число"); + ЗначениеКодаЧислом = ОписаниеТипаЧисла.ПривестиЗначение(Выборка.Номер); + КонецЕсли; + + Возврат ЗначениеКодаЧислом; + +КонецФункции + +// Возвращает таблицу отсутствующих номеров серий в указанном диапазоне. +// +// Параметры: +// ВидНоменклатуры - СправочникСсылка.ВидыНоменклатуры - вид номенклатуры, для которого ищутся номера серий +// НачальныйНомер - Число - начальный номер диапазона +// КонечныйНомер - Число - начальный номер диапазона +// Количество - Число - требуемое количество отсутствующих номеров. +// +// Возвращаемое значение: +// ТаблицаЗначений - серии +// Серия - СправочникСсылка.СерииНоменклатуры +// Номер - Строка +// +Функция СгенерироватьНомераСерийВДиапазоне(ВидНоменклатуры, НачальныйНомер, КонечныйНомер, Количество) Экспорт + + ТаблицаНомеров = Новый ТаблицаЗначений; + ТаблицаНомеров.Колонки.Добавить("Номер", Новый ОписаниеТипов("Строка")); + + ТекущийНачальныйНомер = НачальныйНомер; + РазмерПорции = 10000; // диапазон номеров может быть очень большим, будем искать свободные номера небольшими порциями + + Пока ТекущийНачальныйНомер <= КонечныйНомер Цикл + + ПорцияНомеров = ПолучитьНомераСерийВДиапазоне( + ВидНоменклатуры, + ТекущийНачальныйНомер, + Мин(ТекущийНачальныйНомер + РазмерПорции, КонечныйНомер), + Ложь); + + Для Каждого ТекСтр Из ПорцияНомеров Цикл + + ТаблицаНомеров.Добавить().Номер = ТекСтр.Номер; + Если ТаблицаНомеров.Количество() = Количество Тогда + Прервать; + КонецЕсли; + + КонецЦикла; + + Если ТаблицаНомеров.Количество() = Количество Тогда + Прервать; + КонецЕсли; + + ТекущийНачальныйНомер = ТекущийНачальныйНомер + РазмерПорции; + + КонецЦикла; + + Возврат ТаблицаНомеров; + +КонецФункции + +// Возвращает таблицу номеров серий в указанном диапазоне. +// +// Параметры: +// ВидНоменклатуры - СправочникСсылка.ВидыНоменклатуры - вид номенклатуры, для которого ищутся номера серий +// НачальныйНомер - Число - начальный номер диапазона +// КонечныйНомер - Число - начальный номер диапазона +// ФильтрСуществующие - Булево - отбор существующих/отсутствующих номеров серий; Неопределено - без отбора. +// +// Возвращаемое значение: +// ТаблицаЗначений - серии +// Серия - СправочникСсылка.СерииНоменклатуры +// Номер - Строка +// +Функция ПолучитьНомераСерийВДиапазоне(ВидНоменклатуры, НачальныйНомер, КонечныйНомер, ФильтрСуществующие = Неопределено) Экспорт + + ТаблицаНомеров = Новый ТаблицаЗначений; + ТаблицаНомеров.Колонки.Добавить("Номер", Новый ОписаниеТипов("Строка")); + + Для НомерСерии = НачальныйНомер По КонечныйНомер Цикл + ТаблицаНомеров.Добавить().Номер = Формат(НомерСерии, "ЧЦ=8; ЧВН=; ЧГ="); + КонецЦикла; + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ВЫРАЗИТЬ(Т.Номер КАК СТРОКА(8)) КАК Номер + |ПОМЕСТИТЬ ВТНомера + |ИЗ + | &ТаблицаНомеров КАК Т + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | Серии.Серия, + | Серии.Номер + |ИЗ + | (ВЫБРАТЬ + | СерииНоменклатуры.Ссылка КАК Серия, + | ВТНомера.Номер КАК Номер, + | ВЫБОР + | КОГДА СерииНоменклатуры.Ссылка ЕСТЬ NULL + | ТОГДА ЛОЖЬ + | ИНАЧЕ ИСТИНА + | КОНЕЦ КАК Существует + | ИЗ + | ВТНомера КАК ВТНомера + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СерииНоменклатуры КАК СерииНоменклатуры + | ПО ВТНомера.Номер = СерииНоменклатуры.Номер + | И (СерииНоменклатуры.ВидНоменклатуры = &ВидНоменклатуры) + | И (НЕ СерииНоменклатуры.ПометкаУдаления)) КАК Серии + |ГДЕ + | (&ФильтрСуществующие = НЕОПРЕДЕЛЕНО + | ИЛИ Серии.Существует = &ФильтрСуществующие) + | + |УПОРЯДОЧИТЬ ПО + | Серии.Номер"; + + Запрос.УстановитьПараметр("ТаблицаНомеров", ТаблицаНомеров); + Запрос.УстановитьПараметр("ВидНоменклатуры", ВидНоменклатуры); + Запрос.УстановитьПараметр("ФильтрСуществующие", ФильтрСуществующие); + + Результат = Запрос.Выполнить().Выгрузить(); + + Возврат Результат; + +КонецФункции + +// Возвращает имена реквизитов, которые не должны отображаться в списке реквизитов обработки ГрупповоеИзменениеОбъектов. +// +// Возвращаемое значение: +// Массив - массив имен реквизитов. +// +Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт + + НеРедактируемыеРеквизиты = Новый Массив; + НеРедактируемыеРеквизиты.Добавить("Номер"); + + Возврат НеРедактируемыеРеквизиты; + +КонецФункции + + +// Возвращает пустой объект серий, полученный в привилегированном режиме. Используется для работы +// универсальных механизмов. +// +// Параметры: +// ВидНоменклатуры - СправочникСсылка.ВидыНоменклатуры - вид номенклатуры, являющийся владельцем нового элемента +// справочника 'Серии номенклатуры'. +// +// Возвращаемое значение: +// СправочникОбъект.СерииНоменклатуры - новый элемент справочника 'Серии номенклатуры'. +// +Функция ПустойОбъект(ВидНоменклатуры) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + ПустаяСерия = Справочники.СерииНоменклатуры.СоздатьЭлемент(); + ПустаяСерия.ВидНоменклатуры = ВидНоменклатуры; + + УстановитьПривилегированныйРежим(Ложь); + + Возврат ПустаяСерия; + +КонецФункции + +#КонецОбласти + +#КонецЕсли + +#Область ОбработчикиСобытий + +Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка) + + НоменклатураВызовСервера.СерииНоменклатурыОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка); + +КонецПроцедуры + +#КонецОбласти + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#КонецЕсли +#КонецЕсли \ No newline at end of file diff --git a/src/Catalogs/СерииНоменклатуры/Ext/ObjectModule.bsl b/src/Catalogs/СерииНоменклатуры/Ext/ObjectModule.bsl new file mode 100644 index 0000000..43a3536 --- /dev/null +++ b/src/Catalogs/СерииНоменклатуры/Ext/ObjectModule.bsl @@ -0,0 +1,220 @@ +#Если Не МобильныйАвтономныйСервер Тогда +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область ОбработчикиСобытий + +Процедура ПередЗаписью(Отказ) + + Если ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект); + + НастройкиИспользованияСерий = Справочники.ВидыНоменклатуры.НастройкиИспользованияСерий(ВидНоменклатуры); + + УстановитьРеквизитыЦенообразования = Ложь; + Если Не ДополнительныеСвойства.Свойство("ИспользуетсяЦенообразование25", УстановитьРеквизитыЦенообразования) Тогда + УстановитьРеквизитыЦенообразования = ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25(); + КонецЕсли; + + Для Каждого Реквизит Из НастройкиИспользованияСерий.ОписанияИспользованияРеквизитовСерии Цикл + Если Не Реквизит.Использование Тогда + ЭтотОбъект[Реквизит.ИмяРеквизита] = Неопределено; + КонецЕсли; + КонецЦикла; + + Номер = СокрЛП(Номер); + + Если НастройкиИспользованияСерий.ТочностьУказанияСрокаГодностиСерии = Перечисления.ТочностиУказанияСрокаГодности.СТочностьюДоЧасов Тогда + ГоденДо = НачалоЧаса(ГоденДо); + ИначеЕсли НастройкиИспользованияСерий.ТочностьУказанияСрокаГодностиСерии = Перечисления.ТочностиУказанияСрокаГодности.СТочностьюДоМесяцев Тогда + ГоденДо = НачалоМесяца(ГоденДо); + Иначе + ГоденДо = НачалоДня(ГоденДо); + КонецЕсли; + + Если ЗначениеЗаполнено(НастройкиИспользованияСерий.ШаблонРабочегоНаименованияСерии) Тогда + Наименование = НоменклатураСервер.НаименованиеПоШаблону(НастройкиИспользованияСерий.ШаблонРабочегоНаименованияСерии, ЭтотОбъект); + Иначе + Наименование = НоменклатураКлиентСервер.ПредставлениеСерииБезРасчетаПоШаблонуНаименования(НастройкиИспользованияСерий, ЭтотОбъект); + КонецЕсли; + + НастройкиКлючаЦен = НастройкиИспользованияСерий.НастройкиКлючаЦенПоСерии; + Если УстановитьРеквизитыЦенообразования + И ЗначениеЗаполнено(НастройкиКлючаЦен) + И НастройкиКлючаЦен <> Перечисления.ВариантОтбораДляКлючаЦен.НеИспользовать Тогда + + ОбновлениеНастроекЦенообразованияВидыНоменклатуры = Ложь; + Если Не ДополнительныеСвойства.Свойство("ОбновлениеНастроекЦенообразованияВидыНоменклатуры", ОбновлениеНастроекЦенообразованияВидыНоменклатуры) Тогда + ОбновлениеНастроекЦенообразованияВидыНоменклатуры = Ложь; + КонецЕсли; + + ПроизвестиПоискХСО = ОбновлениеНастроекЦенообразованияВидыНоменклатуры; + Если Не ОбновлениеНастроекЦенообразованияВидыНоменклатуры Тогда + Если НастройкиКлючаЦен = Перечисления.ВариантОтбораДляКлючаЦен.ИспользоватьПоРеквизитам Тогда + ПроизвестиПоискХСО = Истина; + ИначеЕсли НастройкиКлючаЦен = Перечисления.ВариантОтбораДляКлючаЦен.Использовать Тогда + ПроизвестиПоискХСО = Ложь; + КонецЕсли; + КонецЕсли; + + РеквизитыДляПоиска = ПолучитьРеквизитыДляПоиска(ВидНоменклатуры, НастройкиИспользованияСерий, ПроизвестиПоискХСО); + СерияНоменклатурыДляЦенообразования = Справочники.СерииНоменклатурыДляЦенообразования.ПолучитьСериюНоменклатурыДляЦенообразования(РеквизитыДляПоиска); + + КонецЕсли; + + ОбщегоНазначенияУТ.ПодготовитьДанныеДляСинхронизацииКлючей(ЭтотОбъект, ПараметрыСинхронизацииКлючей()); + +КонецПроцедуры + +Процедура ПриЗаписи(Отказ) + + Если ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + ОбщегоНазначенияУТ.СинхронизироватьКлючи(ЭтотОбъект); + +КонецПроцедуры + +Процедура ПриКопировании(ОбъектКопирования) + СерияНоменклатурыДляЦенообразования = Справочники.СерииНоменклатурыДляЦенообразования.ПустаяСсылка(); +КонецПроцедуры + +Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) + + МассивНепроверяемыхРеквизитов = Новый Массив; + + НастройкиИспользованияСерий = Справочники.ВидыНоменклатуры.НастройкиИспользованияСерий(ВидНоменклатуры); + + Для Каждого Реквизит Из НастройкиИспользованияСерий.ОписанияИспользованияРеквизитовСерии Цикл + Если Не Реквизит.Использование + Или Не Реквизит.ПроверятьЗаполнение Тогда + МассивНепроверяемыхРеквизитов.Добавить(Реквизит.ИмяРеквизита); + КонецЕсли; + КонецЦикла; + + ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов); + +КонецПроцедуры + +Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка) + + Если ДанныеЗаполнения = "АвтоТест" Тогда + Возврат; + КонецЕсли; + + ВидНоменклатуры = ДанныеЗаполнения.ВидНоменклатуры; + НастройкиИспользованияСерий = Новый ФиксированнаяСтруктура(Справочники.ВидыНоменклатуры.НастройкиИспользованияСерий(ВидНоменклатуры)); + + СтруктураПолей = Новый Структура; + + Для Каждого Реквизит Из НастройкиИспользованияСерий.ОписанияИспользованияРеквизитовСерии Цикл + Если Реквизит.Использование Тогда + СтруктураПолей.Вставить(Реквизит.ИмяРеквизита); + КонецЕсли; + КонецЦикла; + + ЗаполнитьЗначенияСвойств(СтруктураПолей, ДанныеЗаполнения); + + ЗаполнитьЗначенияСвойств(ЭтотОбъект, СтруктураПолей); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +// Получить реквизиты для поиска. +// +// Параметры: +// ВидНоменклатуры - СправочникСсылка.ВидыНоменклатуры - Вид номенклатуры +// НастройкиИспользованияСерий - Структура - Реквизиты объекта +// ПроизвестиПоискХСО - Булево - Произвести поиск ХСО +// +// Возвращаемое значение: +// Структура - Получить реквизиты для поиска: +// * ТекущаяСерия - СправочникСсылка.СерииНоменклатуры - +// * ТекущаяСерияЦО - СправочникСсылка.СерииНоменклатурыДляЦенообразования - +// * ПроизвестиПоискХСО - Булево - +// * ВидНоменклатуры - СправочникСсылка.ВидыНоменклатуры - +// * СсылкаОдинКОдному - Булево - Истина, на основании серии только одна серия ценообразования +// * РеквизитыДляКлючаЦен - ТаблицаЗначений - +Функция ПолучитьРеквизитыДляПоиска(Знач ВидНоменклатуры, Знач НастройкиИспользованияСерий, Знач ПроизвестиПоискХСО) Экспорт + + // получить список доп реквизитов по которым искать серию + РеквизитыДляКлючаЦен = Справочники.ВидыНоменклатуры.ПолучитьРеквизитыДляКлючаЦен(ВидНоменклатуры, "Серии"); + + РеквизитыДляПоиска = Новый Структура; + РеквизитыДляПоиска.Вставить("ТекущаяСерия", Ссылка); + РеквизитыДляПоиска.Вставить("ТекущаяСерияЦО", СерияНоменклатурыДляЦенообразования); + РеквизитыДляПоиска.Вставить("ПроизвестиПоискХСО", ПроизвестиПоискХСО); + РеквизитыДляПоиска.Вставить("ВидНоменклатуры", ВидНоменклатуры); + РеквизитыДляПоиска.Вставить("СсылкаОдинКОдному", Ложь); + + Если НастройкиИспользованияСерий.НастройкиКлючаЦенПоСерии = Перечисления.ВариантОтбораДляКлючаЦен.ИспользоватьПоРеквизитам Тогда + ДанныеПоДополнительнымРеквизитам = ДополнительныеРеквизиты.Выгрузить(); + + Для Каждого СтрокаРеквизитаДляКлючаЦен Из РеквизитыДляКлючаЦен Цикл + Если СтрокаРеквизитаДляКлючаЦен.ЭтоДопРеквизит Тогда + НайденнаяСтрока = ДанныеПоДополнительнымРеквизитам.Найти(СтрокаРеквизитаДляКлючаЦен.Свойство, "Свойство"); + СтрокаРеквизитаДляКлючаЦен.Значение = НайденнаяСтрока.Значение; + Иначе + СтрокаРеквизитаДляКлючаЦен.Значение = ЭтотОбъект[СтрокаРеквизитаДляКлючаЦен.ИмяРеквизита]; + КонецЕсли; + КонецЦикла; + Иначе // по всем реквизитам для ценообразования + РеквизитыДляПоиска.Вставить("СсылкаОдинКОдному", Истина); + МассивНаименованийРеквизитов = Справочники.СерииНоменклатурыДляЦенообразования.ПолучитьНаборРеквизитовДляКонтроля(); + + Для Каждого Описание Из НастройкиИспользованияСерий.ОписанияИспользованияРеквизитовСерии Цикл + Если Описание.Использование И МассивНаименованийРеквизитов.Найти(Описание.ИмяРеквизита) <> Неопределено Тогда + + СтрокаРеквизитаДляКлючаЦен = РеквизитыДляКлючаЦен.Добавить(); + СтрокаРеквизитаДляКлючаЦен.ИмяРеквизита = Описание.ИмяРеквизита; + СтрокаРеквизитаДляКлючаЦен.ЭтоДопРеквизит = Ложь; + СтрокаРеквизитаДляКлючаЦен.Используется = Истина; + СтрокаРеквизитаДляКлючаЦен.Значение = ЭтотОбъект[Описание.ИмяРеквизита]; + КонецЕсли; + КонецЦикла; + + Для Каждого Строка Из ДополнительныеРеквизиты Цикл + СтрокаРеквизитаДляКлючаЦен = РеквизитыДляКлючаЦен.Добавить(); + ЗаполнитьЗначенияСвойств(СтрокаРеквизитаДляКлючаЦен, Строка); + СтрокаРеквизитаДляКлючаЦен.ИмяРеквизита = Строка.Свойство; + СтрокаРеквизитаДляКлючаЦен.ЭтоДопРеквизит = Истина; + СтрокаРеквизитаДляКлючаЦен.Используется = Истина; + КонецЦикла; + + СтрокаРеквизитаДляКлючаЦен = РеквизитыДляКлючаЦен.Добавить(); + СтрокаРеквизитаДляКлючаЦен.ИмяРеквизита = "Наименование"; + СтрокаРеквизитаДляКлючаЦен.Значение = Наименование; + СтрокаРеквизитаДляКлючаЦен.ЭтоДопРеквизит = Ложь; + СтрокаРеквизитаДляКлючаЦен.Используется = Истина; + + КонецЕсли; + + РеквизитыДляПоиска.Вставить("РеквизитыДляКлючаЦен", РеквизитыДляКлючаЦен); + + Возврат РеквизитыДляПоиска + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПараметрыСинхронизацииКлючей() + + Результат = Новый Соответствие; + + Результат.Вставить("Справочник.КлючиАналитикиУчетаНоменклатуры", "ПометкаУдаления"); + + Возврат Результат; + +КонецФункции + +#КонецОбласти +#КонецЕсли +#КонецЕсли \ No newline at end of file diff --git a/src/Catalogs/СерииНоменклатуры/Forms/ФормаВыбора.xml b/src/Catalogs/СерииНоменклатуры/Forms/ФормаВыбора.xml new file mode 100644 index 0000000..4702947 --- /dev/null +++ b/src/Catalogs/СерииНоменклатуры/Forms/ФормаВыбора.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаВыбора + + + ru + Форма выбора + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/СерииНоменклатуры/Forms/ФормаВыбора/Ext/Form.xml b/src/Catalogs/СерииНоменклатуры/Forms/ФормаВыбора/Ext/Form.xml new file mode 100644 index 0000000..9a19357 --- /dev/null +++ b/src/Catalogs/СерииНоменклатуры/Forms/ФормаВыбора/Ext/Form.xml @@ -0,0 +1,273 @@ + +
+ LockOwnerWindow + + + ОбработкаОповещения + ПриОткрытии + ПриСозданииНаСервере + ПриЗакрытии + + + + ВидНоменклатуры + false + Items + true + + + + ВидНоменклатурыПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа пользовательских настроек</v8:content> + </v8:item> + + Usual + None + false + + + + List + None + true + true + true + ExpandTopLevel + true + AsFile + Список + Список.DefaultPicture + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + ГруппаПользовательскихНастроек + true + + + false + + + + + Список + SearchStringRepresentation + + + + + + + Список + ViewStatusRepresentation + + Left + + + + + + Список + SearchControl + + + + + + СписокПередНачаломДобавления + + + + Список.Номер + + + + + Список.ДатаПроизводства + 14 + + + + + Список.ГоденДо + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа реквизиты локализации серий</v8:content> + </v8:item> + + Horizontal + + + + Список.НомерКиЗГИСМ + + + + + Список.ПроизводительЕГАИС + + + + + Список.Справка2ЕГАИС + + + + + Список.ПроизводительВЕТИС + + + + + Список.ЗаписьСкладскогоЖурналаВЕТИС + + + + + Список.МаксимальнаяРозничнаяЦенаМОТП + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>МРЦ (МОТП)</v8:content> + </v8:item> + + + + + + + + Список.Ref + + false + + + + + +
+
+ + + + cfg:DynamicList + + true + + false + true + Catalog.СерииНоменклатуры + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид номенклатуры</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать подключаемое оборудование</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Поддерживаемые типы подключаемого оборудования</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Параметры шаблона</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Срок годности</v8:content> + </v8:item> + + + xs:decimal + + 15 + 0 + Nonnegative + + + + + + + + cfg:CatalogRef.Номенклатура + + + + + cfg:CatalogRef.ВидыНоменклатуры + + + + \ No newline at end of file diff --git a/src/Catalogs/СерииНоменклатуры/Forms/ФормаВыбора/Ext/Form/Module.bsl b/src/Catalogs/СерииНоменклатуры/Forms/ФормаВыбора/Ext/Form/Module.bsl new file mode 100644 index 0000000..3e3dd6d --- /dev/null +++ b/src/Catalogs/СерииНоменклатуры/Forms/ФормаВыбора/Ext/Form/Module.bsl @@ -0,0 +1,220 @@ + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + ОбщегоНазначенияУТ.НастроитьПодключаемоеОборудование(ЭтаФорма); + + ПараметрыТекущаяСтрока = Неопределено; + Если ЗначениеЗаполнено(Параметры.ВидНоменклатуры) Тогда + ВидНоменклатуры = Параметры.ВидНоменклатуры; + ИначеЕсли Параметры.Свойство("ТекущаяСтрока", ПараметрыТекущаяСтрока) И ЗначениеЗаполнено(ПараметрыТекущаяСтрока) Тогда + РеквизитыСерии = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ПараметрыТекущаяСтрока, + Новый Структура("ВидНоменклатуры", "ВидНоменклатуры")); + + ВидНоменклатуры = РеквизитыСерии.ВидНоменклатуры; + ИначеЕсли ЗначениеЗаполнено(Параметры.Номенклатура) Тогда + РеквизитыНоменклатуры = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Параметры.Номенклатура, + Новый Структура("ВидНоменклатуры", "ВидНоменклатуры")); + + ВидНоменклатуры = РеквизитыНоменклатуры.ВидНоменклатуры; + КонецЕсли; + + Если Параметры.Свойство("СрокГодности") Тогда + СрокГодности = Параметры.СрокГодности; + КонецЕсли; + + Элементы.ВидНоменклатуры.ТолькоПросмотр = ЗначениеЗаполнено(ВидНоменклатуры); + + ВидНоменклатурыПриИзмененииСервер(); + + СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + МенеджерОборудованияКлиент.НачатьПодключениеОборудованиеПриОткрытииФормы(Неопределено, ЭтаФорма, "СканерШтрихкода"); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриЗакрытии(ЗавершениеРаботы) + + МенеджерОборудованияКлиент.НачатьОтключениеОборудованиеПриЗакрытииФормы(Неопределено, ЭтаФорма); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + // ПодключаемоеОборудование + Если Источник = "ПодключаемоеОборудование" И ВводДоступен() Тогда + Если ИмяСобытия = "ScanData" И МенеджерОборудованияУТКлиент.ЕстьНеобработанноеСобытие() Тогда + + Номер = МенеджерОборудованияУТКлиент.ПреобразоватьДанныеСоСканераВСтруктуру(Параметр).Штрихкод; + + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, + "Номер", + Номер, + ВидСравненияКомпоновкиДанных.Содержит, + , + ЗначениеЗаполнено(Номер)); + + КонецЕсли; + КонецЕсли; + // Конец ПодключаемоеОборудование + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура ВидНоменклатурыПриИзменении(Элемент) + + ВидНоменклатурыПриИзмененииСервер(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок + +&НаКлиенте +Процедура СписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) + + Если Не Копирование Тогда + Отказ = Истина; + + Если Не ЗначениеЗаполнено(ВидНоменклатуры) Тогда + ТекстПредупреждения = НСтр("ru = 'Перед добавлением серии необходимо указать вид номенклатуры.'"); + + ПоказатьПредупреждение(Неопределено, ТекстПредупреждения); + + Возврат; + ИначеЕсли ЗначениеЗаполнено(ПараметрыШаблона) + И Не ПараметрыШаблона.ИспользоватьСерии Тогда + + ТекстПредупреждения = НСтр("ru = 'Невозможно добавить новую серию, так как в настройках вида номенклатуры выключена возможность использования серий.'"); + + ПоказатьПредупреждение(Неопределено, ТекстПредупреждения); + + Возврат; + + КонецЕсли; + + ЗначенияЗаполнения = Новый Структура; + ЗначенияЗаполнения.Вставить("ВидНоменклатуры", ВидНоменклатуры); + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ЗначенияЗаполнения", ЗначенияЗаполнения); + ПараметрыФормы.Вставить("СрокГодности", СрокГодности); + + ОткрытьФорму("Справочник.СерииНоменклатуры.ФормаОбъекта", + ПараметрыФормы, Элементы.Список); + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область Прочее + +&НаСервере +Процедура ВидНоменклатурыПриИзмененииСервер() + + ПараметрыШаблона = Неопределено; + ВладелецСерий = Справочники.ВидыНоменклатуры.ПустаяСсылка(); + + Если ЗначениеЗаполнено(ВидНоменклатуры) Тогда + + ПараметрыШаблона = Новый ФиксированнаяСтруктура( + Справочники.ВидыНоменклатуры.НастройкиИспользованияСерий(ВидНоменклатуры) + ); + + ВладелецСерий = ПараметрыШаблона.ВладелецСерий; + + Для Каждого Описание Из ПараметрыШаблона.ОписанияИспользованияРеквизитовСерии Цикл + + Если ЗначениеЗаполнено(Описание.Формат) + И Элементы.Найти(Описание.ИмяРеквизита) <> Неопределено Тогда + Элементы[Описание.ИмяРеквизита].Формат = Описание.Формат; + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, + "ВидНоменклатуры", + ВладелецСерий, + ВидСравненияКомпоновкиДанных.Равно,, + Истина + ); + + НастроитьПоШаблону(); + +КонецПроцедуры + +&НаСервере +Процедура НастроитьПоШаблону() + + Если ПараметрыШаблона = Неопределено + Или (ЗначениеЗаполнено(ПараметрыШаблона) + И Не ПараметрыШаблона.ИспользоватьСерии) Тогда + + ОписанияИспользованияРеквизитовСерии = Справочники.ВидыНоменклатуры.ОписанияИспользованияРеквизитовСерии(); + + Для Каждого Описание Из ОписанияИспользованияРеквизитовСерии Цикл + + Элемент = Элементы.Найти(Описание.ИмяРеквизита); + Если Элемент = Неопределено Тогда + Продолжить; + КонецЕсли; + + Если Не ПустаяСтрока(Описание.ОсобенностиУчета) Тогда + Элемент.Видимость = Ложь; + КонецЕсли; + КонецЦикла; + Иначе + + Для Каждого Описание Из ПараметрыШаблона.ОписанияИспользованияРеквизитовСерии Цикл + + Элемент = Элементы.Найти(Описание.ИмяРеквизита); + + Если Элемент = Неопределено Тогда + Продолжить; + КонецЕсли; + + Элемент.Видимость = Описание.Использование; + КонецЦикла; + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти diff --git a/src/Catalogs/СерииНоменклатуры/Forms/ФормаВыбораАвтономныйРежим.xml b/src/Catalogs/СерииНоменклатуры/Forms/ФормаВыбораАвтономныйРежим.xml new file mode 100644 index 0000000..6153475 --- /dev/null +++ b/src/Catalogs/СерииНоменклатуры/Forms/ФормаВыбораАвтономныйРежим.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаВыбораАвтономныйРежим + + + ru + Форма выбора автономный режим + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/СерииНоменклатуры/Forms/ФормаВыбораАвтономныйРежим/Ext/Form.xml b/src/Catalogs/СерииНоменклатуры/Forms/ФормаВыбораАвтономныйРежим/Ext/Form.xml new file mode 100644 index 0000000..4a8c413 --- /dev/null +++ b/src/Catalogs/СерииНоменклатуры/Forms/ФормаВыбораАвтономныйРежим/Ext/Form.xml @@ -0,0 +1,281 @@ + +
+ LockOwnerWindow + + Copy + Create + + + + ОбработкаОповещения + ПриСозданииНаСервере + + + + ВидНоменклатуры + false + Items + true + + + + ВидНоменклатурыПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа пользовательских настроек</v8:content> + </v8:item> + + Usual + None + false + + + + List + None + true + true + true + ExpandTopLevel + true + AsFile + Список + Список.DefaultPicture + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список</v8:content> + </v8:item> + + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + ГруппаПользовательскихНастроек + true + + + false + + + + + Список + SearchStringRepresentation + + + + + + + Список + ViewStatusRepresentation + + Left + + + + + + Список + SearchControl + + + + + + + Список.Номер + + + + + Список.ДатаПроизводства + 14 + + + + + Список.ГоденДо + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа реквизиты локализации серий</v8:content> + </v8:item> + + Horizontal + + + + Список.НомерКиЗГИСМ + + + + + Список.ПроизводительЕГАИС + + + + + Список.Справка2ЕГАИС + + + + + Список.ПроизводительВЕТИС + + + + + Список.ЗаписьСкладскогоЖурналаВЕТИС + + + + + Список.МаксимальнаяРозничнаяЦенаМОТП + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>МРЦ (МОТП)</v8:content> + </v8:item> + + + + + + + + Список.Ref + + false + + + + + +
+
+ + + + cfg:DynamicList + + true + + Список.Ref + + + false + true + Catalog.СерииНоменклатуры + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид номенклатуры</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Использовать подключаемое оборудование</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Поддерживаемые типы подключаемого оборудования</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Параметры шаблона</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Срок годности</v8:content> + </v8:item> + + + xs:decimal + + 15 + 0 + Nonnegative + + + + + + + + cfg:CatalogRef.Номенклатура + + + + + cfg:CatalogRef.ВидыНоменклатуры + + + + \ No newline at end of file diff --git a/src/Catalogs/СерииНоменклатуры/Forms/ФормаВыбораАвтономныйРежим/Ext/Form/Module.bsl b/src/Catalogs/СерииНоменклатуры/Forms/ФормаВыбораАвтономныйРежим/Ext/Form/Module.bsl new file mode 100644 index 0000000..152e182 --- /dev/null +++ b/src/Catalogs/СерииНоменклатуры/Forms/ФормаВыбораАвтономныйРежим/Ext/Form/Module.bsl @@ -0,0 +1,147 @@ + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + ПараметрыТекущаяСтрока = Неопределено; + Если ЗначениеЗаполнено(Параметры.ВидНоменклатуры) Тогда + ВидНоменклатуры = Параметры.ВидНоменклатуры; + ИначеЕсли Параметры.Свойство("ТекущаяСтрока", ПараметрыТекущаяСтрока) И ЗначениеЗаполнено(ПараметрыТекущаяСтрока) Тогда + РеквизитыСерии = МобильноеРабочееМестоКладовщика.ЗначенияРеквизитовОбъекта(ПараметрыТекущаяСтрока, + Новый Структура("ВидНоменклатуры", "ВидНоменклатуры")); + + ВидНоменклатуры = РеквизитыСерии.ВидНоменклатуры; + ИначеЕсли ЗначениеЗаполнено(Параметры.Номенклатура) Тогда + РеквизитыНоменклатуры = МобильноеРабочееМестоКладовщика.ЗначенияРеквизитовОбъекта(Параметры.Номенклатура, + Новый Структура("ВидНоменклатуры", "ВидНоменклатуры")); + + ВидНоменклатуры = РеквизитыНоменклатуры.ВидНоменклатуры; + КонецЕсли; + + Если Параметры.Свойство("СрокГодности") Тогда + СрокГодности = Параметры.СрокГодности; + КонецЕсли; + + Элементы.ВидНоменклатуры.ТолькоПросмотр = ЗначениеЗаполнено(ВидНоменклатуры); + + ВидНоменклатурыПриИзмененииСервер(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + // ПодключаемоеОборудование + Если Источник = "ПодключаемоеОборудование" И ВводДоступен() Тогда + Если ИмяСобытия = "ScanData" И МобильноеРабочееМестоКладовщикаКлиент.ЕстьНеобработанноеСобытие() Тогда + + Номер = МобильноеРабочееМестоКладовщикаКлиент.ПреобразоватьДанныеСоСканераВСтруктуру(Параметр).Штрихкод; + + МобильноеРабочееМестоКладовщикаКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, + "Номер", + Номер, + ВидСравненияКомпоновкиДанных.Содержит, + , + ЗначениеЗаполнено(Номер)); + + КонецЕсли; + КонецЕсли; + // Конец ПодключаемоеОборудование + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура ВидНоменклатурыПриИзменении(Элемент) + + ВидНоменклатурыПриИзмененииСервер(); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область Прочее + +&НаСервере +Процедура ВидНоменклатурыПриИзмененииСервер() + + ПараметрыШаблона = Неопределено; + ВладелецСерий = Справочники.ВидыНоменклатуры.ПустаяСсылка(); + + Если ЗначениеЗаполнено(ВидНоменклатуры) Тогда + + ПараметрыШаблона = Новый ФиксированнаяСтруктура( + МобильноеРабочееМестоКладовщика.НастройкиИспользованияСерий(ВидНоменклатуры)); + + ВладелецСерий = ПараметрыШаблона.ВладелецСерий; + + Для Каждого Описание Из ПараметрыШаблона.ОписанияИспользованияРеквизитовСерии Цикл + + Если ЗначениеЗаполнено(Описание.Формат) + И Элементы.Найти(Описание.ИмяРеквизита) <> Неопределено Тогда + Элементы[Описание.ИмяРеквизита].Формат = Описание.Формат; + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + + МобильноеРабочееМестоКладовщикаКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, + "ВидНоменклатуры", + ВладелецСерий, + ВидСравненияКомпоновкиДанных.Равно,, + Истина); + + НастроитьПоШаблону(); + +КонецПроцедуры + +&НаСервере +Процедура НастроитьПоШаблону() + + Если ПараметрыШаблона = Неопределено Или (ЗначениеЗаполнено(ПараметрыШаблона) + И Не ПараметрыШаблона.ИспользоватьСерии) Тогда + + ОписанияИспользованияРеквизитовСерии = МобильноеРабочееМестоКладовщика.ОписанияИспользованияРеквизитовСерии(); + + Для Каждого Описание Из ОписанияИспользованияРеквизитовСерии Цикл + + Элемент = Элементы.Найти(Описание.ИмяРеквизита); + Если Элемент = Неопределено Тогда + Продолжить; + КонецЕсли; + + Если Не ПустаяСтрока(Описание.ОсобенностиУчета) Тогда + Элемент.Видимость = Ложь; + КонецЕсли; + КонецЦикла; + Иначе + + Для Каждого Описание Из ПараметрыШаблона.ОписанияИспользованияРеквизитовСерии Цикл + + Элемент = Элементы.Найти(Описание.ИмяРеквизита); + + Если Элемент = Неопределено Тогда + Продолжить; + КонецЕсли; + + Элемент.Видимость = Описание.Использование; + КонецЦикла; + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти diff --git a/src/Catalogs/СерииНоменклатуры/Forms/ФормаСписка.xml b/src/Catalogs/СерииНоменклатуры/Forms/ФормаСписка.xml new file mode 100644 index 0000000..9bd7fb8 --- /dev/null +++ b/src/Catalogs/СерииНоменклатуры/Forms/ФормаСписка.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаСписка + + + ru + Форма списка + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/СерииНоменклатуры/Forms/ФормаСписка/Ext/Form.xml b/src/Catalogs/СерииНоменклатуры/Forms/ФормаСписка/Ext/Form.xml new file mode 100644 index 0000000..c2f9fde --- /dev/null +++ b/src/Catalogs/СерииНоменклатуры/Forms/ФормаСписка/Ext/Form.xml @@ -0,0 +1,260 @@ + +
+ + + + + + + ПриСозданииНаСервере + + + + ВидНоменклатуры + Items + + + + ВидНоменклатурыПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа пользовательских настроек</v8:content> + </v8:item> + + Usual + None + false + + + + List + None + true + true + ExpandTopLevel + true + AsFile + Список + Список.DefaultPicture + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + ГруппаПользовательскихНастроек + true + + + + + + + + + + Список + SearchStringRepresentation + + + + + + + Список + ViewStatusRepresentation + + Left + + + + + + Список + SearchControl + + + + + + СписокПередНачаломДобавления + + + + Список.Ref + + false + + + + + + Список.Номер + 30 + + + + + Список.ДатаПроизводства + 14 + + + + + Список.ГоденДо + 14 + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа реквизиты локализации серий</v8:content> + </v8:item> + + Horizontal + + + + Список.НомерКиЗГИСМ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номер КиЗ</v8:content> + </v8:item> + + + + + + Список.ПроизводительЕГАИС + + + + + Список.Справка2ЕГАИС + + + + + Список.ПроизводительВЕТИС + + + + + Список.ЗаписьСкладскогоЖурналаВЕТИС + + + + + Список.МаксимальнаяРозничнаяЦенаМОТП + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>МРЦ (МОТП)</v8:content> + </v8:item> + + + + + + + + Список.СерияНоменклатурыДляЦенообразования + + + + +
+
+ + + + cfg:DynamicList + + true + + Список.Ref + + + false + true + Catalog.СерииНоменклатуры + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Вид номенклатуры</v8:content> + </v8:item> + + + cfg:CatalogRef.ВидыНоменклатуры + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Параметры шаблона</v8:content> + </v8:item> + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Изменить выделенные</v8:content> + </v8:item> + + + + ru + Изменить выделенные объекты + + + ИзменитьВыделенные + DontUse + + +
\ No newline at end of file diff --git a/src/Catalogs/СерииНоменклатуры/Forms/ФормаСписка/Ext/Form/Module.bsl b/src/Catalogs/СерииНоменклатуры/Forms/ФормаСписка/Ext/Form/Module.bsl new file mode 100644 index 0000000..da838f2 --- /dev/null +++ b/src/Catalogs/СерииНоменклатуры/Forms/ФормаСписка/Ext/Form/Module.bsl @@ -0,0 +1,164 @@ + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + // Возврат при получении формы для анализа. + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + МожноРедактировать = ПравоДоступа("Редактирование", Метаданные.Справочники.СерииНоменклатуры); + + Элементы.ФормаИзменитьВыделенные.Видимость = МожноРедактировать; + Элементы.СписокКонтекстноеМенюИзменитьВыделенные.Видимость = МожноРедактировать; + + ВидНоменклатурыПриИзмененииСервер(); + + СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура ВидНоменклатурыПриИзменении(Элемент) + + ВидНоменклатурыПриИзмененииСервер(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ИзменитьВыделенные(Команда) + + ГрупповоеИзменениеОбъектовКлиент.ИзменитьВыделенные(Элементы.Список); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок + +&НаКлиенте +Процедура СписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) + + Если Не Копирование Тогда + Отказ = Истина; + + Если Не ЗначениеЗаполнено(ВидНоменклатуры) Тогда + ТекстПредупреждения = НСтр("ru = 'Перед добавлением серии необходимо указать вид номенклатуры.'"); + + ПоказатьПредупреждение(Неопределено, ТекстПредупреждения); + + Возврат; + ИначеЕсли ЗначениеЗаполнено(ПараметрыШаблона) + И Не ПараметрыШаблона.ИспользоватьСерии Тогда + + ТекстПредупреждения = НСтр("ru = 'Невозможно добавить новую серию, так как в настройках вида номенклатуры выключена возможность использования серий.'"); + + ПоказатьПредупреждение(Неопределено, ТекстПредупреждения); + + Возврат; + + КонецЕсли; + + ЗначенияЗаполнения = Новый Структура("ВидНоменклатуры", ВидНоменклатуры); + + ОткрытьФорму("Справочник.СерииНоменклатуры.ФормаОбъекта", + Новый Структура("ЗначенияЗаполнения", ЗначенияЗаполнения), Элементы.Список); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура ВидНоменклатурыПриИзмененииСервер() + + ПараметрыШаблона = Неопределено; + ВладелецСерий = Справочники.ВидыНоменклатуры.ПустаяСсылка(); + + Если ЗначениеЗаполнено(ВидНоменклатуры) Тогда + + ПараметрыШаблона = Новый ФиксированнаяСтруктура( + Справочники.ВидыНоменклатуры.НастройкиИспользованияСерий(ВидНоменклатуры) + ); + + ВладелецСерий = ПараметрыШаблона.ВладелецСерий; + + Для Каждого Описание Из ПараметрыШаблона.ОписанияИспользованияРеквизитовСерии Цикл + + Если ЗначениеЗаполнено(Описание.Формат) + И Элементы.Найти(Описание.ИмяРеквизита) <> Неопределено Тогда + Элементы[Описание.ИмяРеквизита].Формат = Описание.Формат; + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, + "ВидНоменклатуры", + ВладелецСерий, + ВидСравненияКомпоновкиДанных.Равно,, + Истина + ); + + НастроитьФорму(); + +КонецПроцедуры + +&НаСервере +Процедура НастроитьФорму() + + Если ПараметрыШаблона = Неопределено + Или (ЗначениеЗаполнено(ПараметрыШаблона) + И Не ПараметрыШаблона.ИспользоватьСерии) Тогда + + ОписанияИспользованияРеквизитовСерии = Справочники.ВидыНоменклатуры.ОписанияИспользованияРеквизитовСерии(); + + Для Каждого Описание Из ОписанияИспользованияРеквизитовСерии Цикл + + Элемент = Элементы.Найти(Описание.ИмяРеквизита); + Если Элемент = Неопределено Тогда + Продолжить; + КонецЕсли; + + Если Не ПустаяСтрока(Описание.ОсобенностиУчета) Тогда + Элемент.Видимость = Ложь; + КонецЕсли; + КонецЦикла; + Иначе + + Для Каждого Описание Из ПараметрыШаблона.ОписанияИспользованияРеквизитовСерии Цикл + + Элемент = Элементы.Найти(Описание.ИмяРеквизита); + + Если Элемент = Неопределено Тогда + Продолжить; + КонецЕсли; + + Элемент.Видимость = Описание.Использование; + КонецЦикла; + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/src/Catalogs/СерииНоменклатуры/Forms/ФормаЭлемента.xml b/src/Catalogs/СерииНоменклатуры/Forms/ФормаЭлемента.xml new file mode 100644 index 0000000..488d449 --- /dev/null +++ b/src/Catalogs/СерииНоменклатуры/Forms/ФормаЭлемента.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаЭлемента + + + ru + Форма элемента + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/src/Catalogs/СерииНоменклатуры/Forms/ФормаЭлемента/Ext/Form.xml b/src/Catalogs/СерииНоменклатуры/Forms/ФормаЭлемента/Ext/Form.xml new file mode 100644 index 0000000..db158fb --- /dev/null +++ b/src/Catalogs/СерииНоменклатуры/Forms/ФормаЭлемента/Ext/Form.xml @@ -0,0 +1,379 @@ + +
+ LockOwnerWindow + Items + + + + + + + ПослеЗаписи + ПослеЗаписиНаСервере + ОбработкаОповещения + ПриЧтенииНаСервере + ПриОткрытии + ПриСозданииНаСервере + ПередЗаписьюНаСервере + ОбработкаПроверкиЗаполненияНаСервере + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа шапка</v8:content> + </v8:item> + + false + Vertical + Usual + false + + + + Объект.ВидНоменклатуры + EnterOnInput + + + + ВидНоменклатурыПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа номер годен до</v8:content> + </v8:item> + + Vertical + Usual + None + false + + + + Объект.Номер + EnterOnInput + 16 + + + + + Объект.ДатаПроизводства + 14 + false + + + + ДатаПроизводстваПриИзменении + ДатаПроизводстваНачалоВыбора + + + + Объект.ГоденДо + EnterOnInput + 14 + false + + + + ГоденДоПриИзменении + ГоденДоНачалоВыбора + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Дополнительно</v8:content> + </v8:item> + + false + Vertical + Usual + None + Use + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ключ цен</v8:content> + </v8:item> + + Usual + + + + Объект.СерияНоменклатурыДляЦенообразования + true + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>RFID-метка</v8:content> + </v8:item> + + Vertical + Usual + Use + + + + Объект.RFIDTID + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>TID</v8:content> + </v8:item> + + + + + + Объект.RFIDUser + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>User</v8:content> + </v8:item> + + + + + + Объект.RFIDEPC + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>EPC</v8:content> + </v8:item> + + + + + + Объект.EPCGTIN + + + + + Объект.RFIDМеткаНеЧитаемая + Right + CheckBox + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа реквизиты локализации</v8:content> + </v8:item> + + Vertical + Usual + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Контрольный идентификационный знак ГИСМ</v8:content> + </v8:item> + + Vertical + Usual + Use + + + + Объект.НомерКиЗГИСМ + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номер</v8:content> + </v8:item> + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>ЕГАИС</v8:content> + </v8:item> + + Vertical + Usual + + + + Объект.ПроизводительЕГАИС + + + + + Объект.Справка2ЕГАИС + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>ВетИС</v8:content> + </v8:item> + + Vertical + Usual + + + + Объект.ПроизводительВЕТИС + + + + + Объект.ЗаписьСкладскогоЖурналаВЕТИС + + + + + Объект.ИдентификаторПартииВЕТИС + 1 + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>МОТП</v8:content> + </v8:item> + + Vertical + Usual + + + + Объект.МаксимальнаяРозничнаяЦенаМОТП + + + + + + + + + + + + cfg:CatalogObject.СерииНоменклатуры + + true + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Параметры политики</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Структура реквизитов объекта</v8:content> + </v8:item> + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Срок годности</v8:content> + </v8:item> + + + xs:decimal + + 15 + 0 + Nonnegative + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Единица измерения срока годности</v8:content> + </v8:item> + + + cfg:EnumRef.ЕдиницыИзмеренияВремени + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сгенерировать номер</v8:content> + </v8:item> + + + CommonPicture.СоздатьЭлементСпискаЗаполненныйАвтоматически + false + + СгенерироватьНомер + true + + + + + + InformationRegister.ШтрихкодыНоменклатуры.StandardCommand.OpenByValue.Серия + Auto + false + + false + + + + +
\ No newline at end of file diff --git a/src/Catalogs/СерииНоменклатуры/Forms/ФормаЭлемента/Ext/Form/Module.bsl b/src/Catalogs/СерииНоменклатуры/Forms/ФормаЭлемента/Ext/Form/Module.bsl new file mode 100644 index 0000000..2920ed8 --- /dev/null +++ b/src/Catalogs/СерииНоменклатуры/Forms/ФормаЭлемента/Ext/Form/Module.bsl @@ -0,0 +1,274 @@ + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.Свойство("АвтоТест") Тогда + Возврат; + КонецЕсли; + + Если Параметры.Свойство("СрокГодности") Тогда + СрокГодности = Параметры.СрокГодности; + КонецЕсли; + + ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект); + + // Обработчик механизма "Свойства" + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("Объект", Объект); + ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты"); + УправлениеСвойствами.ПриСозданииНаСервере(ЭтаФорма, ДополнительныеПараметры); + УправлениеСвойствамиУТ.УстановитьОтметкуНезаполненныхСвойств(ЭтаФорма, Объект); + + Если Не ЗначениеЗаполнено(Объект.ВидНоменклатуры) Тогда + Элементы.ВидНоменклатуры.ТолькоПросмотр = Ложь; + Возврат; + КонецЕсли; + + Элементы.ВидНоменклатуры.ТолькоПросмотр = Истина; + УстановитьНастройкиПоШаблону(); + ЕдиницаИзмеренияСрокаГодности = ПараметрыПолитики.ЕдиницаИзмеренияСрокаГодности; + + СтруктураРеквизитовОбъекта = Новый ФиксированнаяСтруктура(ОбщегоНазначенияУТ.СтруктураСоСвойствамиОбъектаМетаданных( + Метаданные.Справочники.СерииНоменклатуры)); + + СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + // СтандартныеПодсистемы.Свойства + УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект); + // Конец СтандартныеПодсистемы.Свойства + +КонецПроцедуры + +&НаСервере +Процедура ПриЧтенииНаСервере(ТекущийОбъект) + + УправлениеСвойствами.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект); + + МодификацияКонфигурацииПереопределяемый.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект); + +КонецПроцедуры + +&НаСервере +Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) + + // СтандартныеПодсистемы.Свойства + УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты); + // Конец СтандартныеПодсистемы.Свойства + +КонецПроцедуры + +&НаСервере +Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) + + // Обработчик механизма "Свойства" + УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект); + + МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтаФорма, Отказ, ТекущийОбъект, ПараметрыЗаписи); + +КонецПроцедуры + +&НаКлиенте +Процедура ПослеЗаписи(ПараметрыЗаписи) + + Если ЗначениеЗаполнено(Объект.СерияНоменклатурыДляЦенообразования) Тогда + ОповеститьОбИзменении(Объект.СерияНоменклатурыДляЦенообразования); + КонецЕсли; + + СтруктураОповещения = Новый Структура(СтруктураРеквизитовОбъекта); + + ЗаполнитьЗначенияСвойств(СтруктураОповещения, Объект); + + Оповестить("Запись_СерииНоменклатуры", СтруктураОповещения, Объект.Ссылка); + + МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтаФорма, ПараметрыЗаписи); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + // Обработчик механизма "Свойства" + Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтаФорма, ИмяСобытия, Параметр) Тогда + ОбновитьЭлементыДополнительныхРеквизитов(); + УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) + + МодификацияКонфигурацииПереопределяемый.ПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура ВидНоменклатурыПриИзменении(Элемент) + + УстановитьНастройкиПоШаблону(); + +КонецПроцедуры + +&НаКлиенте +Процедура ДатаПроизводстваПриИзменении(Элемент) + + НоменклатураКлиентСервер.ПересчитатьДатуСерии(Объект.ДатаПроизводства); + + Если ЗначениеЗаполнено(ЕдиницаИзмеренияСрокаГодности) Тогда + Объект.ГоденДо = НоменклатураКлиентСервер.ГоденДоПоДатеПроизводства(Объект.ДатаПроизводства, СрокГодности, ЕдиницаИзмеренияСрокаГодности); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ДатаПроизводстваНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + ОписаниеОповещения = Новый ОписаниеОповещения("ДатаПроизводстваНачалоВыбораЗавершение", ЭтотОбъект); + НоменклатураКлиент.ДатаПроизводстваНачалоВыбора(Объект, ОписаниеОповещения, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура ДатаПроизводстваНачалоВыбораЗавершение(Результат, ДополнительныеПараметры = Неопределено) Экспорт + + НоменклатураКлиентСервер.ПересчитатьДатуСерии(Объект.ДатаПроизводства); + + Если ЗначениеЗаполнено(СрокГодности) И ЗначениеЗаполнено(ЕдиницаИзмеренияСрокаГодности) Тогда + Объект.ГоденДо = НоменклатураКлиентСервер.ГоденДоПоДатеПроизводства(Объект.ДатаПроизводства, СрокГодности, ЕдиницаИзмеренияСрокаГодности); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ГоденДоПриИзменении(Элемент) + + НоменклатураКлиентСервер.ПересчитатьДатуСерии(Объект.ГоденДо); + +КонецПроцедуры + +&НаКлиенте +Процедура ГоденДоНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + ИменаПараметров = "ГоденДо, ДатаПроизводства, ФорматДаты, ИспользоватьДатуПроизводства, ЕдиницаИзмеренияСрокаГодности"; + ПараметрыФормы = Новый Структура(ИменаПараметров); + + ЗаполнитьЗначенияСвойств(ПараметрыФормы, Объект); + + ПараметрыФормы.ФорматДаты = Элементы.ГоденДо.ФорматРедактирования; + ПараметрыФормы.ИспользоватьДатуПроизводства = Элементы.ДатаПроизводства.Видимость; + ПараметрыФормы.ЕдиницаИзмеренияСрокаГодности = ПараметрыПолитики.ЕдиницаИзмеренияСрокаГодности; + + НоменклатураКлиент.ДатаИстеченияСрокаГодностиНачалоВыбора(Объект, ПараметрыФормы, Неопределено, + СтандартнаяОбработка); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено) + + УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) + + СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура СгенерироватьНомер(Команда) + СгенерироватьНомерНаСервере(); +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// СтандартныеПодсистемы.Свойства +&НаКлиенте +Процедура ОбновитьЗависимостиДополнительныхРеквизитов() + + УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент) + + УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект); + +КонецПроцедуры +// Конец СтандартныеПодсистемы.Свойства + +#Область Прочее + +&НаСервере +Процедура УстановитьНастройкиПоШаблону() + + РежимОтладки = ОбщегоНазначенияУТ.РежимОтладки(); + + ПараметрыПолитики = Новый ФиксированнаяСтруктура(Справочники.ВидыНоменклатуры.НастройкиИспользованияСерий(Объект.ВидНоменклатуры)); + + Для Каждого Описание Из ПараметрыПолитики.ОписанияИспользованияРеквизитовСерии Цикл + + Элементы[Описание.ИмяРеквизита].Видимость = Описание.Использование; + + Если Не ПустаяСтрока(Описание.Формат) Тогда + Элементы[Описание.ИмяРеквизита].Формат = Описание.Формат; + Элементы[Описание.ИмяРеквизита].ФорматРедактирования = Описание.Формат; + КонецЕсли; + + КонецЦикла; + + + МожноМенятьНомер = РежимОтладки + Или Не Элементы.RFIDTID.Видимость + Или Не ((ЗначениеЗаполнено(Объект.RFIDTID) + Или ЗначениеЗаполнено(Объект.RFIDEPC)) + И Не Объект.RFIDМеткаНеЧитаемая); + + Элементы.Номер.ТолькоПросмотр = Не МожноМенятьНомер; + + Элементы.RFIDTID.ТолькоПросмотр = Не РежимОтладки; + Элементы.RFIDUser.ТолькоПросмотр = Не РежимОтладки; + Элементы.RFIDEPC.ТолькоПросмотр = Не РежимОтладки; + Элементы.RFIDМеткаНеЧитаемая.ТолькоПросмотр = Не РежимОтладки; + +КонецПроцедуры + +&НаСервере +Процедура ОбновитьЭлементыДополнительныхРеквизитов() + + УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтаФорма); + +КонецПроцедуры + +&НаСервере +Процедура СгенерироватьНомерНаСервере() + + МаксимальныйНомерИзСправочника = Справочники.СерииНоменклатуры.ВычислитьМаксимальныйНомерСерии(Объект.ВидНоменклатуры); + МаксимальныйНомерИзСправочника = МаксимальныйНомерИзСправочника + 1; + Объект.Номер = Формат(МаксимальныйНомерИзСправочника, "ЧЦ=8; ЧВН=; ЧГ="); + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти diff --git a/src/Configuration.xml b/src/Configuration.xml index 0b46e5e..7cf1574 100644 --- a/src/Configuration.xml +++ b/src/Configuration.xml @@ -62,7 +62,7 @@ Role.РК_ОсновнаяРоль - 1.3.1.91 + 1.3.1.92 Language.Русский