1.3.1.126: #36 — серии ввода остатков в окно распределения.
Лаеннек остаётся в колонке «Серия». Строки без характеристики с одной серией и ГТД сворачиваются. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -4,6 +4,14 @@
|
||||
|
||||
---
|
||||
|
||||
## 1.3.1.126 (2026-10-09)
|
||||
|
||||
### #36: серии ввода остатков
|
||||
|
||||
- Тип «учёт себестоимости по сериям» (лаеннек) — серия в колонке строки.
|
||||
- Тип «управление остатками серий» — колонка пустая, количество в табличной части «Серии» с тем же идентификатором строки.
|
||||
- Строки без характеристики с одной серией и одним ГТД сворачиваются.
|
||||
|
||||
## 1.3.1.125 (2026-10-07)
|
||||
|
||||
### #68: явный отказ партнёр-веток вне узла crm3-dev
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
<xr:Item xsi:type="xr:MDObjectRef">Role.РК_ОсновнаяРоль</xr:Item>
|
||||
</DefaultRoles>
|
||||
<Vendor/>
|
||||
<Version>1.3.1.125</Version>
|
||||
<Version>1.3.1.126</Version>
|
||||
<DefaultStyle/>
|
||||
<DefaultLanguage>Language.Русский</DefaultLanguage>
|
||||
<BriefInformation/>
|
||||
|
||||
@@ -1096,6 +1096,7 @@
|
||||
Исключение
|
||||
КонецПопытки;
|
||||
|
||||
СтрокиСклада = СвернутьСтрокиБезХарактеристики(СтрокиСклада);
|
||||
Для Каждого СтрТ Из СтрокиСклада Цикл
|
||||
ДобавитьСтрокуТоваровДокументаВвода(Док, СтрТ);
|
||||
КонецЦикла;
|
||||
@@ -1168,6 +1169,7 @@
|
||||
Исключение
|
||||
КонецПопытки;
|
||||
|
||||
СтрокиГруппы = СвернутьСтрокиБезХарактеристики(СтрокиГруппы);
|
||||
Для Каждого СтрТ Из СтрокиГруппы Цикл
|
||||
ДобавитьСтрокуТоваровДокументаВвода(Док, СтрТ);
|
||||
КонецЦикла;
|
||||
@@ -1204,7 +1206,14 @@
|
||||
НовСтр = Док.Товары.Добавить();
|
||||
НовСтр.Номенклатура = СтрТ.Номенклатура;
|
||||
НовСтр.Характеристика = СтрТ.Характеристика;
|
||||
СкладПолитики = СтрТ.Склад;
|
||||
Если Не ЗначениеЗаполнено(СкладПолитики) Тогда
|
||||
СкладПолитики = Док.Склад;
|
||||
КонецЕсли;
|
||||
// Учёт себестоимости по сериям — колонка «Серия». Управление остатками — окно (ТЧ Серии).
|
||||
Если СерияУказываетсяВКолонке(Док, СтрТ.Номенклатура, СкладПолитики) Тогда
|
||||
НовСтр.Серия = СтрТ.СерияСсылка;
|
||||
КонецЕсли;
|
||||
НовСтр.Количество = КолДок;
|
||||
НовСтр.КоличествоУпаковок = КолДок;
|
||||
НовСтр.Сумма = СтрТ.Стоимость;
|
||||
@@ -1225,16 +1234,112 @@
|
||||
НовСтр.НомерГТД = СтрТ.НомерГТДСсылка;
|
||||
КонецЕсли;
|
||||
Если ЗначениеЗаполнено(СтрТ.СерияСсылка) Тогда
|
||||
Если Не ЗначениеЗаполнено(НовСтр.ИдентификаторСтроки) Тогда
|
||||
НовСтр.ИдентификаторСтроки = Строка(Новый УникальныйИдентификатор);
|
||||
КонецЕсли;
|
||||
СтрСер = Док.Серии.Добавить();
|
||||
СтрСер.Номенклатура = НовСтр.Номенклатура;
|
||||
СтрСер.Характеристика = НовСтр.Характеристика;
|
||||
СтрСер.Серия = СтрТ.СерияСсылка;
|
||||
СтрСер.Количество = НовСтр.Количество;
|
||||
СтрСер.КоличествоУпаковок = НовСтр.Количество;
|
||||
СтрСер.ИдентификаторСтроки = НовСтр.ИдентификаторСтроки;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция СерияУказываетсяВКолонке(Док, Номенклатура, Склад)
|
||||
|
||||
Кэш = Неопределено;
|
||||
Если Не Док.ДополнительныеСвойства.Свойство("КэшСерияВКолонке", Кэш) Тогда
|
||||
Кэш = Новый Соответствие;
|
||||
Док.ДополнительныеСвойства.Вставить("КэшСерияВКолонке", Кэш);
|
||||
КонецЕсли;
|
||||
|
||||
КлючСклада = "";
|
||||
Если ЗначениеЗаполнено(Склад) Тогда
|
||||
КлючСклада = Строка(Склад.УникальныйИдентификатор());
|
||||
КонецЕсли;
|
||||
Ключ = Строка(Номенклатура.УникальныйИдентификатор()) + "|" + КлючСклада;
|
||||
ЗначениеКэша = Кэш.Получить(Ключ);
|
||||
Если ЗначениеКэша <> Неопределено Тогда
|
||||
Возврат ЗначениеКэша;
|
||||
КонецЕсли;
|
||||
|
||||
ТипПолитики = Неопределено;
|
||||
Вид = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Номенклатура, "ВидНоменклатуры");
|
||||
Если ЗначениеЗаполнено(Вид) И ЗначениеЗаполнено(Склад) Тогда
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ ПЕРВЫЕ 1
|
||||
| Пол.ПолитикаУчетаСерий.ТипПолитики КАК ТипПолитики
|
||||
|ИЗ
|
||||
| Справочник.ВидыНоменклатуры.ПолитикиУчетаСерий КАК Пол
|
||||
|ГДЕ
|
||||
| Пол.Ссылка = &Вид
|
||||
| И Пол.Склад = &Склад
|
||||
| И Пол.ПолитикаУчетаСерий <> ЗНАЧЕНИЕ(Справочник.ПолитикиУчетаСерий.ПустаяСсылка)";
|
||||
Запрос.УстановитьПараметр("Вид", Вид);
|
||||
Запрос.УстановитьПараметр("Склад", Склад);
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
Если Выборка.Следующий() Тогда
|
||||
ТипПолитики = Выборка.ТипПолитики;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Если Не ЗначениеЗаполнено(ТипПолитики) И ЗначениеЗаполнено(Вид) Тогда
|
||||
Политика = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Вид, "ПолитикаУчетаСерий");
|
||||
Если ЗначениеЗаполнено(Политика) Тогда
|
||||
ТипПолитики = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Политика, "ТипПолитики");
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ВКолонке = ТипПолитики = Перечисления.ТипыПолитикУказанияСерий.УчетСебестоимостиПоСериям
|
||||
Или ТипПолитики = Перечисления.ТипыПолитикУказанияСерий.СправочноеУказаниеСерий;
|
||||
Кэш.Вставить(Ключ, ВКолонке);
|
||||
Возврат ВКолонке;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СвернутьСтрокиБезХарактеристики(Строки)
|
||||
|
||||
Результат = Новый Массив;
|
||||
Индекс = Новый Соответствие;
|
||||
Для Каждого СтрТ Из Строки Цикл
|
||||
Если ЗначениеЗаполнено(СтрТ.Характеристика) Или Не ЗначениеЗаполнено(СтрТ.СерияСсылка) Тогда
|
||||
Результат.Добавить(СтрТ);
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
КлючГТД = "";
|
||||
Если ЗначениеЗаполнено(СтрТ.НомерГТДСсылка) Тогда
|
||||
КлючГТД = Строка(СтрТ.НомерГТДСсылка.УникальныйИдентификатор());
|
||||
КонецЕсли;
|
||||
Ключ = Строка(СтрТ.Номенклатура.УникальныйИдентификатор())
|
||||
+ "|" + Строка(СтрТ.СерияСсылка.УникальныйИдентификатор())
|
||||
+ "|" + КлючГТД;
|
||||
Уже = Индекс.Получить(Ключ);
|
||||
Если Уже = Неопределено Тогда
|
||||
Индекс.Вставить(Ключ, СтрТ);
|
||||
Результат.Добавить(СтрТ);
|
||||
Иначе
|
||||
Уже.Количество = КоличествоСтрокиВвода(Уже) + КоличествоСтрокиВвода(СтрТ);
|
||||
Уже.КоличествоОрганизации = Уже.Количество;
|
||||
Уже.Стоимость = Уже.Стоимость + СтрТ.Стоимость;
|
||||
Уже.СтоимостьРегл = Уже.СтоимостьРегл + СтрТ.СтоимостьРегл;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КоличествоСтрокиВвода(СтрТ)
|
||||
|
||||
Если СтрТ.КоличествоОрганизации <> 0 Тогда
|
||||
Возврат СтрТ.КоличествоОрганизации;
|
||||
КонецЕсли;
|
||||
Возврат СтрТ.Количество;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Расчёт СуммаНДС / СуммаСНДС / СуммаБезНДС / НДСРегл после заполнения строк (#33).
|
||||
// Штатный путь — ПакетнаяОбработкаТабличнойЧасти (как в форме/модуле ВводОстатковТоваров).
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user