|
УТ 11.3: При подборе товаров в "Заказ покупателя" меняется дата отгрузки | ☑ | ||
---|---|---|---|---|
0
21stas
03.07.17
✎
18:32
|
При подборе товаров через Заполнить - Подобрать товары в "Заказ покупателя" меняется дата отгрузки (проставляется следующий за текущей датой день), причём это происходит только при подборе некоторых товаров.
Прошу подсказать - где в бескрайнем мозге УТ 11 такая логика? Это какое-то обеспечение заказа? В доступном наличии товар есть. |
|||
1
WhiteDragon93
03.07.17
✎
18:37
|
(0) В параметрах обеспечения потребностей "некоторый" товар фигурирует?
|
|||
2
21stas
03.07.17
✎
20:18
|
(1) Да, я в коде нашёл что-то про обеспечение потребностей.
Но где дальше смотреть - пока не понял. Где посмотреть параметры обеспечения потребностей? |
|||
3
21stas
03.07.17
✎
20:19
|
Это про это?
http://joxi.ru/Vm63yPXfxxwEl2 |
|||
4
21stas
03.07.17
✎
20:22
|
Ведь остатки есть, причём уже сейчас:
http://joxi.ru/DmBRXOGiNNEQKm |
|||
5
21stas
04.07.17
✎
06:13
|
В коде вижу, чтобы даты берёт из запроса в общем модуле ОбеспечениеСервер, Функция РассчитатьДатуОтгрузкиВТаблице(Таблица).
Но запрос длинный, таблицы понятны, но не понятна общая философия: ВЫБРАТЬ Таблица.НомерСтроки КАК НомерСтроки, Таблица.Номенклатура КАК Номенклатура, Таблица.Характеристика КАК Характеристика, Таблица.Склад КАК Склад, ВЫБОР КОГДА Таблица.ЖелаемаяДатаОтгрузки > &НачалоТекущегоДня ТОГДА Таблица.ЖелаемаяДатаОтгрузки ИНАЧЕ &НачалоТекущегоДня КОНЕЦ КАК ЖелаемаяДатаОтгрузки ПОМЕСТИТЬ ВтТовары ИЗ &Таблица КАК Таблица ; ///////////////////////// ВЫБРАТЬ ТаблицаФорматы.Склад КАК Склад, ТаблицаФорматы.ФорматМагазина КАК ФорматМагазина ПОМЕСТИТЬ ВтФорматыСкладов ИЗ РегистрСведений.ИсторияИзмененияФорматовМагазинов.СрезПоследних(, Склад В( ВЫБРАТЬ РАЗЛИЧНЫЕ ТаблицаСклады.Склад ИЗ ВтТовары КАК ТаблицаСклады) {Склад.* КАК Склад}) КАК ТаблицаФорматы ГДЕ ТаблицаФорматы.ФорматМагазина <> ЗНАЧЕНИЕ(Справочник.ФорматыМагазинов.ПустаяСсылка) ИНДЕКСИРОВАТЬ ПО Склад ; ///////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ТоварнаяМатрица.Номенклатура КАК Номенклатура, ТоварнаяМатрица.Характеристика КАК Характеристика, ТоварнаяМатрица.Склад КАК Склад, ЕСТЬNULL(СпрСпособ.Ссылка, ЗНАЧЕНИЕ(Справочник.СпособыОбеспеченияПотребностей.ПустаяСсылка)) КАК СпособОбеспеченияПотребностей, ВЫБОР ЕСТЬNULL(СпрСпособ.ТипОбеспечения, ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.ПустаяСсылка)) КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.Производство) ТОГДА 1 КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.СборкаРазборка) ТОГДА 2 КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.ПроизводствоНаСтороне) ТОГДА 3 КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.Покупка) ТОГДА 4 КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.Перемещение) ТОГДА 5 ИНАЧЕ 9999 КОНЕЦ КАК ПриоритетТипаОбеспечения, ВЫБОР КОГДА СпрНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа) ТОГДА СпрНоменклатура.СпособОбеспеченияПотребностей ИНАЧЕ ЕСТЬNULL(ТаблицаСхемыОбеспеченияСкладов.СпособОбеспеченияПотребностей, ЕСТЬNULL(ТаблицаСхемыОбеспеченияФорматов.СпособОбеспеченияПотребностей, ЗНАЧЕНИЕ(Справочник.СпособыОбеспеченияПотребностей.ПустаяСсылка))) КОНЕЦ КАК СпособОбеспеченияПотребностейУнаследованный, ВЫБОР КОГДА НЕ ТаблицаВариантыОбеспеченияТоварами.Номенклатура ЕСТЬ NULL ИЛИ НЕ ТаблицаВариантыОбеспеченияРаботами.Номенклатура ЕСТЬ NULL ТОГДА "НоменклатураХарактеристикаСклад" КОГДА СпрНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа) ТОГДА "Номенклатура" ИНАЧЕ "СхемаОбеспечения" КОНЕЦ КАК ИсточникНастройки ПОМЕСТИТЬ ВтСпособыОбеспечения ИЗ ВтТовары КАК ТоварнаяМатрица ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура ПО СпрНоменклатура.Ссылка = ТоварнаяМатрица.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВариантыОбеспеченияРаботами КАК ТаблицаВариантыОбеспеченияРаботами ПО СпрНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа) И ТаблицаВариантыОбеспеченияРаботами.Номенклатура = ТоварнаяМатрица.Номенклатура И ТаблицаВариантыОбеспеченияРаботами.Характеристика = ТоварнаяМатрица.Характеристика И ТаблицаВариантыОбеспеченияРаботами.РеквизитДопУпорядочивания = 1 ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВариантыОбеспеченияТоварами КАК ТаблицаВариантыОбеспеченияТоварами ПО СпрНоменклатура.ТипНоменклатуры В( ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Набор)) И ТаблицаВариантыОбеспеченияТоварами.Номенклатура = ТоварнаяМатрица.Номенклатура И ТаблицаВариантыОбеспеченияТоварами.Характеристика = ТоварнаяМатрица.Характеристика И ТаблицаВариантыОбеспеченияТоварами.Склад = ТоварнаяМатрица.Склад И ТаблицаВариантыОбеспеченияТоварами.РеквизитДопУпорядочивания = 1 ЛЕВОЕ СОЕДИНЕНИЕ ВтФорматыСкладов КАК ТаблицаФорматыСкладов ПО ТаблицаФорматыСкладов.Склад = ТоварнаяМатрица.Склад И ТаблицаВариантыОбеспеченияТоварами.Номенклатура ЕСТЬ NULL ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СхемыОбеспечения КАК ТаблицаСхемыОбеспеченияСкладов ПО ТаблицаСхемыОбеспеченияСкладов.СхемаОбеспечения = СпрНоменклатура.СхемаОбеспечения И ТаблицаСхемыОбеспеченияСкладов.Склад = ТоварнаяМатрица.Склад И ТаблицаВариантыОбеспеченияТоварами.Номенклатура ЕСТЬ NULL ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СхемыОбеспечения КАК ТаблицаСхемыОбеспеченияФорматов ПО ТаблицаСхемыОбеспеченияФорматов.СхемаОбеспечения = СпрНоменклатура.СхемаОбеспечения И ТаблицаСхемыОбеспеченияФорматов.Склад = ТаблицаФорматыСкладов.ФорматМагазина И ТаблицаСхемыОбеспеченияСкладов.СхемаОбеспечения ЕСТЬ NULL И ТаблицаВариантыОбеспеченияТоварами.Номенклатура ЕСТЬ NULL ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпособыОбеспеченияПотребностей КАК СпрСпособ ПО ВЫБОР КОГДА СпрНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа) ТОГДА ЕСТЬNULL(ТаблицаВариантыОбеспеченияРаботами.СпособОбеспеченияПотребностей, СпрНоменклатура.СпособОбеспеченияПотребностей) ИНАЧЕ ЕСТЬNULL(ТаблицаВариантыОбеспеченияТоварами.СпособОбеспеченияПотребностей, ЕСТЬNULL(ТаблицаСхемыОбеспеченияСкладов.СпособОбеспеченияПотребностей, ЕСТЬNULL(ТаблицаСхемыОбеспеченияФорматов.СпособОбеспеченияПотребностей, ЗНАЧЕНИЕ(Справочник.СпособыОбеспеченияПотребностей.ПустаяСсылка)))) КОНЕЦ = СпрСпособ.Ссылка ИНДЕКСИРОВАТЬ ПО Номенклатура, Характеристика, Склад ; //////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ Т.СпособОбеспеченияПотребностей КАК СпособОбеспечения, ЕСТЬNULL(СпрСпособ.ФормироватьПлановыеЗаказы, ЛОЖЬ) КАК ФормироватьПлановыеЗаказы, ЕСТЬNULL(СпрСпособ.ГарантированныйСрокОтгрузки, 0) КАК ГарантированныйСрокОтгрузки, ВЫБОР КОГДА СпрСпособ.ПлановаяДатаПоставки >= &НачалоТекущегоДня ТОГДА СпрСпособ.ПлановаяДатаПоставки ИНАЧЕ СпрСпособ.ДатаСледующейПоставки КОНЕЦ КАК ПлановаяДатаПоставки ПОМЕСТИТЬ ВтРеквизитыСпособовОбеспечения ИЗ ВтСпособыОбеспечения КАК Т ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпособыОбеспеченияПотребностей КАК СпрСпособ ПО Т.СпособОбеспеченияПотребностей = СпрСпособ.Ссылка ИНДЕКСИРОВАТЬ ПО ГарантированныйСрокОтгрузки ; //////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ Календарь.Значение КАК Календарь, Т.ГарантированныйСрокОтгрузки КАК ЧислоДней, &НачалоТекущегоДня КАК ДатаОтсчета ПОМЕСТИТЬ ВтПараметрыПоиска ИЗ ВтРеквизитыСпособовОбеспечения КАК Т, Константа.ОсновнойКалендарьПредприятия КАК Календарь ГДЕ НЕ Т.ФормироватьПлановыеЗаказы И Календарь.Значение <> ЗНАЧЕНИЕ(Справочник.Календари.ПустаяСсылка) ; ///////////////////////////////////////////////// ВЫБРАТЬ Т.Календарь КАК Календарь, Т.ЧислоДней КАК ЧислоДней, Т.ДатаОтсчета КАК ДатаОтсчета, ЕСТЬNULL(ПоставкаВТекущемГоду.ДатаГрафика, ПоставкаВСледующемГоду.ДатаГрафика) КАК Дата ПОМЕСТИТЬ ВтДатыГрафика ИЗ ВтПараметрыПоиска КАК Т //шаблон ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК ТекущаяДата ПО Т.Календарь = ТекущаяДата.Календарь И ТекущаяДата.Год = ГОД(Т.ДатаОтсчета) И ТекущаяДата.ДатаГрафика = Т.ДатаОтсчета ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК ПоставкаВТекущемГоду ПО Т.Календарь = ПоставкаВТекущемГоду.Календарь И ПоставкаВТекущемГоду.ДеньВключенВГрафик И ПоставкаВТекущемГоду.Год = ГОД(Т.ДатаОтсчета) И ПоставкаВТекущемГоду.КоличествоДнейВГрафикеСНачалаГода = ТекущаяДата.КоличествоДнейВГрафикеСНачалаГода + Т.ЧислоДней ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК ПоследняяДатаГода ПО ПоставкаВТекущемГоду.ДатаГрафика ЕСТЬ NULL И Т.Календарь = ПоследняяДатаГода.Календарь И ПоследняяДатаГода.Год = ГОД(Т.ДатаОтсчета) И ПоследняяДатаГода.ДатаГрафика = НАЧАЛОПЕРИОДА(КОНЕЦПЕРИОДА(Т.ДатаОтсчета, ГОД), ДЕНЬ) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК ПоставкаВСледующемГоду ПО ПоставкаВТекущемГоду.ДатаГрафика ЕСТЬ NULL И Т.Календарь = ПоставкаВСледующемГоду.Календарь И ПоставкаВСледующемГоду.ДеньВключенВГрафик И ПоставкаВСледующемГоду.Год = ГОД(Т.ДатаОтсчета) + 1 И ПоставкаВСледующемГоду.КоличествоДнейВГрафикеСНачалаГода = Т.ЧислоДней - (ПоследняяДатаГода.КоличествоДнейВГрафикеСНачалаГода - ТекущаяДата.КоличествоДнейВГрафикеСНачалаГода) ГДЕ НЕ ЕСТЬNULL(ПоставкаВТекущемГоду.ДатаГрафика, ПоставкаВСледующемГоду.ДатаГрафика) ЕСТЬ NULL ИНДЕКСИРОВАТЬ ПО Календарь, ЧислоДней, ДатаОтсчета ; //////////////////////////////////////////////////////////// ВЫБРАТЬ Т.СпособОбеспечения КАК СпособОбеспечения, ДатыГрафика.Дата КАК Дата ПОМЕСТИТЬ ВтДатыПлановойПоставки ИЗ ВтРеквизитыСпособовОбеспечения КАК Т ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтДатыГрафика КАК ДатыГрафика ПО Т.ГарантированныйСрокОтгрузки = ДатыГрафика.ЧислоДней ГДЕ НЕ Т.ФормироватьПлановыеЗаказы ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Т.СпособОбеспечения КАК СпособОбеспечения, ДОБАВИТЬКДАТЕ(&НачалоТекущегоДня, ДЕНЬ, Т.ГарантированныйСрокОтгрузки) ИЗ ВтРеквизитыСпособовОбеспечения КАК Т, Константа.ОсновнойКалендарьПредприятия КАК Календарь ГДЕ НЕ Т.ФормироватьПлановыеЗаказы И Календарь.Значение = ЗНАЧЕНИЕ(Справочник.Календари.ПустаяСсылка) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Т.СпособОбеспечения КАК СпособОбеспечения, Т.ПлановаяДатаПоставки КАК Дата ИЗ ВтРеквизитыСпособовОбеспечения КАК Т ГДЕ Т.ФормироватьПлановыеЗаказы И Т.ПлановаяДатаПоставки >= &НачалоТекущегоДня ИНДЕКСИРОВАТЬ ПО СпособОбеспечения ; ///////////////////////////////////////////////// ВЫБРАТЬ Товары.НомерСтроки КАК НомерСтроки, ВЫБОР КОГДА ЕСТЬNULL(ДатыПлановойПоставки.Дата, ДАТАВРЕМЯ(1,1,1)) > Товары.ЖелаемаяДатаОтгрузки ТОГДА ДатыПлановойПоставки.Дата ИНАЧЕ Товары.ЖелаемаяДатаОтгрузки КОНЕЦ КАК ДатаОтгрузки ИЗ ВтТовары КАК Товары ЛЕВОЕ СОЕДИНЕНИЕ ВтСпособыОбеспечения КАК СпособыОбеспечения ПО СпособыОбеспечения.Номенклатура = Товары.Номенклатура И СпособыОбеспечения.Характеристика = Товары.Характеристика И СпособыОбеспечения.Склад = Товары.Склад ЛЕВОЕ СОЕДИНЕНИЕ ВтДатыПлановойПоставки КАК ДатыПлановойПоставки ПО ДатыПлановойПоставки.СпособОбеспечения = СпособыОбеспечения.СпособОбеспеченияПотребностей |
|||
6
21stas
04.07.17
✎
06:34
|
Убрал из РС "Варианты обеспечения товарами" товар - теперь дата не сдвигается.
Что это за варианты? Где про это почитать, чтобы понять? F1 молчит В Склад и доставка – Настройки и справочники - Схемы обеспечения ничего такого нет: http://joxi.ru/12Mx1qdU44Vndm В номенклатуре я тоже не вижу схем обеспечения: http://joxi.ru/MAje04wFvv6EN2 В складе галочка "Контролировать обеспечение" стоит: http://joxi.ru/v29yQ61CGG09a2 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |