Обнаружено дублирование ключевых значений в колонках "Ссылка" В расширении

1. Marliiin 15.08.19 11:54 Сейчас в теме
Добрый день.

Задача отредактировать типовую обработку "Платежный календарь" в 1С:Комплексная автоматизация 2 (2.4.7.109), а именно добавить на форму несколько новых колонок (с доп реквизитами документа Заявка на расходование ДС) через расширение.

Добавил форму обработки в расширение. Добавил колонки, поменял текст запроса динамического списка.
При запуске появляется ошибка "Обнаружено дублирование ключевых значений в колонках "Ссылка".


Однако, если эту же обработку сохранить как внешнюю, вставить мой текст запроса и настроит колонки, то все работает как нужно.

В чем может быть проблема?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
8. Marliiin 15.08.19 14:05 Сейчас в теме +1 $m
В общем, какая-то мистика. Удалил из расширения обработку. Проделал весь путь заново в n-ый раз и все заработало.
Видимо где-то что-то я не так сделал как расписал (скорее всего не та основная таблица была выбрана), хотя уже делал несколько раз это.


Извините за очередную глупую тему, всем спасибо.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Marliiin 15.08.19 12:06 Сейчас в теме
Выкладываю текст запроса динамического списка.
Жирным шрифтом выделил добавленный мной текст, остальное типовой запрос.

ВЫБРАТЬ
Заявка.Ссылка КАК Ссылка,
Заявка.Номер КАК Номер,
Заявка.Дата КАК Дата,
Заявка.Статус КАК СтатусЗаявки,
Заявка.ПриоритетОплаты КАК ПриоритетЗаявки,
Заявка.НазначениеПлатежа КАК НазначениеПлатежа,
Заявка.СуммаДокумента КАК СуммаДокумента,
Заявка.Валюта КАК Валюта,
Заявка.ЖелательнаяДатаПлатежа КАК ЖелательнаяДатаПлатежа,
Заявка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
Заявка.Подразделение КАК Подразделение,
ГрафикПлатежей.ПлательщикПолучатель КАК ПлательщикПолучатель,
ГрафикПлатежей.Организация КАК Организация,
ГрафикПлатежей.БанковскийСчетКасса КАК БанковскийСчетКасса,
ГрафикПлатежей.ДатаПлатежа КАК ДатаПлатежа,
ГрафикПлатежей.Сумма КАК Сумма,
ВЫБОР
КОГДА ГрафикПлатежей.БанковскийСчетКасса В (ЗНАЧЕНИЕ(Справочник.БанковскиеСчетаОрганизаций.ПустаяСсылка), ЗНАЧЕНИЕ(Справочник.Кассы.ПустаяСсылка), НЕОПРЕДЕЛЕНО)
ТОГДА ГрафикПлатежей.Сумма
ИНАЧЕ 0
КОНЕЦ КАК КРаспределению,
ГрафикПлатежей.СтатьяДвиженияДенежныхСредств КАК СтатьяДДС,
ЕСТЬNULL(СтатьиДДС.ПриоритетОплаты, ЗНАЧЕНИЕ(Справочник.ПриоритетыОплаты.ПустаяСсылка)) КАК ПриоритетСтатьиДДС,
ИСТИНА КАК ДоступноРаспределение,
ЕСТЬNULL(ВЫБОР
КОГДА Заявка.НаправлениеДеятельности <> ЗНАЧЕНИЕ(справочник.направлениядеятельности.пустаяссылка)
ТОГДА Заявка.НаправлениеДеятельности
ИНАЧЕ ДопРеквизитНаправление.Значение
КОНЕЦ, "") КАК НаправлениеДеятельности

ИЗ
РегистрСведений.ГрафикПлатежей КАК ГрафикПлатежей
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявкаНаРасходованиеДенежныхСредств КАК Заявка
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ЗаявкаНаРасходованиеДенежныхСредствДополнительныеРеквизиты.Значение КАК Значение,
ЗаявкаНаРасходованиеДенежныхСредствДополнительныеРеквизиты.Ссылка КАК Ссылка
ИЗ
Документ.ЗаявкаНаРасходованиеДенежныхСредств.ДополнительныеРеквизиты КАК ЗаявкаНаРасходованиеДенежныхСредствДополнительныеРеквизиты
ГДЕ
ЗаявкаНаРасходованиеДенежныхСредствДополнительныеРеквизиты.Свойство = &НаправлениеДеятельности) КАК ДопРеквизитНаправление
ПО Заявка.Ссылка = ДопРеквизитНаправление.Ссылка

ПО (Заявка.Ссылка = ГрафикПлатежей.ОбъектОплаты)
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СтатьиДвиженияДенежныхСредств КАК СтатьиДДС
ПО (СтатьиДДС.Ссылка = ГрафикПлатежей.СтатьяДвиженияДенежныхСредств)
ГДЕ
ГрафикПлатежей.ОбъектОплаты ССЫЛКА Документ.ЗаявкаНаРасходованиеДенежныхСредств
И ГрафикПлатежей.ПоступлениеСписание = ЗНАЧЕНИЕ(Перечисление.ТипыДвиженияДенежныхСредств.Списание)
{ГДЕ
ГрафикПлатежей.ОбластьПланирования КАК ОбластьПланирования,
Заявка.Статус КАК СтатусЗаявки}
3. Marliiin 15.08.19 12:13 Сейчас в теме
Если смотреть результат в консоли запросов, то мой запрос просто добавляет нужные колонки к результату запроса типовому.

В самом результате на моей тестовой базе 8 строк.
При этом один документ создает 3 строки, которые отличаются только реквизитом "Дата платежа". Если этот документ распровести, то ошибка исчезает.
То есть причина ошибки действительно задвоение строк с одной ссылкой. Но мне то нужно чтобы в динамический список попадали эти строки.

Но почему в типовой обработке все работает, а в моей нет?
4. VmvLer 15.08.19 13:07 Сейчас в теме
ВЫБРАТЬ
Заявка.Ссылка КАК Ссылка, 
....
ИЗ
РегистрСведений.ГрафикПлатежей КАК ГрафикПлатежей
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявкаНаРасходованиеДенежныхСредств КАК Заявка 


очевидно, что причина именно в том, что поле Ссылка не уникально.
основную таблица списка может заменить или убрать - это больно, но иначе не сядете на два стула
5. Marliiin 15.08.19 13:31 Сейчас в теме
(4) Но если этот же запрос вставлять в запрос динамического списка внешней обработки, все работает как надо с этой же основной таблицей.
Проблема возникает именно при переносе запроса в расширение.
6. catena 110 15.08.19 13:45 Сейчас в теме
(5)Дубли по основной таблице в динамическом списке не допускаются нигде. Либо очищайте основную таблицу, либо как-то переформулируйте задачу, чтобы дублей не было.
7. Marliiin 15.08.19 13:53 Сейчас в теме
(6) Есть строки табличной части одного документа, это не прямо дубли.

Я сохраняю типовую обработку как внешнюю. Меняю запрос динамического списка, запускаю обработку как внешнюю - работает как надо.

Добавляю форму типовой обработки в расширение, в форме запрос динамического списка заменяю тем, что сделал во внешней. Создаю обработчик для процедуры "ПриСозданииНаСервере" после в форме расширения, там указываю нужные параметры.
Не работает.

Запрос то один и тот же, но внешняя обработка работает, а расширенная типовая не работает. Как такое может быть?
Или у меня ошибка в рассуждениях и в этом порядке что-то неправильно?
8. Marliiin 15.08.19 14:05 Сейчас в теме +1 $m
В общем, какая-то мистика. Удалил из расширения обработку. Проделал весь путь заново в n-ый раз и все заработало.
Видимо где-то что-то я не так сделал как расписал (скорее всего не та основная таблица была выбрана), хотя уже делал несколько раз это.


Извините за очередную глупую тему, всем спасибо.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот