Всем привет!
Конфигурация: 1С: Управление торговлей алкогольной продукцией 8, редакция 11.2 (11.2.3.267)
После перехода с 11.1 на 11.2, возникли проблемы с сериями, а именно в стандартном механизме подбора серий, не совпадают данные общего остатка номенклатуры с учетом серий и остатки по сериям.
Пример на скриншете.
Причем цифры расходятся непонятным образом, может быть остаток по сериям больше фактического наличия и наоборот.
Может кто сталкивался, как исправить эту проблему?
Конфигурация: 1С: Управление торговлей алкогольной продукцией 8, редакция 11.2 (11.2.3.267)
После перехода с 11.1 на 11.2, возникли проблемы с сериями, а именно в стандартном механизме подбора серий, не совпадают данные общего остатка номенклатуры с учетом серий и остатки по сериям.
Пример на скриншете.
Причем цифры расходятся непонятным образом, может быть остаток по сериям больше фактического наличия и наоборот.
Может кто сталкивался, как исправить эту проблему?
Прикрепленные файлы:

По теме из базы знаний
- Перенос данных из УПП 1.3 в ERP 2 / УТ 11 / КА 2. Переносятся документы, справочная информация и остатки
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2/3.0
- Обмен УПП 1.3, КА 1.1, УТ 10.3 с EnterpriseData (универсальный формат обмена) ED2
- Подсистема "Входной контроль" в 1С:ERP/КА/УТ
- SynchroSber - полноценный модуль API интеграции с маркетплейсом Мегамаркет (СберМегаМаркет) для 1С УТ 11.X, КА 2.X, ERP 2.X, УНФ 1.6, 3.0 (возможность работы как с публикацией, так и без публикации базы)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
уже есть более новые версии с исправленными багами 11.2.3.300
Возможно это поможет:
Данная ошибка Исправлена: "1С:Управление торговлей 11", версия 11.3.3
Возможно это поможет:
Данная ошибка Исправлена: "1С:Управление торговлей 11", версия 11.3.3
В процессе выполнения обновления УТ с 11.1 на 11.2 не осуществляется создание Актов о расхождения после реализации, на основании документов Реализации товаров и Услуг, в шапке которых указана группа складов. В результате чего некорректно отражаются сведения о доступных остатках на складах.
Способ исправления:
Для исправления ошибки в модуле менеджера документа РеализацияТоваровУслуг нужно заменить процедуры ДанныеДляОбновленияПеренестиРасхожденияВАкты() и ПеренестиРасхожденияВАкты на нижеприведенные:
Процедура ДанныеДляОбновленияПеренестиРасхожденияВАкты(Параметры) Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТоварыРасхождения.Ссылка КАК Ссылка
|ИЗ
| Документ.РеализацияТоваровУслуг.УдалитьРасхожденияТовары КАК ТоварыРасхождения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Накладная
| ПО (Накладная.Ссылка = ТоварыРасхождения.Ссылка)
| И (Накладная.Проведен)
|ГДЕ
| ТоварыРасхождения.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке
| И Накладная.Дата >= ТоварыРасхождения.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке
| И (ТоварыРасхождения.КоличествоРасхождение <> 0
| ИЛИ ТоварыРасхождения.ЕстьРасхождениеПоСериям = 1)";
ОбновлениеИнформационнойБазы.ОтметитьКОбработке(
Параметры,
Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
КонецПроцедуры
Процедура ПеренестиРасхожденияВАкты(Параметры) Экспорт
ПолноеИмяДокумента = "Документ.РеализацияТоваровУслуг";
ТекстЗапроса =
"ВЫБРАТЬ
| ЗНАЧЕНИЕ(Перечисление.СтатусыАктаОРасхождениях.Отработано) КАК Статус,
| ЗНАЧЕНИЕ(Перечисление.ТипыОснованияАктаОРасхождении.РеализацияТоваровУслуг)
| КАК ТипОснованияАктаОРасхождении,
| ЗНАЧЕНИЕ(Перечисление.СпособыОтраженияРасхожденийАктПриемкиКлиента.ИсправлениеПервичныхДокументов)
| КАК СпособОтраженияРасхождений,
|
| Накладная.Ссылка КАК Реализация,
| Накладная.ВерсияДанных КАК ВерсияДанных,
| КОНЕЦПЕРИОДА(Накладная.Дата, ДЕНЬ) КАК Дата,
| Накладная.Организация КАК Организация,
| Накладная.Контрагент КАК Контрагент,
| Накладная.Менеджер КАК Менеджер,
| Накладная.НалогообложениеНДС КАК НалогообложениеНДС,
| Накладная.Партнер КАК Партнер,
| Накладная.Валюта КАК Валюта,
| ПРЕДСТАВЛЕНИЕ(Накладная.Грузоотправитель) КАК Грузоотправитель,
| Накладная.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| Накладная.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| Накладная.Договор КАК Договор,
| Накладная.КонтактноеЛицо КАК КонтактноеЛицо,
| Накладная.Соглашение КАК Соглашение,
|
| ТоварыРасхождения.НомерСтроки КАК НомерСтроки,
| ТоварыРасхождения.Номенклатура КАК Номенклатура,
| ТоварыРасхождения.Характеристика КАК Характеристика,
| ТоварыРасхождения.Назначение КАК Назначение,
| ТоварыРасхождения.Склад КАК Склад,
| ТоварыРасхождения.Серия КАК Серия,
| ТоварыРасхождения.СтатусУказанияСерий КАК СтатусУказанияСерий,
| ТоварыРасхождения.Ссылка КАК ДокументОснование,
| ВЫБОР КОГДА ТоварыРасхождения.КоличествоПринято - ТоварыРасхождения.КоличествоРасхождение = 0
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ЗаполненоПоРеализации,
| ТоварыРасхождения.КоличествоПринято - ТоварыРасхождения.КоличествоРасхождение
| КАК КоличествоУпаковокПоДокументу,
| ТоварыРасхождения.КоличествоПринято - ТоварыРасхождения.КоличествоРасхождение
| КАК КоличествоПоДокументу,
| ТоварыРасхождения.КоличествоПринято КАК КоличествоУпаковок,
| ТоварыРасхождения.КоличествоПринято КАК Количество,
|
| ВЫБОР
| КОГДА НЕ ТоварыРасхождения.ДокументРезерваСерий В (&ПустоеЗначениеЗаказа)
| ТОГДА ТоварыРасхождения.ДокументРезерваСерий
| ИНАЧЕ ЕСТЬNULL(ТоварыНакладной.ЗаказКлиента, НЕОПРЕДЕЛЕНО)
| КОНЕЦ КАК ЗаказКлиента,
| ВЫБОР
| КОГДА ТоварыРасхождения.ДокументРезерваСерий В (&ПустоеЗначениеЗаказа)
| И ТоварыНакладной.ЗаказКлиента ЕСТЬ NULL
| И Накладная.РеализацияПоЗаказам
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК НеизвестенЗаказВСтрокеНакладнойВведеннойПоЗаказу,
| ЕСТЬNULL(ТоварыНакладной.КодСтроки, ТоварыРасхождения.КодСтроки)
| КАК КодСтроки
|ИЗ
| &ВТДокументыДляОбработки КАК СсылкиДляОбработки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Накладная
| ПО (Накладная.Ссылка = СсылкиДляОбработки.Ссылка)
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.УдалитьРасхожденияТовары КАК ТоварыРасхождения
| ПО (Накладная.Ссылка = ТоварыРасхождения.Ссылка)
| И (Накладная.Проведен)
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК ТоварыНакладной
| ПО (ТоварыНакладной.Ссылка = ТоварыРасхождения.Ссылка)
| И (ТоварыНакладной.ИдентификаторСтроки = ТоварыРасхождения.ИдентификаторСтроки)
|ГДЕ
| ТоварыРасхождения.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке
| И Накладная.Дата >= ТоварыРасхождения.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке
| И (ТоварыРасхождения.КоличествоРасхождение <> 0
| ИЛИ ТоварыРасхождения.ЕстьРасхождениеПоСериям = 1)
|
|УПОРЯДОЧИТЬ ПО
| ДокументОснование,
| ТоварыРасхождения.НомерСтроки УБЫВ
|
|;
|/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| СсылкиДляОбработки.Ссылка
| ИЗ &ВТДокументыДляОбработки КАК СсылкиДляОбработки
|
|;
|/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ДокументыОснования.Ссылка КАК ДокументОснование,
| АктОРасхожденияхПослеОтгрузкиТовары.Ссылка КАК Акт
|ИЗ
| &ВТДокументыДляОбработки КАК СсылкиДляОбработки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК ДокументыОснования
| ПО ДокументыОснования.Ссылка = СсылкиДляОбработки.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктОРасхожденияхПослеОтгрузки.Товары КАК АктОРасхожденияхПослеОтгрузкиТовары
| ПО (АктОРасхожденияхПослеОтгрузкиТовары.Реализация = ДокументыОснования.Ссылка)
|ГДЕ
| НЕ АктОРасхожденияхПослеОтгрузкиТовары.Ссылка ЕСТЬ NULL
| И АктОРасхожденияхПослеОтгрузкиТовары.Ссылка.Проведен
|ИТОГИ ПО
| ДокументОснование";
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Результат = ОбновлениеИнформационнойБазы.СоздатьВременнуюТаблицуСсылокДляОбработки(Параметры.Очередь, ПолноеИмяДокумента, МенеджерВременныхТаблиц);
Если НЕ Результат.ЕстьДанныеДляОбработки Тогда
Параметры.ОбработкаЗавершена = Истина;
Возврат;
КонецЕсли;
Если НЕ Результат.ЕстьЗаписиВоВременнойТаблице Тогда
Параметры.ОбработкаЗавершена = Ложь;
Возврат;
КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ВТДокументыДляОбработки", Результат.ИмяВременнойТаблицы);
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("ПустоеЗначениеЗаказа", ПустыеЗначенияЗаказов());
ПакетЗапросов = Запрос.ВыполнитьПакет();
//Здесь все документы, пришедшие из очереди
ТаблицаСсылокКОбработке = ПакетЗапросов[1].Выгрузить();
СоответствиеОбработанныхДокументов = Новый Соответствие;
//Соответствие
ВыборкаОснованияСозданныеАкты = ПакетЗапросов[2].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
СоотвествиеОснованиеАкты = Новый Соответствие;
Пока ВыборкаОснованияСозданныеАкты.Следующий() Цикл
МассивСозданныхАктов = Новый Массив;
ВыборкаДетали = ВыборкаОснованияСозданныеАкты.Выбрать();
Пока ВыборкаДетали.Следующий() Цикл
МассивСозданныхАктов.Добавить(ВыборкаДетали.Акт);
КонецЦикла;
СоотвествиеОснованиеАкты.Вставить(ВыборкаОснованияСозданныеАкты.ДокументОснование, МассивСозданныхАктов);
КонецЦикла;
Выборка = ПакетЗапросов[0].Выбрать();;
Пока Выборка.СледующийПоЗначениюПоля("ДокументОснование") Цикл
Попытка
НачатьТранзакцию();
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(ПолноеИмяДокумента);
ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.ДокументОснование);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
Исключение
ОтменитьТранзакцию();
СоответствиеОбработанныхДокументов.Вставить(Выборка.ДокументОснование);
ТекстСообщения = НСтр("ru = 'Не удалось заблокировать документ: %Регистратор% по причине: %Причина%'");
ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Регистратор%", Выборка.ДокументОснование);
ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Причина%", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Предупреждение,
Метаданные.Документы.РеализацияТоваровУслуг,
Выборка.ДокументОснование,
ТекстСообщения);
Продолжить;
КонецПопытки;
НакладнаяОбъект = ЗаказыСервер.ПроверитьПолучитьОбъект(Выборка.ДокументОснование, Выборка.ВерсияДанных, Параметры.Очередь);
Если НакладнаяОбъект = Неопределено Тогда
ОтменитьТранзакцию();
СоответствиеОбработанныхДокументов.Вставить(Выборка.ДокументОснование);
Продолжить;
КонецЕсли;
МассивСозданныхАктов = СоотвествиеОснованиеАкты.Получить(Выборка.ДокументОснование);
Если МассивСозданныхАктов = Неопределено Или МассивСозданныхАктов.Количество() = 0 Тогда
АктОРасхожденияхОбъект = Документы.АктОРасхожденияхПослеОтгрузки.СоздатьДокумент();
Иначе
АктОРасхожденияхОбъект = МассивСозданныхАктов[0].ПолучитьОбъект();
Если АктОРасхожденияхОбъект = Неопределено Тогда
АктОРасхожденияхОбъект = Документы.АктОРасхожденияхПослеОтгрузки.СоздатьДокумент();
КонецЕсли;
КонецЕсли;
ОбработатьШапкуПриОбновлении(НакладнаяОбъект);
СтруктураПоиска = Новый Структура("Номенклатура,Характеристика,Назначение,Склад,ДокументРезерваСерий");
РасхожденияСервер.ЗаполнитьАктПоРасхождениямПриОбновлении(Выборка, АктОРасхожденияхОбъект, НакладнаяОбъект, СтруктураПоиска, Параметры);
СоответствиеОбработанныхДокументов.Вставить(Выборка.ДокументОснование);
КонецЦикла;
Для Каждого СтрокаТаблицы Из ТаблицаСсылокКОбработке Цикл
Если СоответствиеОбработанныхДокументов.Получить(СтрокаТаблицы.Ссылка) = Неопределено Тогда
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(СтрокаТаблицы.Ссылка,, Параметры.Очередь);
КонецЕсли;
КонецЦикла;
Параметры.ОбработкаЗавершена = Не ОбновлениеИнформационнойБазы.ЕстьДанныеДляОбработки(Параметры.Очередь, ПолноеИмяДокумента);
КонецПроцедуры
Показать
Добавка
В процессе выполнения обновления УТ с 11.1 на 11.2 не осуществляется распроведение помеченных на удаление Приходных ордеров, в результате чего некорректно отражаются сведения о доступных остатках на складах.
Способ исправления:
Для исправления ошибки в модуле менеджера документа ПриходныйОрдерНаТовары нужно заменить процедуру ПометитьНаУдалениеОрдераСТипомВозвратНепринятых() на нижеприведенную:
Процедура ПометитьНаУдалениеОрдераСТипомВозвратНепринятых(Параметры) Экспорт
Выборка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Документ.ПриходныйОрдерНаТовары");
Если ПолучитьФункциональнуюОпцию("УправлениеПредприятием") Тогда
Версия = НСтр("ru = 'УП 2.1.1'");
Иначе
Версия = НСтр("ru = 'УТ 11.2.1'");
КонецЕсли;
Пока Выборка.Следующий() Цикл
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Документ." + Метаданные.Документы.ПриходныйОрдерНаТовары.Имя);
ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
ПриходныйОрдерОбъект = Выборка.Ссылка.ПолучитьОбъект();
Если ПриходныйОрдерОбъект.СкладскаяОперация <> Перечисления.СкладскиеОперации.ВозвратНепринятыхТоваров
Или Не ПриходныйОрдерОбъект.Проведен Тогда
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(ПриходныйОрдерОбъект.Ссылка);
ЗафиксироватьТранзакцию();
Продолжить;
КонецЕсли;
ОприходованиеТоваровОбъект = Документы.ОприходованиеИзлишковТоваров.СоздатьДокумент();
НоваяСсылка = Документы.ОприходованиеИзлишковТоваров.ПолучитьСсылку(ПриходныйОрдерОбъект.Ссылка.УникальныйИдентификатор());
ОприходованиеТоваровОбъект.УстановитьСсылкуНового(НоваяСсылка);
ОприходованиеТоваровОбъект.Дата = ТекущаяДатаСеанса();
ЗаполнитьЗначенияСвойств(ОприходованиеТоваровОбъект, ПриходныйОрдерОбъект, "Склад, Ответственный");
// Заполнение ТЧ Товары в созданном оприходовании излишков товаров
Для Каждого Строка Из ПриходныйОрдерОбъект.Товары Цикл
НоваяСтрока = ОприходованиеТоваровОбъект.Товары.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
КонецЦикла;
// Заполнение комментариев в созданном оприходовании излишков товаров
КомментарийОприходования = НСтр("ru = 'Создан при обновлении информационной базы на версию %Версия% по данным документа ""%ПриходныйОрдер%"".'");
КомментарийОприходования = СтрЗаменить(КомментарийОприходования, "%Версия%", Версия);
КомментарийОприходования = СтрЗаменить(КомментарийОприходования, "%ПриходныйОрдер%", ПриходныйОрдерОбъект.Ссылка);
ОприходованиеТоваровОбъект.Комментарий = КомментарийОприходования;
// Запись созданного оприходования излишков товаров
ОбновлениеИнформационнойБазы.ЗаписатьДанные(ОприходованиеТоваровОбъект,, Истина);
// Заполнение комментариев в приходном ордере
КомментарийОрдера = ПриходныйОрдерОбъект.Комментарий
+ ?(ЗначениеЗаполнено(ПриходныйОрдерОбъект.Комментарий), Символы.ПС, "")
+ НСтр("ru = 'Помечен на удаление при обновлении информационной базы на версию %Версия%.'");
КомментарийОрдера = СтрЗаменить(КомментарийОрдера, "%Версия%", Версия);
ПриходныйОрдерОбъект.Комментарий = КомментарийОрдера;
// Пометка удаления и запись приходного ордера
ПриходныйОрдерОбъект.Проведен = Ложь;
ПриходныйОрдерОбъект.ПометкаУдаления = Истина;
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(ПриходныйОрдерОбъект);
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ПриходныйОрдерОбъект, , , РежимЗаписиДокумента.ОтменаПроведения);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ТекстСообщения = НСтр("ru = 'Не удалось обработать документ: %Регистратор% по причине: %Причина%'");
ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Регистратор%", Выборка.Ссылка);
ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Причина%", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Предупреждение,
Метаданные.Документы.ПриходныйОрдерНаТовары,
Выборка.Ссылка,
ТекстСообщения);
ВызватьИсключение;
КонецПопытки;
КонецЦикла;
Параметры.ОбработкаЗавершена = Не ОбновлениеИнформационнойБазы.ЕстьДанныеДляОбработки(Параметры.Очередь,
"Документ.ПриходныйОрдерНаТовары");
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот