Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6b3696417e | |||
| 93ef9e904f | |||
| e00eab1028 | |||
| e6082bbcf9 | |||
| 15d8020064 | |||
| 3eb3c023e1 |
@@ -0,0 +1,19 @@
|
|||||||
|
# Единые правила редактора для репозиториев выгрузки 1С.
|
||||||
|
# Согласовано с tools/git_1c/.gitattributes (LF в репозитории).
|
||||||
|
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[*.{bsl,os}]
|
||||||
|
indent_style = tab
|
||||||
|
|
||||||
|
[*.xml]
|
||||||
|
indent_style = tab
|
||||||
|
|
||||||
|
[VERSION]
|
||||||
|
insert_final_newline = true
|
||||||
+16
-13
@@ -1,31 +1,34 @@
|
|||||||
# €¢â®®¯à¥¤¥«¥¨¥ ¤«ï ⥪á⮢ëå ä ©«®¢
|
# Единые правила для репозиториев выгрузки 1С (Configurator / EDT).
|
||||||
|
# Канонический формат в git: UTF-8, LF. См. tools/git_1c/README.md
|
||||||
|
|
||||||
* text=auto
|
* text=auto
|
||||||
|
|
||||||
# ” ©«ë 1‘ - ¢á¥£¤ LF ¤«ï ᮢ¬¥á⨬®á⨠á Linux
|
# Текстовые файлы выгрузки 1С
|
||||||
*.bsl text eol=lf
|
*.bsl text eol=lf
|
||||||
*.os text eol=lf
|
*.os text eol=lf
|
||||||
*.txt text eol=lf
|
|
||||||
*.md text eol=lf
|
|
||||||
*.json text eol=lf
|
|
||||||
*.xml text eol=lf
|
*.xml text eol=lf
|
||||||
|
*.txt text eol=lf
|
||||||
|
*.md text eol=lf
|
||||||
|
*.json text eol=lf
|
||||||
|
*.ini text eol=lf
|
||||||
|
*.conf text eol=lf
|
||||||
|
VERSION text eol=lf
|
||||||
|
|
||||||
# �¨ àë¥ ä ©«ë 1‘ - ¥ âண âì
|
# Бинарные артефакты 1С
|
||||||
*.cf binary
|
*.cf binary
|
||||||
*.cfe binary
|
*.cfe binary
|
||||||
|
*.epf binary
|
||||||
|
*.erf binary
|
||||||
*.ef binary
|
*.ef binary
|
||||||
*.bin binary
|
*.bin binary
|
||||||
*.cf.binary binary
|
*.cf.binary binary
|
||||||
|
*.mxl binary
|
||||||
|
|
||||||
# ” ©«ë á¯à ¢ª¨ 1‘ - ¡¨ àë¥
|
# Справка и графика
|
||||||
*.html binary
|
*.html binary
|
||||||
*.htm binary
|
*.htm binary
|
||||||
|
|
||||||
# ƒà ä¨ç¥áª¨¥ ä ©«ë - ¡¨ àë¥
|
|
||||||
*.png binary
|
*.png binary
|
||||||
*.jpg binary
|
*.jpg binary
|
||||||
*.jpeg binary
|
*.jpeg binary
|
||||||
*.gif binary
|
*.gif binary
|
||||||
*.ico binary
|
*.ico binary
|
||||||
|
|
||||||
# ” ©«ë ä®à¬ ¨ ¬ ª¥â®¢ 1‘
|
|
||||||
*.bin binary
|
|
||||||
|
|||||||
@@ -0,0 +1,78 @@
|
|||||||
|
# История изменений crm3-26.rhana
|
||||||
|
|
||||||
|
Формат версии: `1.3.0.NNN` (синхронизируется с `VERSION` и `Configuration.xml`).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1.3.0.38 (2026-07-06)
|
||||||
|
|
||||||
|
### Обмен — фильтр узла «Рабочая CRM3»
|
||||||
|
|
||||||
|
Модуль: `МенеджерОбменаЧерезУниверсальныйФормат`.
|
||||||
|
|
||||||
|
| Функция | Назначение |
|
||||||
|
|---------|------------|
|
||||||
|
| `РК_УзелCrm3Dev_GUID()` | GUID узла исходной ИБ в целевой (`97cd20ee-bb06-11f0-8dac-0cc47a7d055f`) |
|
||||||
|
| `РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена)` | Истина только для обмена crm3-dev ↔ crm3-26 |
|
||||||
|
|
||||||
|
**Поведение:** доработки получения (защита учёта номенклатуры, пропуск обновления видов и складов, нормализация серий) применяются **только** к узлу **«Рабочая CRM3»**. Обмен с **Бухгалтерией** не затрагивается.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1.3.0.37 (2026-07-06)
|
||||||
|
|
||||||
|
### Обмен crm3-dev → crm3-26 — приём данных
|
||||||
|
|
||||||
|
Модуль: `МенеджерОбменаЧерезУниверсальныйФормат`.
|
||||||
|
|
||||||
|
#### Номенклатура
|
||||||
|
|
||||||
|
| Обработчик | Изменение |
|
||||||
|
|------------|-----------|
|
||||||
|
| `&Перед` / `&После` `ПКО_Справочник_Номенклатура_Получение_ПередЗаписьюПолученныхДанных` | для существующей номенклатуры — снимок и восстановление учётных реквизитов целевой ИБ; для новой — заполнение по виду целевой ИБ |
|
||||||
|
| `&После` `ОтложеннаяОбработка_ЗаполнитьНоменклатуру` | повторное восстановление учёта после типовой отложенной обработки |
|
||||||
|
|
||||||
|
Защищаемые реквизиты: `ВидНоменклатуры`, `ОсобенностьУчета`, `ТипНоменклатуры`, `ИспользованиеХарактеристик`, `ВладелецСерий`, `ВладелецХарактеристик`, `ГруппаФинансовогоУчета`, `СкладскаяГруппа`.
|
||||||
|
|
||||||
|
#### Виды номенклатуры и склады
|
||||||
|
|
||||||
|
| Обработчик | Изменение |
|
||||||
|
|------------|-----------|
|
||||||
|
| `&ИзменениеИКонтроль` `ПКО_Справочник_ВидыНоменклатуры_ПередЗаписьюПолученныхДанных` | существующие виды не обновляются (сопоставление по GUID сохраняется) |
|
||||||
|
| `&ИзменениеИКонтроль` `ПКО_Справочник_Склады_Получение_ПередЗаписьюПолученныхДанных` | существующие склады не перезаписываются |
|
||||||
|
|
||||||
|
#### Серии номенклатуры
|
||||||
|
|
||||||
|
| Обработчик | Изменение |
|
||||||
|
|------------|-----------|
|
||||||
|
| `&После` `ДобавитьПКО_Справочник_СерииНоменклатуры` | подключение `РК_ПКО_Справочник_СерииНоменклатуры_ПередЗаписьюПолученныхДанных` |
|
||||||
|
| `РК_ПКО_Справочник_СерииНоменклатуры_ПередЗаписьюПолученныхДанных` | нормализация владельца серии по настройкам вида в целевой ИБ; пропуск при конфликте |
|
||||||
|
|
||||||
|
#### Ставки НДС 22%
|
||||||
|
|
||||||
|
| Обработчик | Изменение |
|
||||||
|
|------------|-----------|
|
||||||
|
| `&После` `ЗаполнитьПравилаКонвертацииПредопределенныхДанных` | ПКПД `Перечисление_СтавкиНДС`: значения `НДС22`, `НДС22_122` |
|
||||||
|
|
||||||
|
**Контекст:** политика защиты учётных настроек целевой ИБ при синхронизации с crm3-dev. Подробнее: `docs/transfer/Анализ_синхронизации_crm3-dev_crm3-26.md` в монорепозитории crm3-26.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1.3.0.36 (2026-07-01)
|
||||||
|
|
||||||
|
### Синхронизация — первичная защита учёта при получении
|
||||||
|
|
||||||
|
Модуль: `МенеджерОбменаЧерезУниверсальныйФормат`.
|
||||||
|
|
||||||
|
- Сохранение учётных реквизитов номенклатуры целевой ИБ при обновлении из crm3-dev.
|
||||||
|
- Существующие склады не перезаписываются данными из пакета обмена.
|
||||||
|
|
||||||
|
*Доработка развита в 1.3.0.37 (виды, серии, отложенная обработка, НДС22) и ограничена узлом CRM3 в 1.3.0.38.*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Связанные объекты расширения (обмен)
|
||||||
|
|
||||||
|
| Модуль | Роль |
|
||||||
|
|--------|------|
|
||||||
|
| `МенеджерОбменаЧерезУниверсальныйФормат` | защита учёта при получении, фильтр узла, ПКПД НДС22 |
|
||||||
@@ -1,10 +1,13 @@
|
|||||||
#Область СлужебныйПрограммныйИнтерфейс
|
#Область СлужебныйПрограммныйИнтерфейс
|
||||||
#Область ПКПД
|
#Область ПКПД
|
||||||
// Заполняет таблицу правил конвертации предопределенных данных.
|
// &После ЗаполнитьПравилаКонвертацииПредопределенныхДанных.
|
||||||
|
// Дополняет правило ПКПД «Перечисление_СтавкиНДС» значениями НДС22 и НДС22_122
|
||||||
|
// для обмена crm3-dev → crm3-26 (EnterpriseData 1.8+).
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// НаправлениеОбмена - Строка - "Отправка" либо "Получение".
|
// НаправлениеОбмена - Строка - "Отправка" либо "Получение".
|
||||||
// ПравилаКонвертации - ТаблицаЗначений - таблица значений, в которую будут добавлены правила.
|
// ПравилаКонвертации - ТаблицаЗначений - таблица правил конвертации предопределённых данных.
|
||||||
|
//
|
||||||
&После("ЗаполнитьПравилаКонвертацииПредопределенныхДанных")
|
&После("ЗаполнитьПравилаКонвертацииПредопределенныхДанных")
|
||||||
Процедура РК_ЗаполнитьПравилаКонвертацииПредопределенныхДанных(НаправлениеОбмена, ПравилаКонвертации)
|
Процедура РК_ЗаполнитьПравилаКонвертацииПредопределенныхДанных(НаправлениеОбмена, ПравилаКонвертации)
|
||||||
ПоискПравилКонвертации = ПравилаКонвертации.НайтиСтроки(
|
ПоискПравилКонвертации = ПравилаКонвертации.НайтиСтроки(
|
||||||
@@ -36,3 +39,408 @@
|
|||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
|
#Область Синхронизация_crm3_dev_crm3_26
|
||||||
|
|
||||||
|
// Ограничения обмена номенклатурой и видами номенклатуры (crm3-dev → crm3-26).
|
||||||
|
// Существующие элементы: не перезаписывать складской/финансовый учёт из источника.
|
||||||
|
// Новые элементы: применить настройки учёта вида номенклатуры целевой ИБ.
|
||||||
|
// См. docs/transfer/Анализ_синхронизации_crm3-dev_crm3-26.md, §3.2.
|
||||||
|
// Доработки применяются только к узлу «Рабочая CRM3» (исходная ИБ), не к Бухгалтерии.
|
||||||
|
|
||||||
|
// GUID узла плана обмена «Рабочая CRM3» в целевой ИБ (crm3).
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Строка - GUID узла корреспондента в нижнем регистре.
|
||||||
|
//
|
||||||
|
Функция РК_УзелCrm3Dev_GUID()
|
||||||
|
Возврат "97cd20ee-bb06-11f0-8dac-0cc47a7d055f";
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// Истина, если текущая сессия обмена — с исходной CRM (crm3_placentapharm), а не с Бухгалтерией.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// КомпонентыОбмена - Структура - контекст текущей сессии обмена.
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Булево - Истина для обмена crm3-dev ↔ crm3-26.
|
||||||
|
//
|
||||||
|
Функция РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена)
|
||||||
|
|
||||||
|
Если КомпонентыОбмена = Неопределено Тогда
|
||||||
|
Возврат Ложь;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Узел = Неопределено;
|
||||||
|
Если КомпонентыОбмена.Свойство("УзелКорреспондента") Тогда
|
||||||
|
Узел = КомпонентыОбмена.УзелКорреспондента;
|
||||||
|
ИначеЕсли КомпонентыОбмена.Свойство("УзелОбмена") Тогда
|
||||||
|
Узел = КомпонентыОбмена.УзелОбмена;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(Узел) Тогда
|
||||||
|
Возврат Ложь;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат НРег(XMLСтрока(Узел.УникальныйИдентификатор())) = РК_УзелCrm3Dev_GUID();
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// Возвращает список реквизитов номенклатуры, подлежащих защите от перезаписи при обмене.
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Строка - имена реквизитов через запятую для конструктора Структура.
|
||||||
|
//
|
||||||
|
Функция РК_УчетныеРеквизитыНоменклатурыДляЗащиты()
|
||||||
|
Возврат "ВидНоменклатуры, ОсобенностьУчета, ТипНоменклатуры, ИспользованиеХарактеристик,"
|
||||||
|
+ "ВладелецСерий, ВладелецХарактеристик, ГруппаФинансовогоУчета, СкладскаяГруппа";
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// Создаёт в параметрах конвертации соответствие для хранения снимков учётных реквизитов номенклатуры.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// КомпонентыОбмена - Структура - контекст текущей сессии обмена (ПараметрыКонвертации).
|
||||||
|
//
|
||||||
|
Процедура РК_ИнициализироватьСнимкиУчетаНоменклатуры(КомпонентыОбмена)
|
||||||
|
Если Не КомпонентыОбмена.ПараметрыКонвертации.Свойство("РК_СнимкиУчетаНоменклатуры") Тогда
|
||||||
|
КомпонентыОбмена.ПараметрыКонвертации.Вставить("РК_СнимкиУчетаНоменклатуры", Новый Соответствие);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Сохраняет снимок учётных реквизитов номенклатуры для последующего восстановления
|
||||||
|
// после типовой обработки и отложенного заполнения.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// СсылкаНоменклатуры - СправочникСсылка.Номенклатура - элемент целевой ИБ.
|
||||||
|
// СнимокУчета - Структура - значения защищаемых реквизитов.
|
||||||
|
// КомпонентыОбмена - Структура - контекст текущей сессии обмена.
|
||||||
|
//
|
||||||
|
Процедура РК_СохранитьСнимокУчетаНоменклатуры(СсылкаНоменклатуры, СнимокУчета, КомпонентыОбмена)
|
||||||
|
РК_ИнициализироватьСнимкиУчетаНоменклатуры(КомпонентыОбмена);
|
||||||
|
КомпонентыОбмена.ПараметрыКонвертации.РК_СнимкиУчетаНоменклатуры.Вставить(СсылкаНоменклатуры, СнимокУчета);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// &Перед ПКО_Справочник_Номенклатура_Получение_ПередЗаписьюПолученныхДанных.
|
||||||
|
// Для существующей в целевой ИБ номенклатуры сохраняет снимок учётных реквизитов
|
||||||
|
// до выполнения типового обработчика получения.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ПолученныеДанные - СправочникОбъект.Номенклатура - данные из пакета обмена.
|
||||||
|
// ДанныеИБ - СправочникОбъект.Номенклатура - существующий объект целевой ИБ; Неопределено для нового.
|
||||||
|
// КонвертацияСвойств - ТаблицаЗначений - правила конвертации свойств ПКО.
|
||||||
|
// КомпонентыОбмена - Структура - контекст текущей сессии обмена.
|
||||||
|
//
|
||||||
|
&Перед("ПКО_Справочник_Номенклатура_Получение_ПередЗаписьюПолученныхДанных")
|
||||||
|
Процедура РК_ПКО_Справочник_Номенклатура_Получение_ПередЗаписью_СохранитьУчет(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена)
|
||||||
|
|
||||||
|
Если Не РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена) Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ДанныеИБ = Неопределено Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СнимокУчета = Новый Структура(РК_УчетныеРеквизитыНоменклатурыДляЗащиты());
|
||||||
|
ЗаполнитьЗначенияСвойств(СнимокУчета, ДанныеИБ);
|
||||||
|
ПолученныеДанные.ДополнительныеСвойства.Вставить("РК_СнимокУчетаНоменклатуры", СнимокУчета);
|
||||||
|
РК_СохранитьСнимокУчетаНоменклатуры(ДанныеИБ.Ссылка, СнимокУчета, КомпонентыОбмена);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// &После ПКО_Справочник_Номенклатура_Получение_ПередЗаписьюПолученныхДанных.
|
||||||
|
// Для существующей номенклатуры восстанавливает учётные реквизиты целевой ИБ из снимка.
|
||||||
|
// Для новой номенклатуры заполняет складской и финансовый учёт по виду номенклатуры целевой ИБ.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ПолученныеДанные - СправочникОбъект.Номенклатура - данные из пакета обмена.
|
||||||
|
// ДанныеИБ - СправочникОбъект.Номенклатура - существующий объект целевой ИБ; Неопределено для нового.
|
||||||
|
// КонвертацияСвойств - ТаблицаЗначений - правила конвертации свойств ПКО.
|
||||||
|
// КомпонентыОбмена - Структура - контекст текущей сессии обмена.
|
||||||
|
//
|
||||||
|
&После("ПКО_Справочник_Номенклатура_Получение_ПередЗаписьюПолученныхДанных")
|
||||||
|
Процедура РК_ПКО_Справочник_Номенклатура_Получение_ПередЗаписью_УчетПослеБазы(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена)
|
||||||
|
|
||||||
|
Если Не РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена) Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ДанныеИБ = Неопределено Тогда
|
||||||
|
// Новая номенклатура: настройки складского и финансового учёта — из вида целевой ИБ.
|
||||||
|
Если ЗначениеЗаполнено(ПолученныеДанные.ВидНоменклатуры) Тогда
|
||||||
|
Справочники.Номенклатура.ЗаполнитьРеквизитыПоВидуНоменклатуры(ПолученныеДанные);
|
||||||
|
КонецЕсли;
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не ПолученныеДанные.ДополнительныеСвойства.Свойство("РК_СнимокУчетаНоменклатуры") Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ЗаполнитьЗначенияСвойств(ДанныеИБ, ПолученныеДанные.ДополнительныеСвойства.РК_СнимокУчетаНоменклатуры);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// &ИзменениеИКонтроль ПКО_Справочник_ВидыНоменклатуры_ПередЗаписьюПолученныхДанных.
|
||||||
|
// Пропускает обновление видов номенклатуры, уже существующих в целевой ИБ
|
||||||
|
// (сопоставление по GUID сохраняется, учётные настройки целевой ИБ не меняются).
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ПолученныеДанные - СправочникОбъект.ВидыНоменклатуры - данные из пакета обмена.
|
||||||
|
// ДанныеИБ - СправочникОбъект.ВидыНоменклатуры - существующий объект целевой ИБ; Неопределено для нового.
|
||||||
|
// КонвертацияСвойств - ТаблицаЗначений - правила конвертации свойств ПКО.
|
||||||
|
// КомпонентыОбмена - Структура - контекст текущей сессии обмена.
|
||||||
|
//
|
||||||
|
&ИзменениеИКонтроль("ПКО_Справочник_ВидыНоменклатуры_ПередЗаписьюПолученныхДанных")
|
||||||
|
Процедура РК_ПКО_Справочник_ВидыНоменклатуры_ПередЗаписьюПолученныхДанных(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена)
|
||||||
|
|
||||||
|
#Вставка
|
||||||
|
Если Не РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена) Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
Если ДанныеИБ <> Неопределено Тогда
|
||||||
|
ПолученныеДанные = Неопределено;
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
#КонецВставки
|
||||||
|
|
||||||
|
ДанныеДляЗаписиВИБ = ?(ДанныеИБ = Неопределено, ПолученныеДанные, ДанныеИБ);
|
||||||
|
|
||||||
|
Если НЕ ЗначениеЗаполнено(ДанныеДляЗаписиВИБ.ВариантОформленияПродажи) Тогда
|
||||||
|
ДанныеДляЗаписиВИБ.ВариантОформленияПродажи = Перечисления.ВариантыОформленияПродажи.РеализацияТоваровУслуг;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если НЕ ЗначениеЗаполнено(ДанныеДляЗаписиВИБ.ИспользованиеХарактеристик) Тогда
|
||||||
|
ДанныеДляЗаписиВИБ.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(ДанныеДляЗаписиВИБ.НастройкиКлючаЦенПоНоменклатуре) Тогда
|
||||||
|
ДанныеДляЗаписиВИБ.НастройкиКлючаЦенПоНоменклатуре = Перечисления.ВариантОтбораДляКлючаЦен.Использовать;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(ДанныеДляЗаписиВИБ.НастройкиКлючаЦенПоХарактеристике) Тогда
|
||||||
|
ДанныеДляЗаписиВИБ.НастройкиКлючаЦенПоХарактеристике = Перечисления.ВариантОтбораДляКлючаЦен.НеИспользовать;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(ДанныеДляЗаписиВИБ.НастройкиКлючаЦенПоСерии) Тогда
|
||||||
|
ДанныеДляЗаписиВИБ.НастройкиКлючаЦенПоСерии = Перечисления.ВариантОтбораДляКлючаЦен.НеИспользовать;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(ДанныеДляЗаписиВИБ.НастройкиКлючаЦенПоУпаковке) Тогда
|
||||||
|
ДанныеДляЗаписиВИБ.НастройкиКлючаЦенПоУпаковке = Перечисления.ВариантОтбораДляКлючаЦен.НеИспользовать;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не ПолученныеДанные.ИспользоватьСерии = Истина Тогда
|
||||||
|
ПолученныеДанные.ИспользоватьСерии = ДанныеДляЗаписиВИБ.ИспользоватьСерии;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// &ИзменениеИКонтроль ПКО_Справочник_Склады_Получение_ПередЗаписьюПолученныхДанных.
|
||||||
|
// Пропускает обновление складов, уже существующих в целевой ИБ
|
||||||
|
// (сопоставление по GUID сохраняется, реквизиты целевого склада не меняются).
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ПолученныеДанные - СправочникОбъект.Склады - данные из пакета обмена.
|
||||||
|
// ДанныеИБ - СправочникОбъект.Склады - существующий объект целевой ИБ; Неопределено для нового.
|
||||||
|
// КонвертацияСвойств - ТаблицаЗначений - правила конвертации свойств ПКО.
|
||||||
|
// КомпонентыОбмена - Структура - контекст текущей сессии обмена.
|
||||||
|
//
|
||||||
|
&ИзменениеИКонтроль("ПКО_Справочник_Склады_Получение_ПередЗаписьюПолученныхДанных")
|
||||||
|
Процедура РК_ПКО_Справочник_Склады_Получение_ПередЗаписьюПолученныхДанных(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена)
|
||||||
|
|
||||||
|
#Вставка
|
||||||
|
Если Не РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена) Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
Если ДанныеИБ <> Неопределено Тогда
|
||||||
|
ПолученныеДанные = Неопределено;
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
#КонецВставки
|
||||||
|
|
||||||
|
ЗагрузитьДополнительныеСведения(?(ДанныеИБ = Неопределено, ПолученныеДанные.ПолучитьСсылкуНового(), ДанныеИБ.Ссылка),
|
||||||
|
ПолученныеДанные.ДополнительныеСвойства, КомпонентыОбмена);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// &После ОтложеннаяОбработка_ЗаполнитьНоменклатуру.
|
||||||
|
// Восстанавливает учётные реквизиты номенклатуры из снимков после типовой отложенной обработки,
|
||||||
|
// которая перезаписывает ИспользованиеХарактеристик значением из вида номенклатуры.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// КомпонентыОбмена - Структура - контекст текущей сессии обмена (ПараметрыКонвертации.РК_СнимкиУчетаНоменклатуры).
|
||||||
|
//
|
||||||
|
&После("ОтложеннаяОбработка_ЗаполнитьНоменклатуру")
|
||||||
|
Процедура РК_ОтложеннаяОбработка_ВосстановитьУчетНоменклатуры(КомпонентыОбмена)
|
||||||
|
|
||||||
|
Если Не РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена) Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не КомпонентыОбмена.ПараметрыКонвертации.Свойство("РК_СнимкиУчетаНоменклатуры") Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Снимки = КомпонентыОбмена.ПараметрыКонвертации.РК_СнимкиУчетаНоменклатуры;
|
||||||
|
Если Снимки.Количество() = 0 Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Для Каждого КлючИЗначение Из Снимки Цикл
|
||||||
|
НоменклатураСсылка = КлючИЗначение.Ключ;
|
||||||
|
СнимокУчета = КлючИЗначение.Значение;
|
||||||
|
Если Не ОбщегоНазначения.СсылкаСуществует(НоменклатураСсылка) Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
НоменклатураОбъект = НоменклатураСсылка.ПолучитьОбъект();
|
||||||
|
ЗаполнитьЗначенияСвойств(НоменклатураОбъект, СнимокУчета);
|
||||||
|
НоменклатураОбъект.ОбменДанными.Загрузка = Истина;
|
||||||
|
Попытка
|
||||||
|
НоменклатураОбъект.Записать();
|
||||||
|
Исключение
|
||||||
|
ЗаписатьОшибкуВЖурналРегистрации(НоменклатураСсылка,
|
||||||
|
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), КомпонентыОбмена);
|
||||||
|
КонецПопытки;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Возвращает владельца серий для вида номенклатуры в целевой ИБ
|
||||||
|
// (с учётом НастройкиСерийБерутсяИзДругогоВидаНоменклатуры).
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ВидНоменклатуры - СправочникСсылка.ВидыНоменклатуры - вид из пакета обмена или номенклатуры.
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// СправочникСсылка.ВидыНоменклатуры - вид-владелец для справочника СерииНоменклатуры.
|
||||||
|
//
|
||||||
|
Функция РК_ВладелецСерийДляВидаНоменклатуры(ВидНоменклатуры)
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(ВидНоменклатуры) Тогда
|
||||||
|
Возврат Справочники.ВидыНоменклатуры.ПустаяСсылка();
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
НастройкиСерий = Справочники.ВидыНоменклатуры.НастройкиИспользованияСерий(ВидНоменклатуры);
|
||||||
|
ВладелецСерий = НастройкиСерий.ВладелецСерий;
|
||||||
|
Если Не ЗначениеЗаполнено(ВладелецСерий) Тогда
|
||||||
|
ВладелецСерий = ВидНоменклатуры;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат ВладелецСерий;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// &После ДобавитьПКО_Справочник_СерииНоменклатуры.
|
||||||
|
// Подключает обработчик проверки владельца серии при получении из пакета обмена.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ПравилаКонвертации - ТаблицаЗначений - таблица правил конвертации объектов.
|
||||||
|
//
|
||||||
|
&После("ДобавитьПКО_Справочник_СерииНоменклатуры")
|
||||||
|
Процедура РК_ДобавитьПКО_Справочник_СерииНоменклатуры_УстановитьПередЗаписью(ПравилаКонвертации)
|
||||||
|
|
||||||
|
СтрокиПКО = ПравилаКонвертации.НайтиСтроки(Новый Структура("ИмяПКО", "Справочник_СерииНоменклатуры"));
|
||||||
|
Если СтрокиПКО.Количество() = 0 Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СтрокиПКО[0].ПередЗаписьюПолученныхДанных = "РК_ПКО_Справочник_СерииНоменклатуры_ПередЗаписьюПолученныхДанных";
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// ПКО Справочник_СерииНоменклатуры — ПередЗаписьюПолученныхДанных.
|
||||||
|
// Проверяет и нормализует привязку серии к виду-владельцу в целевой ИБ.
|
||||||
|
// При несовпадении владельца у сопоставленной по полям поиска серии — пропуск записи.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ПолученныеДанные - СправочникОбъект.СерииНоменклатуры - данные из пакета обмена.
|
||||||
|
// ДанныеИБ - СправочникОбъект.СерииНоменклатуры - существующий объект; Неопределено для нового.
|
||||||
|
// КонвертацияСвойств - ТаблицаЗначений - правила конвертации свойств ПКО.
|
||||||
|
// КомпонентыОбмена - Структура - контекст текущей сессии обмена.
|
||||||
|
//
|
||||||
|
Процедура РК_ПКО_Справочник_СерииНоменклатуры_ПередЗаписьюПолученныхДанных(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена)
|
||||||
|
|
||||||
|
Если Не РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена) Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ПолученныеДанные = Неопределено Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(ПолученныеДанные.ВидНоменклатуры) Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КорректныйВладелец = РК_ВладелецСерийДляВидаНоменклатуры(ПолученныеДанные.ВидНоменклатуры);
|
||||||
|
Если Не ЗначениеЗаполнено(КорректныйВладелец) Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СсылкаДляЖурнала = ?(ДанныеИБ = Неопределено, ПолученныеДанные.ПолучитьСсылкуНового(), ДанныеИБ.Ссылка);
|
||||||
|
|
||||||
|
Если ДанныеИБ <> Неопределено Тогда
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ДанныеИБ.ВидНоменклатуры)
|
||||||
|
И ДанныеИБ.ВидНоменклатуры <> КорректныйВладелец
|
||||||
|
И ПолученныеДанные.ВидНоменклатуры <> ДанныеИБ.ВидНоменклатуры Тогда
|
||||||
|
|
||||||
|
ТекстОшибки = СтрШаблон(
|
||||||
|
"Неверная привязка серии по владельцу: в ИБ %1, из пакета (норм.) %2, наименование ""%3"", номер ""%4"".",
|
||||||
|
ДанныеИБ.ВидНоменклатуры,
|
||||||
|
КорректныйВладелец,
|
||||||
|
ПолученныеДанные.Наименование,
|
||||||
|
ПолученныеДанные.Номер);
|
||||||
|
ЗаписатьОшибкуВЖурналРегистрации(СсылкаДляЖурнала, ТекстОшибки, КомпонентыОбмена,
|
||||||
|
НСтр("ru = 'записать серию номенклатуры'"), УровеньЖурналаРегистрации.Предупреждение);
|
||||||
|
ПолученныеДанные = Неопределено;
|
||||||
|
Возврат;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ДанныеИБ.ВидНоменклатуры) Тогда
|
||||||
|
ПолученныеДанные.ВидНоменклатуры = ДанныеИБ.ВидНоменклатуры;
|
||||||
|
Иначе
|
||||||
|
ПолученныеДанные.ВидНоменклатуры = КорректныйВладелец;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
ПолученныеДанные.ВидНоменклатуры = КорректныйВладелец;
|
||||||
|
|
||||||
|
Запрос = Новый Запрос;
|
||||||
|
Запрос.Текст =
|
||||||
|
"ВЫБРАТЬ ПЕРВЫЕ 1
|
||||||
|
| Серии.Ссылка КАК Ссылка
|
||||||
|
|ИЗ
|
||||||
|
| Справочник.СерииНоменклатуры КАК Серии
|
||||||
|
|ГДЕ
|
||||||
|
| Серии.ВидНоменклатуры = &Владелец
|
||||||
|
| И НЕ Серии.ПометкаУдаления
|
||||||
|
| И (Серии.Наименование = &Наименование
|
||||||
|
| ИЛИ Серии.Номер = &Номер
|
||||||
|
| И &НомерЗаполнен)";
|
||||||
|
Запрос.УстановитьПараметр("Владелец", КорректныйВладелец);
|
||||||
|
Запрос.УстановитьПараметр("Наименование", ПолученныеДанные.Наименование);
|
||||||
|
Запрос.УстановитьПараметр("Номер", ПолученныеДанные.Номер);
|
||||||
|
Запрос.УстановитьПараметр("НомерЗаполнен", ЗначениеЗаполнено(ПолученныеДанные.Номер));
|
||||||
|
|
||||||
|
Выборка = Запрос.Выполнить().Выбрать();
|
||||||
|
Если Выборка.Следующий()
|
||||||
|
И Выборка.Ссылка <> СсылкаДляЖурнала Тогда
|
||||||
|
|
||||||
|
ТекстОшибки = СтрШаблон(
|
||||||
|
"Серия с наименованием ""%1"" уже существует у владельца %2 (%3), GUID отличается от пакета.",
|
||||||
|
ПолученныеДанные.Наименование,
|
||||||
|
КорректныйВладелец,
|
||||||
|
Выборка.Ссылка);
|
||||||
|
ЗаписатьОшибкуВЖурналРегистрации(СсылкаДляЖурнала, ТекстОшибки, КомпонентыОбмена,
|
||||||
|
НСтр("ru = 'создать серию номенклатуры'"), УровеньЖурналаРегистрации.Предупреждение);
|
||||||
|
ПолученныеДанные = Неопределено;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
|
|||||||
@@ -7,8 +7,8 @@
|
|||||||
<Metadata name="ChartOfCharacteristicTypes.ДополнительныеРеквизитыИСведения" id="e8b79bd5-f8ca-47e3-bcfd-1d84a4a64ee2" configVersion="3cadb32ee44e159e252e947f116f05b8f99ae1c4"/>
|
<Metadata name="ChartOfCharacteristicTypes.ДополнительныеРеквизитыИСведения" id="e8b79bd5-f8ca-47e3-bcfd-1d84a4a64ee2" configVersion="3cadb32ee44e159e252e947f116f05b8f99ae1c4"/>
|
||||||
<Metadata name="CommonForm.РК_ФормаНастроекРана" id="5688e1b9-1552-45cc-b539-1f4cc3765e8a" configVersion="8ac3163937f01f9604c7a57e9dc814b6d466b5ac"/>
|
<Metadata name="CommonForm.РК_ФормаНастроекРана" id="5688e1b9-1552-45cc-b539-1f4cc3765e8a" configVersion="8ac3163937f01f9604c7a57e9dc814b6d466b5ac"/>
|
||||||
<Metadata name="CommonForm.РК_ФормаНастроекРана.Form" id="5688e1b9-1552-45cc-b539-1f4cc3765e8a.0" configVersion="ea9a4ab0f585a6af14dc4941cc5fd2e48f221b6a"/>
|
<Metadata name="CommonForm.РК_ФормаНастроекРана.Form" id="5688e1b9-1552-45cc-b539-1f4cc3765e8a.0" configVersion="ea9a4ab0f585a6af14dc4941cc5fd2e48f221b6a"/>
|
||||||
<Metadata name="CommonModule.МенеджерОбменаЧерезУниверсальныйФормат" id="46adff34-2644-4eb3-99a7-e969dbdf8496" configVersion="07b90dd15d056182292ae6260cadd6aec5c3567b"/>
|
<Metadata name="CommonModule.МенеджерОбменаЧерезУниверсальныйФормат" id="46adff34-2644-4eb3-99a7-e969dbdf8496" configVersion="0e38e0f4d63c0c4783d0c8935de492efee1e4863"/>
|
||||||
<Metadata name="CommonModule.МенеджерОбменаЧерезУниверсальныйФормат.Module" id="46adff34-2644-4eb3-99a7-e969dbdf8496.0" configVersion="edb6107ec1cdb48f26f4b589d8f53646b44e7351"/>
|
<Metadata name="CommonModule.МенеджерОбменаЧерезУниверсальныйФормат.Module" id="46adff34-2644-4eb3-99a7-e969dbdf8496.0" configVersion="89e8efb209d7477a14ca8b50b3aa0065918e53b7"/>
|
||||||
<Metadata name="CommonModule.ОбщегоНазначенияКлиентСервер" id="1afe1653-696f-47e3-9bea-df7b84bd077c" configVersion="a3b2d57b152d8cd275a412ddf1479ac90b35402d"/>
|
<Metadata name="CommonModule.ОбщегоНазначенияКлиентСервер" id="1afe1653-696f-47e3-9bea-df7b84bd077c" configVersion="a3b2d57b152d8cd275a412ddf1479ac90b35402d"/>
|
||||||
<Metadata name="CommonModule.ОбщегоНазначенияКлиентСервер.Module" id="1afe1653-696f-47e3-9bea-df7b84bd077c.0" configVersion="74e1779aaae2e2e61a3957d284da0d61b1e34d41"/>
|
<Metadata name="CommonModule.ОбщегоНазначенияКлиентСервер.Module" id="1afe1653-696f-47e3-9bea-df7b84bd077c.0" configVersion="74e1779aaae2e2e61a3957d284da0d61b1e34d41"/>
|
||||||
<Metadata name="CommonModule.РК_ОбщегоНазначения" id="6bfc7b15-6995-43ad-96c6-a97569f2d5a4" configVersion="c11a335f853a42165758cfe7995f2ee06a9010f7"/>
|
<Metadata name="CommonModule.РК_ОбщегоНазначения" id="6bfc7b15-6995-43ad-96c6-a97569f2d5a4" configVersion="c11a335f853a42165758cfe7995f2ee06a9010f7"/>
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
<Metadata name="CommonPicture.ПодписанЗашифрованСостояния" id="a0bd1007-a115-4d79-8160-d4f59cd57ffb" configVersion="08ed86b1653fc955004b703d7dce5d947956fdda"/>
|
<Metadata name="CommonPicture.ПодписанЗашифрованСостояния" id="a0bd1007-a115-4d79-8160-d4f59cd57ffb" configVersion="08ed86b1653fc955004b703d7dce5d947956fdda"/>
|
||||||
<Metadata name="CommonPicture.СерииНоменклатурыКолонкаСтатусов" id="f2badc5e-4af7-4c05-be31-b4d5b7642ab5" configVersion="d070fbc999630568abec9d83770ed805666a24d9"/>
|
<Metadata name="CommonPicture.СерииНоменклатурыКолонкаСтатусов" id="f2badc5e-4af7-4c05-be31-b4d5b7642ab5" configVersion="d070fbc999630568abec9d83770ed805666a24d9"/>
|
||||||
<Metadata name="CommonPicture.СтатусыУказанияСерий" id="cc5cab6d-e293-4890-a422-6e8cd2fb58bb" configVersion="17b11a4c6ec74254745177f7c136d38af0214bdf"/>
|
<Metadata name="CommonPicture.СтатусыУказанияСерий" id="cc5cab6d-e293-4890-a422-6e8cd2fb58bb" configVersion="17b11a4c6ec74254745177f7c136d38af0214bdf"/>
|
||||||
<Metadata name="Configuration.crm326RHANA" id="ef31d55b-3788-4972-affb-b7aefd3838aa" configVersion="1f13c87c612c4f51bf2f028c914b958f76b6121c"/>
|
<Metadata name="Configuration.crm326RHANA" id="ef31d55b-3788-4972-affb-b7aefd3838aa" configVersion="2910b5ccbb9d930f0716a494a2b44068db7db4d4"/>
|
||||||
<Metadata name="Configuration.crm326RHANA.CommandInterface" id="39a8728d-cfaf-46d0-959f-980e396b5018.a" configVersion="fdaec039eea90396e8275a4185f01ff2ce9f09af"/>
|
<Metadata name="Configuration.crm326RHANA.CommandInterface" id="39a8728d-cfaf-46d0-959f-980e396b5018.a" configVersion="fdaec039eea90396e8275a4185f01ff2ce9f09af"/>
|
||||||
<Metadata name="Configuration.crm326RHANA.MainSectionCommandInterface" id="39a8728d-cfaf-46d0-959f-980e396b5018.9" configVersion="fdaec039eea90396e8275a4185f01ff2ce9f09af"/>
|
<Metadata name="Configuration.crm326RHANA.MainSectionCommandInterface" id="39a8728d-cfaf-46d0-959f-980e396b5018.9" configVersion="fdaec039eea90396e8275a4185f01ff2ce9f09af"/>
|
||||||
<Metadata name="Constant.РК_РежимОтладкиРана" id="32d682cc-7aeb-45c8-abc6-68fef7f36011" configVersion="a12fe879a2594e605228c43059bb3a72d30fa471"/>
|
<Metadata name="Constant.РК_РежимОтладкиРана" id="32d682cc-7aeb-45c8-abc6-68fef7f36011" configVersion="a12fe879a2594e605228c43059bb3a72d30fa471"/>
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
<xr:Item xsi:type="xr:MDObjectRef">Role.РК_ОсновнаяРоль</xr:Item>
|
<xr:Item xsi:type="xr:MDObjectRef">Role.РК_ОсновнаяРоль</xr:Item>
|
||||||
</DefaultRoles>
|
</DefaultRoles>
|
||||||
<Vendor/>
|
<Vendor/>
|
||||||
<Version>1.3.0.35</Version>
|
<Version>1.3.0.38</Version>
|
||||||
<DefaultStyle/>
|
<DefaultStyle/>
|
||||||
<DefaultLanguage>Language.Русский</DefaultLanguage>
|
<DefaultLanguage>Language.Русский</DefaultLanguage>
|
||||||
<BriefInformation/>
|
<BriefInformation/>
|
||||||
|
|||||||
Reference in New Issue
Block a user