|
Обнаружено дублирование ключевых значений в колонках | ☑ | ||
---|---|---|---|---|
0
saradip
28.03.23
✎
10:46
|
Здравствуйте.
При подборе товара и конкретно с одной карточкой номенклатуры, при выборе группы с данной карточкой товара, возникает следующая ошибка: "Обнаружено дублирование ключевых значений в колонках: "Ссылка". Отображение данных в списке невозможно." Соответственно, позицию невозможно выбрать при подборе товара, а если номенклатура в группе с другим товаром, то ни одну из группы. Кто-нибудь может подсказать, как исправить данную ошибку? Ибо от платформы намеков на решение не так много, как может быть дубль в колонке ссылка, если позиция в группе сейчас одна? Я ее переместил. |
|||
1
shuhard
28.03.23
✎
10:50
|
(0) что в динамическом запросе стоит и что в основной таблице ?
|
|||
2
saradip
28.03.23
✎
10:52
|
(1) Все типовое, забыл указать версию конфигурации.
УТ 11.5 |
|||
3
Donkey_hot
28.03.23
✎
11:01
|
(2) Ключи аналитики учета номенклатуры могли задублироваться.
|
|||
4
shuhard
28.03.23
✎
11:09
|
(2) да нам пофиг типовая или самопал, что в запросе стоит ?
|
|||
5
saradip
28.03.23
✎
11:58
|
(4) ВЫБРАТЬ
СправочникНоменклатура.Ссылка КАК Ссылка, СправочникНоменклатура.Артикул КАК Артикул, СправочникНоменклатура.Код КАК Код, СправочникНоменклатура.Наименование КАК Наименование, СправочникНоменклатура.Ссылка КАК Номенклатура, СправочникНоменклатура.Ссылка КАК ЭлементСписка, СправочникНоменклатура.ИспользованиеХарактеристик КАК ИспользованиеХарактеристик, СправочникНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры, СправочникНоменклатура.ТипНоменклатуры КАК ТипНоменклатуры, СправочникНоменклатура.ЭтоГруппа КАК ЭтоГруппа, СправочникНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения, ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК Упаковка, ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка) КАК ВидЦены, НЕОПРЕДЕЛЕНО КАК ВладелецХарактеристик, 0 КАК Цена, 0 КАК ИндексКартинки, 0 КАК ВНаличииОстаток, 0 КАК ВНаличииВБазовыхЕдиницах, 0 КАК Доступно, СправочникНоменклатура.Родитель КАК Родитель, ЛОЖЬ КАК ХарактеристикиИспользуются, ЛОЖЬ КАК ЭтоТовар, ЛОЖЬ КАК ЭтоУслуга, ЛОЖЬ КАК ПометкаУдаления, СправочникНоменклатура.ЦеноваяГруппа КАК ЦеноваяГруппа, СправочникНоменклатура.Качество КАК Качество, ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ПустаяСсылка) КАК ВариантРасчетаЦеныНабора, ЛОЖЬ КАК СодержитТовары, ЛОЖЬ КАК СодержитУслуги ИЗ Справочник.Номенклатура КАК СправочникНоменклатура |
|||
6
Злопчинский
28.03.23
✎
12:06
|
а зачем так три раза?
СправочникНоменклатура.Ссылка КАК Ссылка, СправочникНоменклатура.Ссылка КАК Номенклатура, СправочникНоменклатура.Ссылка КАК ЭлементСписка, |
|||
7
saradip
28.03.23
✎
12:09
|
(6) Обработка: ПодборТоваровВДокументПродажи.Форма, УТ 11.5.8.321
ДинамическийСписок: СписокНоменклатура |
|||
8
Skylark
28.03.23
✎
12:20
|
Это запрос из свойств списка на форме или из отладчика в конце процедуры после создания на сервере?
|
|||
9
Skylark
28.03.23
✎
12:21
|
По идее в таком запросе двоится нечему. А вот при создании запрос может быть запросто модифицирован с добавлением какого-нибудь левого соединения и вот там уже возможны варианты
|
|||
10
saradip
28.03.23
✎
12:27
|
(8) Свойств списка
|
|||
11
saradip
28.03.23
✎
12:44
|
(9) ВЫБРАТЬ
СправочникНоменклатура.Ссылка КАК Ссылка, СправочникНоменклатура.Артикул КАК Артикул, СправочникНоменклатура.Код КАК Код, СправочникНоменклатура.Наименование КАК Наименование, СправочникНоменклатура.ПометкаУдаления КАК ПометкаУдаления, СправочникНоменклатура.Родитель КАК Родитель, СправочникНоменклатура.ЭтоГруппа КАК ЭтоГруппа, СправочникНоменклатура.Ссылка КАК Номенклатура, СправочникНоменклатура.Ссылка КАК ЭлементСписка, СправочникНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры, СправочникНоменклатура.ТипНоменклатуры КАК ТипНоменклатуры, ВЫБОР КОГДА СправочникНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Набор) ТОГДА ЕСТЬNULL(ВариантыКомплектацииНоменклатуры.ВариантРасчетаЦеныНабора, ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ПустаяСсылка)) ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ПустаяСсылка) КОНЕЦ КАК ВариантРасчетаЦеныНабора, ВариантыКомплектацииНоменклатуры.СодержитТовары КАК СодержитТовары, ВариантыКомплектацииНоменклатуры.СодержитУслуги КАК СодержитУслуги, СправочникНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения, СправочникНоменклатура.ЦеноваяГруппа КАК ЦеноваяГруппа, СправочникНоменклатура.Качество КАК Качество, СправочникНоменклатура.ИспользованиеХарактеристик КАК ИспользованиеХарактеристик, ВЫБОР КОГДА СправочникНоменклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)) ТОГДА ИСТИНА КОГДА СправочникНоменклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Набор)) И ЕСТЬNULL(ВариантыКомплектацииНоменклатуры.СодержитТовары, ЛОЖЬ) И Не ЕСТЬNULL(ВариантыКомплектацииНоменклатуры.СодержитУслуги, ЛОЖЬ) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КАК ЭтоТовар, ВЫБОР КОГДА СправочникНоменклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)) ТОГДА ИСТИНА КОГДА СправочникНоменклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Набор)) И ЕСТЬNULL(ВариантыКомплектацииНоменклатуры.СодержитУслуги, ЛОЖЬ) И НЕ ЕСТЬNULL(ВариантыКомплектацииНоменклатуры.СодержитТовары, ЛОЖЬ) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КАК ЭтоУслуга, ВЫБОР КОГДА СправочникНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры) ТОГДА СправочникНоменклатура.ВидНоменклатуры КОГДА СправочникНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры) ТОГДА СправочникНоменклатура.Ссылка КОГДА СправочникНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры) ТОГДА СправочникНоменклатура.ВладелецХарактеристик ИНАЧЕ Неопределено КОНЕЦ КАК ВладелецХарактеристик, ВЫБОР КОГДА СправочникНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать) ТОГДА ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ КАК ХарактеристикиИспользуются, ВЫБОР КОГДА СправочникНоменклатура.ЭтоГруппа ТОГДА ВЫБОР КОГДА СправочникНоменклатура.ПометкаУдаления ТОГДА 13 ИНАЧЕ 12 КОНЕЦ ИНАЧЕ ВЫБОР КОГДА СправочникНоменклатура.ЕстьТоварыДругогоКачества ТОГДА 4 + ВЫБОР КОГДА СправочникНоменклатура.ПометкаУдаления ТОГДА 1 ИНАЧЕ 0 КОНЕЦ + ВЫБОР КОГДА СправочникНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать) ТОГДА 0 ИНАЧЕ 2 КОНЕЦ ИНАЧЕ -1 + ВЫБОР КОГДА СправочникНоменклатура.ПометкаУдаления ТОГДА 1 ИНАЧЕ 0 КОНЕЦ + ВЫБОР КОГДА СправочникНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать) ТОГДА 1 ИНАЧЕ 3 КОНЕЦ КОНЕЦ КОНЕЦ КАК ИндексКартинки, ЕСТЬNULL(СоглашениеТовары.Упаковка, ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)) КАК Упаковка, ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка) КАК ВидЦены, ВЫРАЗИТЬ(ЕСТЬNULL(СоглашениеТовары.Цена, 0) * ВЫБОР КОГДА &Валюта <> СоглашениеТовары.Ссылка.Валюта ТОГДА ВЫБОР КОГДА ЕСТЬNULL(КурсыСрезПоследнихВалютаСоглашения.КурсЗнаменатель, 0) > 0 И ЕСТЬNULL(КурсыСрезПоследнихВалютаСоглашения.КурсЧислитель, 0) > 0 И ЕСТЬNULL(КурсыСрезПоследнихВалютаДокумента.КурсЗнаменатель, 0) > 0 И ЕСТЬNULL(КурсыСрезПоследнихВалютаДокумента.КурсЧислитель, 0) > 0 ТОГДА КурсыСрезПоследнихВалютаСоглашения.КурсЧислитель * КурсыСрезПоследнихВалютаДокумента.КурсЗнаменатель / (КурсыСрезПоследнихВалютаДокумента.КурсЧислитель * КурсыСрезПоследнихВалютаСоглашения.КурсЗнаменатель) ИНАЧЕ 0 КОНЕЦ ИНАЧЕ 1 КОНЕЦ КАК ЧИСЛО(31,2)) КАК Цена, ВЫРАЗИТЬ(ЕСТЬNULL(ВсеОстатки.ВНаличии, 0) / ЕСТЬNULL(ВЫБОР КОГДА СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес) И СоглашениеТовары.Номенклатура.ВесИспользовать И ЕСТЬNULL(СоглашениеТовары.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ВесЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ВесЧислитель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ВесЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(СоглашениеТовары.Упаковка.Числитель / СоглашениеТовары.Упаковка.Знаменатель КАК ЧИСЛО(17, 7))) / (ВЫРАЗИТЬ(СоглашениеТовары.Номенклатура.ВесЕдиницаИзмерения.Числитель / СоглашениеТовары.Номенклатура.ВесЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(17, 7))) КАК ЧИСЛО(17, 7))) / (ВЫРАЗИТЬ(СоглашениеТовары.Номенклатура.ВесЧислитель / СоглашениеТовары.Номенклатура.ВесЗнаменатель КАК ЧИСЛО(17, 7))) КАК ЧИСЛО(17, 7)) КОГДА СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем) И СоглашениеТовары.Номенклатура.ОбъемИспользовать И ЕСТЬNULL(СоглашениеТовары.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ОбъемЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ОбъемЧислитель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ОбъемЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(СоглашениеТовары.Упаковка.Числитель / СоглашениеТовары.Упаковка.Знаменатель КАК ЧИСЛО(17, 7))) / (ВЫРАЗИТЬ(СоглашениеТовары.Номенклатура.ОбъемЕдиницаИзмерения.Числитель / СоглашениеТовары.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(17, 7))) КАК ЧИСЛО(17, 7))) / (ВЫРАЗИТЬ(СоглашениеТовары.Номенклатура.ОбъемЧислитель / СоглашениеТовары.Номенклатура.ОбъемЗнаменатель КАК ЧИСЛО(17, 7))) КАК ЧИСЛО(17, 7)) КОГДА СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь) И СоглашениеТовары.Номенклатура.ПлощадьИспользовать И ЕСТЬNULL(СоглашениеТовары.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ПлощадьЧислитель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ПлощадьЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(СоглашениеТовары.Упаковка.Числитель / СоглашениеТовары.Упаковка.Знаменатель КАК ЧИСЛО(17, 7))) / (ВЫРАЗИТЬ(СоглашениеТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель / СоглашениеТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(17, 7))) КАК ЧИСЛО(17, 7))) / (ВЫРАЗИТЬ(СоглашениеТовары.Номенклатура.ПлощадьЧислитель / СоглашениеТовары.Номенклатура.ПлощадьЗнаменатель КАК ЧИСЛО(17, 7))) КАК ЧИСЛО(17, 7)) КОГДА СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина) И СоглашениеТовары.Номенклатура.ДлинаИспользовать И ЕСТЬNULL(СоглашениеТовары.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ДлинаЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ДлинаЧислитель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ДлинаЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(СоглашениеТовары.Упаковка.Числитель / СоглашениеТовары.Упаковка.Знаменатель КАК ЧИСЛО(17, 7))) / (ВЫРАЗИТЬ(СоглашениеТовары.Номенклатура.ДлинаЕдиницаИзмерения.Числитель / СоглашениеТовары.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(17, 7))) КАК ЧИСЛО(17, 7))) / (ВЫРАЗИТЬ(СоглашениеТовары.Номенклатура.ДлинаЧислитель / СоглашениеТовары.Номенклатура.ДлинаЗнаменатель КАК ЧИСЛО(17, 7))) КАК ЧИСЛО(17, 7)) КОГДА (СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Мощность) ИЛИ СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Энергия) ИЛИ СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.ЭлектрическийЗаряд) ИЛИ СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Время)) И СоглашениеТовары.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины И ЕСТЬNULL(СоглашениеТовары.Упаковка.Знаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ(СоглашениеТовары.Упаковка.Числитель / СоглашениеТовары.Упаковка.Знаменатель КАК ЧИСЛО(17, 7))) / (ВЫРАЗИТЬ(СоглашениеТовары.Номенклатура.ЕдиницаИзмерения.Числитель / СоглашениеТовары.Номенклатура.ЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(17, 7))) КАК ЧИСЛО(17, 7)) КОГДА СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка) И ЕСТЬNULL(СоглашениеТовары.Упаковка.Знаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ(СоглашениеТовары.Упаковка.Числитель / СоглашениеТовары.Упаковка.Знаменатель КАК ЧИСЛО(17, 7)) КОГДА СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.КоличествоШтук) ТОГДА 1 ИНАЧЕ NULL КОНЕЦ, 1) КАК ЧИСЛО(15, 3)) КАК ВНаличииОстаток, ЕСТЬNULL(ВсеОстатки.ВНаличии, 0) КАК ВНаличииВБазовыхЕдиницах, ВЫРАЗИТЬ(ЕСТЬNULL(ВсеОстатки.Свободно, 0) / ЕСТЬNULL(ВЫБОР КОГДА СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес) И СоглашениеТовары.Номенклатура.ВесИспользовать И ЕСТЬNULL(СоглашениеТовары.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ВесЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ВесЧислитель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ВесЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(СоглашениеТовары.Упаковка.Числитель / СоглашениеТовары.Упаковка.Знаменатель КАК ЧИСЛО(17, 7))) / (ВЫРАЗИТЬ(СоглашениеТовары.Номенклатура.ВесЕдиницаИзмерения.Числитель / СоглашениеТовары.Номенклатура.ВесЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(17, 7))) КАК ЧИСЛО(17, 7))) / (ВЫРАЗИТЬ(СоглашениеТовары.Номенклатура.ВесЧислитель / СоглашениеТовары.Номенклатура.ВесЗнаменатель КАК ЧИСЛО(17, 7))) КАК ЧИСЛО(17, 7)) КОГДА СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем) И СоглашениеТовары.Номенклатура.ОбъемИспользовать И ЕСТЬNULL(СоглашениеТовары.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ОбъемЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ОбъемЧислитель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ОбъемЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(СоглашениеТовары.Упаковка.Числитель / СоглашениеТовары.Упаковка.Знаменатель КАК ЧИСЛО(17, 7))) / (ВЫРАЗИТЬ(СоглашениеТовары.Номенклатура.ОбъемЕдиницаИзмерения.Числитель / СоглашениеТовары.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(17, 7))) КАК ЧИСЛО(17, 7))) / (ВЫРАЗИТЬ(СоглашениеТовары.Номенклатура.ОбъемЧислитель / СоглашениеТовары.Номенклатура.ОбъемЗнаменатель КАК ЧИСЛО(17, 7))) КАК ЧИСЛО(17, 7)) КОГДА СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь) И СоглашениеТовары.Номенклатура.ПлощадьИспользовать И ЕСТЬNULL(СоглашениеТовары.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ПлощадьЧислитель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ПлощадьЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(СоглашениеТовары.Упаковка.Числитель / СоглашениеТовары.Упаковка.Знаменатель КАК ЧИСЛО(17, 7))) / (ВЫРАЗИТЬ(СоглашениеТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель / СоглашениеТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(17, 7))) КАК ЧИСЛО(17, 7))) / (ВЫРАЗИТЬ(СоглашениеТовары.Номенклатура.ПлощадьЧислитель / СоглашениеТовары.Номенклатура.ПлощадьЗнаменатель КАК ЧИСЛО(17, 7))) КАК ЧИСЛО(17, 7)) КОГДА СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина) И СоглашениеТовары.Номенклатура.ДлинаИспользовать И ЕСТЬNULL(СоглашениеТовары.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ДлинаЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ДлинаЧислитель, 0) <> 0 И ЕСТЬNULL(СоглашениеТовары.Номенклатура.ДлинаЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(СоглашениеТовары.Упаковка.Числитель / СоглашениеТовары.Упаковка.Знаменатель КАК ЧИСЛО(17, 7))) / (ВЫРАЗИТЬ(СоглашениеТовары.Номенклатура.ДлинаЕдиницаИзмерения.Числитель / СоглашениеТовары.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(17, 7))) КАК ЧИСЛО(17, 7))) / (ВЫРАЗИТЬ(СоглашениеТовары.Номенклатура.ДлинаЧислитель / СоглашениеТовары.Номенклатура.ДлинаЗнаменатель КАК ЧИСЛО(17, 7))) КАК ЧИСЛО(17, 7)) КОГДА (СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Мощность) ИЛИ СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Энергия) ИЛИ СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.ЭлектрическийЗаряд) ИЛИ СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Время)) И СоглашениеТовары.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины И ЕСТЬNULL(СоглашениеТовары.Упаковка.Знаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ(СоглашениеТовары.Упаковка.Числитель / СоглашениеТовары.Упаковка.Знаменатель КАК ЧИСЛО(17, 7))) / (ВЫРАЗИТЬ(СоглашениеТовары.Номенклатура.ЕдиницаИзмерения.Числитель / СоглашениеТовары.Номенклатура.ЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(17, 7))) КАК ЧИСЛО(17, 7)) КОГДА СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка) И ЕСТЬNULL(СоглашениеТовары.Упаковка.Знаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ(СоглашениеТовары.Упаковка.Числитель / СоглашениеТовары.Упаковка.Знаменатель КАК ЧИСЛО(17, 7)) КОГДА СоглашениеТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.КоличествоШтук) ТОГДА 1 ИНАЧЕ NULL КОНЕЦ, 1) КАК ЧИСЛО(15, 3)) КАК Доступно ИЗ Справочник.Номенклатура КАК СправочникНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры ПО ВариантыКомплектацииНоменклатуры.Владелец = СправочникНоменклатура.Ссылка И ВариантыКомплектацииНоменклатуры.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) И ВариантыКомплектацииНоменклатуры.Основной ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СоглашенияСКлиентами.Товары КАК СоглашениеТовары ПО (СоглашениеТовары.Ссылка = &Соглашение) И СправочникНоменклатура.Ссылка = СоглашениеТовары.Номенклатура И (СоглашениеТовары.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОтносительныеКурсыВалют.СрезПоследних(, БазоваяВалюта В (ВЫБРАТЬ БазоваяВалютаПоУмолчанию.Значение КАК Значение ИЗ Константа.БазоваяВалютаПоУмолчанию КАК БазоваяВалютаПоУмолчанию)) КАК КурсыСрезПоследнихВалютаСоглашения ПО (КурсыСрезПоследнихВалютаСоглашения.Валюта = СоглашениеТовары.Ссылка.Валюта) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОтносительныеКурсыВалют.СрезПоследних(, Валюта = &Валюта И БазоваяВалюта В (ВЫБРАТЬ БазоваяВалютаПоУмолчанию.Значение КАК Значение ИЗ Константа.БазоваяВалютаПоУмолчанию КАК БазоваяВалютаПоУмолчанию)) КАК КурсыСрезПоследнихВалютаДокумента ПО (ИСТИНА) ЛЕВОЕ СОЕДИНЕНИЕ( ВЫБРАТЬ РаспределениеЗапасов.Номенклатура КАК Номенклатура, СУММА(РаспределениеЗапасов.ВНаличии) КАК ВНаличии, СУММА(РаспределениеЗапасов.Запас) КАК Запас, СУММА(РаспределениеЗапасов.Свободно) КАК Свободно ИЗ РегистрСведений.РаспределениеЗапасов КАК РаспределениеЗапасов ГДЕ РаспределениеЗапасов.Состояние = ЗНАЧЕНИЕ(Перечисление.РаспределениеЗапасовСостояния.ОстатокНаСкладе) И РаспределениеЗапасов.Назначение = ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) И РаспределениеЗапасов.Склад = &Склад СГРУППИРОВАТЬ ПО РаспределениеЗапасов.Номенклатура ) КАК ВсеОстатки ПО (ВсеОстатки.Номенклатура = СправочникНоменклатура.Ссылка) ГДЕ НЕ СправочникНоменклатура.ЭтоГруппа {ГДЕ (1 В (ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ РегистрСведений.НоменклатураСегмента КАК Сегменты ГДЕ Сегменты.Номенклатура = СправочникНоменклатура.Ссылка И Сегменты.Сегмент = &СегментНоменклатуры))} |
|||
12
novichok79
28.03.23
✎
12:46
|
когда работал в 1С, то я брал такой запрос и удалял левые соединения пока ссылка не переставала дублироваться, потом возвращал взад, оставлял только то самое левое соединение которое приводило к дублям и игрался с условиями в соединении.
считаю что вам следует пойти тем же путем. |
|||
13
Skylark
28.03.23
✎
12:52
|
Можно еще результат выгрузить в таблицу, добавить колонку "КоличествоСсылок" и свернуть по ссылке - где количество ссылок больше одной там и проблема.
|
|||
14
saradip
28.03.23
✎
12:54
|
Думаю, можно начинать проверять "соглашения об условиях продаж" на наличие дублей строк с проблемной карточкой номенклатуры, по уточнениям цен по товарам.
|
|||
15
saradip
28.03.23
✎
13:05
|
(13) В какой процедуре его выполнить?
|
|||
16
DJ Anthon
28.03.23
✎
13:09
|
(15) проверил справочник ключей?
|
|||
17
DJ Anthon
28.03.23
✎
13:10
|
а, скорее всего, проблема в регистре РаспределениеЗапасов
его надо править и править конкретно. попробуй для начала от него избавиться в запросе. |
|||
18
saradip
28.03.23
✎
13:14
|
(14) Проблема была здесь, несколько строк с одинаковым товаром в уточнениях цен.
Теперь хочу в копии, попробовать найти проблему по факту, а не наугад, хочу использовать этот алгоритм (13) Звучит разумно |
|||
19
saradip
29.03.23
✎
16:19
|
(12) В итоге ваш алгоритм оказался лично для меня удобней.
В модуле: ПодборТоваровВДокументПродажи.Форма Сразу после строки, которая модифицирует запрос динамического списка "СписокНоменклатура": ПодборТоваровСервер.ПриСозданииФормыПодбораНаСервере(ЭтаФорма) Поместил в переменную "новтекстзапр" модифицированный текст запроса Следующей строкой поместил: ЭтаФорма.СписокНоменклатура.ТекстЗапроса = новтекстзапр Далее вручную, поочередно, удалял добавленные к стандартному запросу динамического списка связи с таблицами (просто удаляя таблицы). В итоге ошибка пропала, после удаления таблиц "СоглашенияСКлиентами.Товары" и "КурсыСрезПоследнихВалютаСоглашения". Напомню, что до этого я методом тыка уже нашел дубли товаров в соглашениях с клиентами. Если же подставить стандартный запрос динамического списка, то ошибки также нет, отсюда назревает идея проверять модифицированный запрос. Опять же, если удалять по одной, проверять и заново добавлять, то можно упустить связь с ошибкой, лучше всего удалять все и поочередно добавлять связи. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |