new
This commit is contained in:
parent
7fbeeecf42
commit
1cdfa246b3
BIN
public/erp/harakteristiki-nomenklatury/1.png
Normal file
BIN
public/erp/harakteristiki-nomenklatury/1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
BIN
public/erp/harakteristiki-nomenklatury/2.png
Normal file
BIN
public/erp/harakteristiki-nomenklatury/2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.9 KiB |
BIN
public/erp/serii-nomenklatury/1.png
Normal file
BIN
public/erp/serii-nomenklatury/1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 25 KiB |
BIN
public/erp/serii-nomenklatury/2.png
Normal file
BIN
public/erp/serii-nomenklatury/2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 31 KiB |
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Добавление команд заполнения
|
title: Добавление команд заполнения
|
||||||
slug: общие-подключаемые-команды-команды-заполнения/добавление-команд-заполнения
|
slug: общие-подключаемые-команды/добавление-команд-заполнения
|
||||||
---
|
---
|
||||||
|
|
||||||
# Общий модуль ЗаполнениеОбъектовПереопределяемый
|
# Общий модуль ЗаполнениеОбъектовПереопределяемый
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Добавление команд отчетов
|
title: Добавление команд отчетов
|
||||||
slug: общие-подключаемые-команды-команды-отчетов/добавление-команд-отчетов
|
slug: общие-подключаемые-команды/добавление-команд-отчетов
|
||||||
---
|
---
|
||||||
|
|
||||||
# В общем модуле `ВариантыОтчетовПереопределяемый` добавляем свой объект
|
# В общем модуле `ВариантыОтчетовПереопределяемый` добавляем свой объект
|
@ -1,9 +1,13 @@
|
|||||||
---
|
---
|
||||||
title: Добавление команд создания на основании
|
title: Добавление команд создания на основании
|
||||||
slug: общие-подключаемые-команды-команды-создания-на-основании/добавление-команд-создания-на-основании
|
slug: общие-подключаемые-команды/добавление-команд-создания-на-основании
|
||||||
---
|
---
|
||||||
|
|
||||||
# В общем модуле `CозданиеНаОснованииПереопределяемый`
|
## Подключаемые команды
|
||||||
|
|
||||||
|
Нужно подключить формы к подсистеме `Подключаемые команды`
|
||||||
|
|
||||||
|
## В общем модуле `CозданиеНаОснованииПереопределяемый`
|
||||||
|
|
||||||
В процедуру `ПриОпределенииОбъектовСКомандамиСозданияНаОсновании` добавляем менеджеры подключаемых объектов. Например:
|
В процедуру `ПриОпределенииОбъектовСКомандамиСозданияНаОсновании` добавляем менеджеры подключаемых объектов. Например:
|
||||||
|
|
||||||
@ -20,18 +24,18 @@ slug: общие-подключаемые-команды-команды-созд
|
|||||||
// Объекты.Добавить(Метаданные.Справочники.Организации);
|
// Объекты.Добавить(Метаданные.Справочники.Организации);
|
||||||
//
|
//
|
||||||
Процедура ПриОпределенииОбъектовСКомандамиСозданияНаОсновании(Объекты) Экспорт
|
Процедура ПриОпределенииОбъектовСКомандамиСозданияНаОсновании(Объекты) Экспорт
|
||||||
|
|
||||||
// _Демо начало примера
|
// _Демо начало примера
|
||||||
Объекты.Добавить(Метаданные.Документы._ДемоЗаказПокупателя);
|
Объекты.Добавить(Метаданные.Документы._ДемоЗаказПокупателя);
|
||||||
Объекты.Добавить(Метаданные.Документы._ДемоПоступлениеТоваров);
|
Объекты.Добавить(Метаданные.Документы._ДемоПоступлениеТоваров);
|
||||||
// _Демо конец примера
|
// _Демо конец примера
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
# В модуле менеджера
|
## В модуле менеджера
|
||||||
## Добавление команд создания на основании
|
### Добавление команд создания на основании
|
||||||
Если необходимо создавать какие-то объекты на основании собственного, в первую очередь нужно вывести команды создания на основании на форму документа.
|
Если необходимо создавать какие-то объекты на основании собственного, в первую очередь нужно вывести команды создания на основании на форму документа.
|
||||||
Для этого:
|
Для этого:
|
||||||
|
|
||||||
@ -47,23 +51,23 @@ slug: общие-подключаемые-команды-команды-созд
|
|||||||
//
|
//
|
||||||
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
|
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
|
||||||
|
|
||||||
Если ПравоДоступа("Добавление", Метаданные.Документы.ЗаказДавальца) Тогда
|
Если ПравоДоступа("Добавление", Метаданные.Документы.ЗаказДавальца) Тогда
|
||||||
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
|
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
|
||||||
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.ЗаказДавальца.ПолноеИмя();
|
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.ЗаказДавальца.ПолноеИмя();
|
||||||
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.ЗаказДавальца);
|
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.ЗаказДавальца);
|
||||||
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
|
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
```
|
```
|
||||||
В этой процедуре определяется, какие документы будут создаваться на основании. Для многих типовых документов реализована экспортная процедура для добавления такой команды. Например, если нужно создавать только документы `ЗаказКлиента` и `ЗаказПоставщику` (для которых реализованы такие экспортные команды), то код может выглядеть так
|
В этой процедуре определяется, какие документы будут создаваться на основании. Для многих типовых документов реализована экспортная процедура для добавления такой команды. Например, если нужно создавать только документы `ЗаказКлиента` и `ЗаказПоставщику` (для которых реализованы такие экспортные команды), то код может выглядеть так
|
||||||
|
|
||||||
```bsl
|
```bsl
|
||||||
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
|
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
|
||||||
|
|
||||||
Документы.ЗаказКлиента.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
|
Документы.ЗаказКлиента.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
|
||||||
Документы.ЗаказПоставщику.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
|
Документы.ЗаказПоставщику.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -71,11 +75,14 @@ slug: общие-подключаемые-команды-команды-созд
|
|||||||
Если мы хотим дать возможность так же просто создавать команды создания на основании для своего документа, то нужно так же реализовать экспортную процедуру:
|
Если мы хотим дать возможность так же просто создавать команды создания на основании для своего документа, то нужно так же реализовать экспортную процедуру:
|
||||||
```bsl
|
```bsl
|
||||||
|
|
||||||
// Добавляет команду создания документа
|
// Для использования в процедуре ДобавитьКомандыСозданияНаОсновании других модулей менеджеров объектов.
|
||||||
|
// Добавляет в список команд создания на основании этот объект.
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// КомандыСозданияНаОсновании - ТаблицаЗначений - Таблица с командами создания на основании. Для изменения.
|
// КомандыСозданияНаОсновании - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.КомандыСозданияНаОсновании
|
||||||
// См. описание 1 параметра процедуры СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании().
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// СтрокаТаблицыЗначений, Неопределено - описание добавленной команды.
|
||||||
//
|
//
|
||||||
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
|
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
|
||||||
|
|
||||||
@ -85,20 +92,20 @@ slug: общие-подключаемые-команды-команды-созд
|
|||||||
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.<МойДокумент>.ПолноеИмя();
|
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.<МойДокумент>.ПолноеИмя();
|
||||||
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.<МойДокумент>);
|
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.<МойДокумент>);
|
||||||
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
|
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
|
||||||
|
|
||||||
Возврат КомандаСоздатьНаОсновании;
|
Возврат КомандаСоздатьНаОсновании;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат Неопределено;
|
Возврат Неопределено;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
```
|
```
|
||||||
# Настройка формы
|
# Настройка формы
|
||||||
Нужно создать группу в командной панели(скопируй из типового объекта)
|
Нужно создать группу в командной панели(скопируй из типового объекта)
|
||||||
// * ПодменюСоздатьНаОсновании
|
|
||||||
// ** ПодменюСоздатьНаОснованииВажное
|
|
||||||
// ** ПодменюСоздатьНаОснованииОбычное
|
|
||||||
// ** ПодменюСоздатьНаОснованииСмТакже
|
|
||||||
|
|
||||||
Нужно подключить форму к подсистеме `Подключаемые команды`
|
- ПодменюСоздатьНаОсновании
|
||||||
|
- ПодменюСоздатьНаОснованииВажное
|
||||||
|
- ПодменюСоздатьНаОснованииОбычное
|
||||||
|
- ПодменюСоздатьНаОснованииСмТакже
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
title: Добавление команд печати
|
|
||||||
slug: общие-подключаемые-команды-команды-печати/добавление-команд-печати
|
|
||||||
---
|
|
||||||
|
|
||||||
См. Подключение к подсистеме Печать
|
|
@ -0,0 +1,161 @@
|
|||||||
|
---
|
||||||
|
title: Проверка серий номенклатуры в ТЧ
|
||||||
|
slug: типовые-erp-обработка-тч-с-номенклатурой/проверка-серий-номенклатуры-в-тч
|
||||||
|
---
|
||||||
|
|
||||||
|
# НЕ ЗАКОНЧЕНО
|
||||||
|
|
||||||
|
> Использование серий в 1С:ERP определяется функциональной опцией НСИ и администрирование – Настройка НСИ и разделов – Номенклатура – Разрезы учета – Серии товаров.
|
||||||
|
> Далее серии указываются для каждого вида номенклатуры отдельно
|
||||||
|
|
||||||
|
[Подробнее про настройку серий в ERP](https://efsol.ru/manuals/serial-accounting-1c-erp/?ysclid=mepv3es1ej787928552)
|
||||||
|
|
||||||
|
## Настройка формы
|
||||||
|
Создаем таблицу (далее - `СписокНоменклатуры`) с обязательными колонками
|
||||||
|
|Имя|Тип|
|
||||||
|
|-|-|
|
||||||
|
|`Номенклатура`|`СправочникСсылка.Номенклатура`|
|
||||||
|
|`Характеристика`|`СправочникСсылка.ХарактеристикиНоменклатуры`|
|
||||||
|
|`Серия`|`СправочникСсылка.СерииНоменклатуры`|
|
||||||
|
|`СтатусУказанияСерий`|`Число (2,0)`|
|
||||||
|
|`Склад`|`СправочникСсылка.Склады`|
|
||||||
|
|`ХарактеристикиИспользуются`|`Булево`|
|
||||||
|
|`ТипНоменклатуры`|`ПеречислениеСсылка.ТипыНоменклатуры`|
|
||||||
|
|
||||||
|
Для поля `Серия` устанавливаем связи параметров выбора:
|
||||||
|

|
||||||
|
|
||||||
|
Поле `Склад` обычно не выводится в таблицу, а устанавливается отдельно для всех строк ТЧ. Для этого создадим реквизит объекта `Склад` и разместим в шапке
|
||||||
|
|
||||||
|
Несмотря на то, что поле `СтатусУказанияСерий` служебное, его рекомендуется создавать на уровне **объекта**, а не **формы**. На форму выводится как `Поле картинки` с картинкой значений `СтатусыУказанияСерий`
|
||||||
|

|
||||||
|
|
||||||
|
Поля `ХарактеристикиИспользуются` и `ТипНоменклатуры` - служебные, и их создаем на уровне **формы**, а не **объекта**
|
||||||
|
|
||||||
|
Создаем **реквизит формы** `ПараметрыУказанияСерий` с типом `Произвольный`
|
||||||
|
|
||||||
|
> Пример для случая, когда серии указываются в той же ТЧ, что и номенклатура
|
||||||
|
|
||||||
|
## ПриСозданииНаСервере
|
||||||
|
|
||||||
|
> Пример для случая, когда серии указываются в той же ТЧ, что и номенклатура
|
||||||
|
```bsl
|
||||||
|
|
||||||
|
// См. описание метода
|
||||||
|
|
||||||
|
// Для каждого документа параметры серии могут отличаться, поэтому устанавливаются в менеджере целевого объекта. В примере параметры из документа "ПриобретениеТоваровУслуг"
|
||||||
|
СтруктураПараметров = НоменклатураСервер.ПараметрыУказанияСерий(Объект, <Менеджер объекта>); // где реализован экспортный метод "ПараметрыУказанияСерий"
|
||||||
|
ПараметрыУказанияСерий = Новый ФиксированнаяСтруктура(СтруктураПараметров);
|
||||||
|
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(Объект, ПараметрыУказанияСерий);
|
||||||
|
|
||||||
|
НоменклатураСервер.УстановитьУсловноеОформлениеСерийНоменклатуры(ЭтотОбъект,
|
||||||
|
"СерииВсегдаВТЧТовары",
|
||||||
|
"СписокНоменклатурыСерия",
|
||||||
|
"Объект.СписокНоменклатуры.СтатусУказанияСерий",
|
||||||
|
"Объект.СписокНоменклатуры.ТипНоменклатуры");
|
||||||
|
|
||||||
|
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(Объект, ПараметрыУказанияСерий);
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">
|
||||||
|
<summary style="font-weight: bold; cursor: pointer;">Пример реализации параметров учета серий в документе "Приобретение товаров и услуг</summary>
|
||||||
|
|
||||||
|
```bsl
|
||||||
|
// Возвращает параметры указания серий для товаров, указанных в документе
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Объект - Структура - структура значений реквизитов объекта, необходимых для заполнения параметров указания серий.
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Структура - см. НоменклатураКлиентСервер.ПараметрыУказанияСерий.
|
||||||
|
//
|
||||||
|
Функция ПараметрыУказанияСерий(Объект) Экспорт
|
||||||
|
|
||||||
|
ПараметрыУказанияСерий = НоменклатураКлиентСервер.ПараметрыУказанияСерий();
|
||||||
|
ПараметрыУказанияСерий.ПолноеИмяОбъекта = "Документ.ПриобретениеТоваровУслуг";
|
||||||
|
|
||||||
|
ПараметрыСерийСклада = СкладыСервер.ИспользованиеСерийНаСкладе(Объект.Склад, Истина);
|
||||||
|
|
||||||
|
ЗакупкаУПоставщикаПоРеглУчету = (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщикаРеглУчет);
|
||||||
|
|
||||||
|
Если ЗакупкаУПоставщикаПоРеглУчету Тогда
|
||||||
|
ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры = ПараметрыСерийСклада.УчитыватьСебестоимостьПоСериям;
|
||||||
|
ПараметрыУказанияСерий.УчитыватьСебестоимостьПоСериям = ПараметрыСерийСклада.УчитыватьСебестоимостьПоСериям;
|
||||||
|
ПараметрыУказанияСерий.ТолькоСерииДляСебестоимости = Истина;
|
||||||
|
Иначе
|
||||||
|
ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры =
|
||||||
|
(ПараметрыСерийСклада.ИспользоватьСерииНоменклатуры И Не СкладыСервер.ИспользоватьОрдернуюСхемуПриПоступлении(Объект.Склад, Объект.Дата, Истина))
|
||||||
|
Или ПараметрыСерийСклада.УчитыватьСебестоимостьПоСериям;
|
||||||
|
ПараметрыУказанияСерий.УчитыватьСебестоимостьПоСериям = ПараметрыСерийСклада.УчитыватьСебестоимостьПоСериям;
|
||||||
|
ПараметрыУказанияСерий.ТолькоСерииДляСебестоимости = Ложь;
|
||||||
|
ПараметрыУказанияСерий.СерииПриПланированииОтгрузкиУказываютсяВТЧСерии = Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ПараметрыУказанияСерий.СкладскиеОперации.Добавить(Перечисления.СкладскиеОперации.ПриемкаОтПоставщика);
|
||||||
|
ПараметрыУказанияСерий.ПоляСвязи.Добавить("Склад");
|
||||||
|
ПараметрыУказанияСерий.ПоляСвязи.Добавить("Назначение");
|
||||||
|
ПараметрыУказанияСерий.ЭтоНакладная = Истина;
|
||||||
|
ПараметрыУказанияСерий.Дата = Объект.Дата;
|
||||||
|
|
||||||
|
ПараметрыУказанияСерий.ИменаПолейСтатусУказанияСерий.Добавить("СтатусУказанияСерий");
|
||||||
|
|
||||||
|
ПараметрыУказанияСерий.ИменаПолейДляОпределенияРаспоряжения.Добавить("Ссылка");
|
||||||
|
ПараметрыУказанияСерий.ИменаПолейДляОпределенияРаспоряжения.Добавить("Соглашение");
|
||||||
|
ПараметрыУказанияСерий.ИменаПолейДляОпределенияРаспоряжения.Добавить("Договор");
|
||||||
|
ПараметрыУказанияСерий.ИменаПолейДляОпределенияРаспоряжения.Добавить("ПоступлениеПоЗаказам");
|
||||||
|
ПараметрыУказанияСерий.ИменаПолейДляОпределенияРаспоряжения.Добавить("Товары_ЗаказПоставщику");
|
||||||
|
ПараметрыУказанияСерий.ИменаПолейДляОпределенияРаспоряжения.Добавить("ВариантПриемкиТоваров");
|
||||||
|
ПараметрыУказанияСерий.ОперацияДокумента = Объект.ХозяйственнаяОперация;
|
||||||
|
|
||||||
|
ОперацииВПути = Новый Массив();
|
||||||
|
ОперацииВПути.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщикаТоварыВПути);
|
||||||
|
ОперацииВПути.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпортуТоварыВПути);
|
||||||
|
ОперацииВПути.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСТоварыВПути);
|
||||||
|
|
||||||
|
ОперацииНеотфактуровки = Новый Массив();
|
||||||
|
ОперацииНеотфактуровки.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки);
|
||||||
|
ОперацииНеотфактуровки.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки);
|
||||||
|
|
||||||
|
ХозОперацияТоварыВПутиИНеотфактуровка = ОперацииВПути.Найти(Объект.ХозяйственнаяОперация) <> Неопределено
|
||||||
|
Или ОперацииНеотфактуровки.Найти(Объект.ХозяйственнаяОперация) <> Неопределено;
|
||||||
|
ЭтоТоварыВПути = ОперацииВПути.Найти(Объект.ХозяйственнаяОперация) <> Неопределено;
|
||||||
|
|
||||||
|
ПараметрыУказанияСерий.ПараметрыЗапроса.Вставить("ЭтоТоварыВПути", ЭтоТоварыВПути);
|
||||||
|
ПараметрыУказанияСерий.ПараметрыЗапроса.Вставить("ХозОперацияТоварыВПутиИНеотфактуровка", ХозОперацияТоварыВПутиИНеотфактуровка);
|
||||||
|
|
||||||
|
Возврат ПараметрыУказанияСерий;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
## При изменении номенклатуры
|
||||||
|
|
||||||
|
```bsl
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура СписокНоменклатурыНоменклатураПриИзменении(Элемент)
|
||||||
|
|
||||||
|
ТекДанн = Элементы.СписокНоменклатуры.ТекущиеДанные;
|
||||||
|
|
||||||
|
// см. описание метода
|
||||||
|
ПараметрыЗаполненияСклада = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияСкладаВСтрокеТЧ(Объект, Ложь, "Склад", "СкладНаФорме");
|
||||||
|
|
||||||
|
СтруктураДействий = Новый Структура;
|
||||||
|
// Проверяем характеристики
|
||||||
|
СтруктураДействий.Вставить("ПроверитьХарактеристикуПоВладельцу", ТекДанн.Характеристика);
|
||||||
|
// Заполняем склад в ТЧ из реквизита в шапке формы
|
||||||
|
СтруктураДействий.Вставить("ПроверитьЗаполнитьСклад", ПараметрыЗаполненияСклада);
|
||||||
|
// заполняем служебный реквизит "ТипНоменклатуры"
|
||||||
|
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
|
||||||
|
// Проверяем статус указания серий
|
||||||
|
СтруктураДействий.Вставить("ПроверитьСериюРассчитатьСтатус", Новый Структура("Склад, ПараметрыУказанияСерий", ТекДанн.Склад, ПараметрыУказанияСерий));
|
||||||
|
|
||||||
|
ОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекДанн, СтруктураДействий, КэшированныеЗначения);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
```
|
||||||
|
|
||||||
|
|
@ -0,0 +1,62 @@
|
|||||||
|
---
|
||||||
|
title: Проверка характеристик номенклатуры в ТЧ
|
||||||
|
slug: типовые-erp-обработка-тч-с-номенклатурой/проверка-характеристик-номенклатуры-в-тч
|
||||||
|
---
|
||||||
|
|
||||||
|
## Описание таблицы
|
||||||
|
Создаем таблицу (далее - `СписокНоменклатуры`) с обязательными колонками
|
||||||
|
|Имя|Тип|
|
||||||
|
|-|-|
|
||||||
|
|`Номенклатура`|`СправочникСсылка.Номенклатура`|
|
||||||
|
|`Характеристика`|`СправочникСсылка.ХарактеристикиНоменклатуры`|
|
||||||
|
|`ХарактеристикиИспользуются`|`Булево`|
|
||||||
|
|
||||||
|
Поле `ХарактеристикиИспользуются` - служебное, поэтому создается **на форме** а не в объекте
|
||||||
|

|
||||||
|
|
||||||
|
Для поля `Характеристика` устанавливаем связи параметров выбора:
|
||||||
|

|
||||||
|
|
||||||
|
## КэшированныеЗначения
|
||||||
|
В модуле формы нужно объявить клиентскую переменную `КэшированныеЗначения`
|
||||||
|
|
||||||
|
```bsl
|
||||||
|
|
||||||
|
#Область ОписаниеПеременных
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Перем КэшированныеЗначения; //используется механизмом обработки изменения реквизитов ТЧ
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## ПриСозданииНаСервере
|
||||||
|
При создании формы устнавливаем условное оформление поля `Характеристика`
|
||||||
|
```bsl
|
||||||
|
// См. описание метода
|
||||||
|
|
||||||
|
НоменклатураСервер.УстановитьУсловноеОформлениеХарактеристикНоменклатуры(ЭтотОбъект,
|
||||||
|
"СписокНоменклатурыХарактеристика",
|
||||||
|
"Объект.СписокНоменклатуры.ХарактеристикиИспользуются");
|
||||||
|
|
||||||
|
РаботаСТабличнымиЧастями.ИнициализироватьКэшСтрок(Элементы.СписокНоменклатуры);
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## При изменении номенклатуры
|
||||||
|
```bsl
|
||||||
|
&НаКлиенте
|
||||||
|
|
||||||
|
Процедура СписокНоменклатурыНоменклатураПриИзменении(Элемент)
|
||||||
|
|
||||||
|
ТекДанн = Элементы.СписокНоменклатуры.ТекущиеДанные;
|
||||||
|
|
||||||
|
СтруктураДействий = Новый Структура;
|
||||||
|
СтруктураДействий.Вставить("ПроверитьХарактеристикуПоВладельцу", ТекДанн.Характеристика);
|
||||||
|
|
||||||
|
ОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекДанн, СтруктураДействий, КэшированныеЗначения);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
```
|
Loading…
x
Reference in New Issue
Block a user