|
УТ 11 Акт о расхождении после поступления | ☑ | ||
---|---|---|---|---|
0
Zombi
06.02.24
✎
12:41
|
В УТ 11 оформляем акт о расхождении после поступления. В документе 2 строки на уменьшение количества и одна строка на увеличение. При проведении документа вопрос по регистру "ТоварыНаСкладах". По товарам уменьшаемым вроде все адекватно, вид движения "Расход" и количество списываемого товара. По товару с увеличением почему то движение с видом "Приход" и отрицательным количеством. Есть тут логика? Или какой то косяк?
|
|||
1
Кондер
06.02.24
✎
14:58
|
косяк
|
|||
2
Zombi
06.02.24
✎
16:12
|
Ок, покопаю в сторону косяка. Отпишусь потом.
|
|||
3
Волшебник
06.02.24
✎
20:20
|
Ждём, чё...
|
|||
4
Zombi
08.02.24
✎
09:13
|
Не стал сильно глубоко копать. Решил проблему, основываясь на том что это все таки косяк. Конфигурацию обновил на свежую, проблема не ушла. Добавил через расширение такой костыль:
общий модуль СкладыСервер &После("ОформитьПоступлениеТоваровПоОдноходовкеВнутренний") Процедура Расш1_ОформитьПоступлениеТоваровПоОдноходовкеВнутренний(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДокумента, ОбъектМетаданных, ПараметрыМетода) Если ОбъектМетаданных = Метаданные.Документы.АктОРасхожденияхПослеПриемки Тогда Для Каждого ЭлементСписка Из ТекстыЗапроса Цикл Если ЭлементСписка.Представление = "ВТСерииОформитьПоступлениеТоваровПоОдноходовке" Тогда ЭлементСписка.Значение = СтрЗаменить(ЭлементСписка.Значение, "ДанныеСерий.КоличествоПоДокументу - ДанныеСерий.Количество", "ВЫБОР КОГДА ДанныеСерий.КоличествоПоДокументу - ДанныеСерий.Количество > 0 ТОГДА ДанныеСерий.КоличествоПоДокументу - ДанныеСерий.Количество ИНАЧЕ ДанныеСерий.Количество - ДанныеСерий.КоличествоПоДокументу КОНЕЦ"); КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры Не стал разбираться что за схемы оформления товаров, одноходовка, двухходовка... Конкретно в нашем случае проблема решилась. Если кто то подскажет другое решение, буду признателен. |
|||
5
Гена
08.02.24
✎
10:57
|
(4) Что-то не то. По картинке видно, что в движение Приход по нашему РН алгоритм заходит только когда текущее количество больше ранешнего поступления, ведь движение Расход нормально отрабатывается в противном случае.
Вывод: надо изначально в том месте, где алгоритм ветвится на Приход/Расход просто поменять знак в модуле, т.е. вместо отрицательного ДанныеСерий.КоличествоПоДокументу - ДанныеСерий.Количество сделать положительное ДанныеСерий.Количество - ДанныеСерий.КоличествоПоДокументу а Вы же просто сделали ABS и то только в одном запросе. |
|||
6
Гена
08.02.24
✎
11:09
|
Я к чему. Конечно же, если после определения в Акте "-" по количествам алгоритм единственно потом идёт на указанную процедуру, то Ваша правка сработает. А если нет? Если сейчас уже есть выбор между процедурами поступления по разным "ходовкам" или появится в будущем - будете в каждой из них ABSить?
Согласитесь, что проще изначально знак поменять. |
|||
7
Zombi
08.02.24
✎
11:28
|
(5) Нет, условие если текущее количество больше ранешного это я уже дописал. Типовой запрос вот:
ВЫБРАТЬ ТаблицаТовары.Ссылка КАК Ссылка, ТаблицаТовары.Дата КАК Дата, ТаблицаТовары.Номенклатура КАК Номенклатура, ТаблицаТовары.Характеристика КАК Характеристика, ВЫБОР КОГДА ЕСТЬNULL(ТаблицаТовары.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ) ТОГДА ТаблицаТовары.Назначение ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КОНЕЦ КАК Назначение, МАКСИМУМ(ТаблицаТовары.СтатусУказанияСерий) КАК СтатусУказанияСерий, ВЫБОР КОГДА НЕ ТаблицаТовары.Серия ЕСТЬ NULL И ТаблицаТовары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) ТОГДА ТаблицаТовары.Серия КОГДА НЕ ДанныеСерий.Серия ЕСТЬ NULL И ДанныеСерий.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) ТОГДА ДанныеСерий.Серия ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КОНЕЦ КАК Серия, ТаблицаТовары.Серия КАК СерияТЧТовары, ТаблицаТовары.Склад КАК Склад, МАКСИМУМ( ВЫБОР КОГДА НЕ ДанныеСерий.Серия ЕСТЬ NULL И ДанныеСерий.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) ТОГДА ДанныеСерий.КоличествоПоДокументу - ДанныеСерий.Количество ИНАЧЕ ТаблицаТовары.Количество КОНЕЦ) КАК Количество, МАКСИМУМ(ТаблицаТовары.ЭтоКорректировкаВнутриНакладной) КАК ЭтоКорректировкаВнутриНакладной ПОМЕСТИТЬ ВТСерииОформитьПоступлениеТоваровПоОдноходовке ИЗ ВТТоварыБезЗаказаОформитьПоступлениеТоваровПоОдноходовке КАК ТаблицаТовары ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.АктОРасхожденияхПослеПриемки.Серии КАК ДанныеСерий ПО ТаблицаТовары.Ссылка = ДанныеСерий.Ссылка И ТаблицаТовары.Номенклатура = ДанныеСерий.Номенклатура И ТаблицаТовары.Характеристика = ДанныеСерий.Характеристика И ТаблицаТовары.Назначение = ДанныеСерий.Назначение И ТаблицаТовары.Склад = ДанныеСерий.Склад И ТаблицаТовары.ДокументОснование = ДанныеСерий.ДокументОснование И ТаблицаТовары.ЗаполненоПоОснованию = ДанныеСерий.ЗаполненоПоОснованию И ТаблицаТовары.Действие = ДанныеСерий.Действие ГДЕ ВЫБОР КОГДА НЕ ДанныеСерий.Серия ЕСТЬ NULL И ДанныеСерий.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) ТОГДА ДанныеСерий.КоличествоПоДокументу - ДанныеСерий.Количество ИНАЧЕ ТаблицаТовары.Количество КОНЕЦ <> 0 СГРУППИРОВАТЬ ПО ТаблицаТовары.Ссылка, ТаблицаТовары.Дата, ДанныеСерий.НомерСтроки, ТаблицаТовары.Номенклатура, ТаблицаТовары.Характеристика, ВЫБОР КОГДА ЕСТЬNULL(ТаблицаТовары.Назначение.ДвиженияПоСкладскимРегистрам, ЛОЖЬ) ТОГДА ТаблицаТовары.Назначение ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КОНЕЦ, ВЫБОР КОГДА НЕ ТаблицаТовары.Серия ЕСТЬ NULL И ТаблицаТовары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) ТОГДА ТаблицаТовары.Серия КОГДА НЕ ДанныеСерий.Серия ЕСТЬ NULL И ДанныеСерий.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) ТОГДА ДанныеСерий.Серия ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КОНЕЦ, ТаблицаТовары.Серия, ТаблицаТовары.ЗаполненоПоОснованию , ТаблицаТовары.ДокументОснование , ТаблицаТовары.Действие , ТаблицаТовары.Назначение , ТаблицаТовары.Склад В этом запросе я изменил поле количество. |
|||
8
Волшебник
08.02.24
✎
11:30
|
(7) У Вас
|
|||
9
Zombi
08.02.24
✎
11:34
|
(6) Само собой за этим костылем нужно будет следить при обновлениях. Благо это УТ и обновляется не так часто. Можно было копнуть в сторону разных схем двухходовки и одноходовки. Может по другой схеме нормально отработет. Я нашел только что схема определяется исходя из договора и зависит от его реквизитов, а у нас договоры не используются. Дальше копать не стал. Там же еще список разных запросов и только для регистров товары на складах 4 разных запроса для разных схем и прочих условий. Вот по излишку в акте отрабатывает один запрос, по недостачам другой запрос. 2 других пустые результаты возвращают. Пошел по пути меньшего сопротивления, подправил запрос, который в нашем случае отрабатывает на излишки.
|
|||
10
Zombi
08.02.24
✎
11:36
|
Так в типовых собираются программно запросы. Ничего не поделать.
|
|||
11
Гена
08.02.24
✎
12:23
|
(10) А... тут серийные заморочки, которые сразу не видны в Акте.
Тогда Вы правильно поменяли знак внутри процедуры. Если только не получится штык, когда по одной серии +, а по другой -, а в целом общий излишек. А у Вас ABS стоит ) Ладно, практика покажет. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |