Обнаружено дублирование ключевых значений в колонках "Ссылка" В расширении
Добрый день.
Задача отредактировать типовую обработку "Платежный календарь" в 1С:Комплексная автоматизация 2 (2.4.7.109), а именно добавить на форму несколько новых колонок (с доп реквизитами документа Заявка на расходование ДС) через расширение.
Добавил форму обработки в расширение. Добавил колонки, поменял текст запроса динамического списка.
При запуске появляется ошибка "Обнаружено дублирование ключевых значений в колонках "Ссылка".
Однако, если эту же обработку сохранить как внешнюю, вставить мой текст запроса и настроит колонки, то все работает как нужно.
В чем может быть проблема?
Задача отредактировать типовую обработку "Платежный календарь" в 1С:Комплексная автоматизация 2 (2.4.7.109), а именно добавить на форму несколько новых колонок (с доп реквизитами документа Заявка на расходование ДС) через расширение.
Добавил форму обработки в расширение. Добавил колонки, поменял текст запроса динамического списка.
При запуске появляется ошибка "Обнаружено дублирование ключевых значений в колонках "Ссылка".
Однако, если эту же обработку сохранить как внешнюю, вставить мой текст запроса и настроит колонки, то все работает как нужно.
В чем может быть проблема?
По теме из базы знаний
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2/3.0
- Конфигурация Flowcon: Набор инструментов для управления задачами, проектами и бизнесом в 1С
- Разработка и сценарное тестирование с Vanessa-ADD. Собственные шаги и библиотеки. Экспортные сценарии
- Не спеша, эффективно и правильно – путь разработки. Часть 2. Теория
- Мастер-класс SonarQube. В омут с головой
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Выкладываю текст запроса динамического списка.
Жирным шрифтом выделил добавленный мной текст, остальное типовой запрос.
ВЫБРАТЬ
Заявка.Ссылка КАК Ссылка,
Заявка.Номер КАК Номер,
Заявка.Дата КАК Дата,
Заявка.Статус КАК СтатусЗаявки,
Заявка.ПриоритетОплаты КАК ПриоритетЗаявки,
Заявка.НазначениеПлатежа КАК НазначениеПлатежа,
Заявка.СуммаДокумента КАК СуммаДокумента,
Заявка.Валюта КАК Валюта,
Заявка.ЖелательнаяДатаПлатежа КАК ЖелательнаяДатаПлатежа,
Заявка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
Заявка.Подразделение КАК Подразделение,
ГрафикПлатежей.ПлательщикПолучатель КАК ПлательщикПолучатель,
ГрафикПлатежей.Организация КАК Организация,
ГрафикПлатежей.БанковскийСчетКасса КАК БанковскийСчетКасса,
ГрафикПлатежей.ДатаПлатежа КАК ДатаПлатежа,
ГрафикПлатежей.Сумма КАК Сумма,
ВЫБОР
КОГДА ГрафикПлатежей.БанковскийСчетКасса В (ЗНАЧЕНИЕ(Справочник.БанковскиеСчетаОрганизаций.ПустаяСсылка), ЗНАЧЕНИЕ(Справочник.Кассы.ПустаяСсылка), НЕОПРЕДЕЛЕНО)
ТОГДА ГрафикПлатежей.Сумма
ИНАЧЕ 0
КОНЕЦ КАК КРаспределению,
ГрафикПлатежей.СтатьяДвиженияДенежныхСредств КАК СтатьяДДС,
ЕСТЬNULL(СтатьиДДС.ПриоритетОплаты, ЗНАЧЕНИЕ(Справочник.ПриоритетыОплаты.ПустаяСсылка)) КАК ПриоритетСтатьиДДС,
ИСТИНА КАК ДоступноРаспределение,
ЕСТЬNULL(ВЫБОР
КОГДА Заявка.НаправлениеДеятельности <> ЗНАЧЕНИЕ(справочник.направлениядеятельности.пустаяссылка)
ТОГДА Заявка.НаправлениеДеятельности
ИНАЧЕ ДопРеквизитНаправление.Значение
КОНЕЦ, "") КАК НаправлениеДеятельности
ИЗ
РегистрСведений.ГрафикПлатежей КАК ГрафикПлатежей
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявкаНаРасходованиеДенежныхСредств КАК Заявка
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ЗаявкаНаРасходованиеДенежныхСредствДополнительныеРеквизиты.Значение КАК Значение,
ЗаявкаНаРасходованиеДенежныхСредствДополнительныеРеквизиты.Ссылка КАК Ссылка
ИЗ
Документ.ЗаявкаНаРасходованиеДенежныхСредств.ДополнительныеРеквизиты КАК ЗаявкаНаРасходованиеДенежныхСредствДополнительныеРеквизиты
ГДЕ
ЗаявкаНаРасходованиеДенежныхСредствДополнительныеРеквизиты.Свойство = &НаправлениеДеятельности) КАК ДопРеквизитНаправление
ПО Заявка.Ссылка = ДопРеквизитНаправление.Ссылка
ПО (Заявка.Ссылка = ГрафикПлатежей.ОбъектОплаты)
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СтатьиДвиженияДенежныхСредств КАК СтатьиДДС
ПО (СтатьиДДС.Ссылка = ГрафикПлатежей.СтатьяДвиженияДенежныхСредств)
ГДЕ
ГрафикПлатежей.ОбъектОплаты ССЫЛКА Документ.ЗаявкаНаРасходованиеДенежныхСредств
И ГрафикПлатежей.ПоступлениеСписание = ЗНАЧЕНИЕ(Перечисление.ТипыДвиженияДенежныхСредств.Списание)
{ГДЕ
ГрафикПлатежей.ОбластьПланирования КАК ОбластьПланирования,
Заявка.Статус КАК СтатусЗаявки}
Жирным шрифтом выделил добавленный мной текст, остальное типовой запрос.
ВЫБРАТЬ
Заявка.Ссылка КАК Ссылка,
Заявка.Номер КАК Номер,
Заявка.Дата КАК Дата,
Заявка.Статус КАК СтатусЗаявки,
Заявка.ПриоритетОплаты КАК ПриоритетЗаявки,
Заявка.НазначениеПлатежа КАК НазначениеПлатежа,
Заявка.СуммаДокумента КАК СуммаДокумента,
Заявка.Валюта КАК Валюта,
Заявка.ЖелательнаяДатаПлатежа КАК ЖелательнаяДатаПлатежа,
Заявка.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
Заявка.Подразделение КАК Подразделение,
ГрафикПлатежей.ПлательщикПолучатель КАК ПлательщикПолучатель,
ГрафикПлатежей.Организация КАК Организация,
ГрафикПлатежей.БанковскийСчетКасса КАК БанковскийСчетКасса,
ГрафикПлатежей.ДатаПлатежа КАК ДатаПлатежа,
ГрафикПлатежей.Сумма КАК Сумма,
ВЫБОР
КОГДА ГрафикПлатежей.БанковскийСчетКасса В (ЗНАЧЕНИЕ(Справочник.БанковскиеСчетаОрганизаций.ПустаяСсылка), ЗНАЧЕНИЕ(Справочник.Кассы.ПустаяСсылка), НЕОПРЕДЕЛЕНО)
ТОГДА ГрафикПлатежей.Сумма
ИНАЧЕ 0
КОНЕЦ КАК КРаспределению,
ГрафикПлатежей.СтатьяДвиженияДенежныхСредств КАК СтатьяДДС,
ЕСТЬNULL(СтатьиДДС.ПриоритетОплаты, ЗНАЧЕНИЕ(Справочник.ПриоритетыОплаты.ПустаяСсылка)) КАК ПриоритетСтатьиДДС,
ИСТИНА КАК ДоступноРаспределение,
ЕСТЬNULL(ВЫБОР
КОГДА Заявка.НаправлениеДеятельности <> ЗНАЧЕНИЕ(справочник.направлениядеятельности.пустаяссылка)
ТОГДА Заявка.НаправлениеДеятельности
ИНАЧЕ ДопРеквизитНаправление.Значение
КОНЕЦ, "") КАК НаправлениеДеятельности
ИЗ
РегистрСведений.ГрафикПлатежей КАК ГрафикПлатежей
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявкаНаРасходованиеДенежныхСредств КАК Заявка
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ЗаявкаНаРасходованиеДенежныхСредствДополнительныеРеквизиты.Значение КАК Значение,
ЗаявкаНаРасходованиеДенежныхСредствДополнительныеРеквизиты.Ссылка КАК Ссылка
ИЗ
Документ.ЗаявкаНаРасходованиеДенежныхСредств.ДополнительныеРеквизиты КАК ЗаявкаНаРасходованиеДенежныхСредствДополнительныеРеквизиты
ГДЕ
ЗаявкаНаРасходованиеДенежныхСредствДополнительныеРеквизиты.Свойство = &НаправлениеДеятельности) КАК ДопРеквизитНаправление
ПО Заявка.Ссылка = ДопРеквизитНаправление.Ссылка
ПО (Заявка.Ссылка = ГрафикПлатежей.ОбъектОплаты)
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СтатьиДвиженияДенежныхСредств КАК СтатьиДДС
ПО (СтатьиДДС.Ссылка = ГрафикПлатежей.СтатьяДвиженияДенежныхСредств)
ГДЕ
ГрафикПлатежей.ОбъектОплаты ССЫЛКА Документ.ЗаявкаНаРасходованиеДенежныхСредств
И ГрафикПлатежей.ПоступлениеСписание = ЗНАЧЕНИЕ(Перечисление.ТипыДвиженияДенежныхСредств.Списание)
{ГДЕ
ГрафикПлатежей.ОбластьПланирования КАК ОбластьПланирования,
Заявка.Статус КАК СтатусЗаявки}
Если смотреть результат в консоли запросов, то мой запрос просто добавляет нужные колонки к результату запроса типовому.
В самом результате на моей тестовой базе 8 строк.
При этом один документ создает 3 строки, которые отличаются только реквизитом "Дата платежа". Если этот документ распровести, то ошибка исчезает.
То есть причина ошибки действительно задвоение строк с одной ссылкой. Но мне то нужно чтобы в динамический список попадали эти строки.
Но почему в типовой обработке все работает, а в моей нет?
В самом результате на моей тестовой базе 8 строк.
При этом один документ создает 3 строки, которые отличаются только реквизитом "Дата платежа". Если этот документ распровести, то ошибка исчезает.
То есть причина ошибки действительно задвоение строк с одной ссылкой. Но мне то нужно чтобы в динамический список попадали эти строки.
Но почему в типовой обработке все работает, а в моей нет?
ВЫБРАТЬ
Заявка.Ссылка КАК Ссылка,
....
ИЗ
РегистрСведений.ГрафикПлатежей КАК ГрафикПлатежей
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявкаНаРасходованиеДенежныхСредств КАК Заявка
очевидно, что причина именно в том, что поле Ссылка не уникально.
основную таблица списка может заменить или убрать - это больно, но иначе не сядете на два стула
(6) Есть строки табличной части одного документа, это не прямо дубли.
Я сохраняю типовую обработку как внешнюю. Меняю запрос динамического списка, запускаю обработку как внешнюю - работает как надо.
Добавляю форму типовой обработки в расширение, в форме запрос динамического списка заменяю тем, что сделал во внешней. Создаю обработчик для процедуры "ПриСозданииНаСервере" после в форме расширения, там указываю нужные параметры.
Не работает.
Запрос то один и тот же, но внешняя обработка работает, а расширенная типовая не работает. Как такое может быть?
Или у меня ошибка в рассуждениях и в этом порядке что-то неправильно?
Я сохраняю типовую обработку как внешнюю. Меняю запрос динамического списка, запускаю обработку как внешнюю - работает как надо.
Добавляю форму типовой обработки в расширение, в форме запрос динамического списка заменяю тем, что сделал во внешней. Создаю обработчик для процедуры "ПриСозданииНаСервере" после в форме расширения, там указываю нужные параметры.
Не работает.
Запрос то один и тот же, но внешняя обработка работает, а расширенная типовая не работает. Как такое может быть?
Или у меня ошибка в рассуждениях и в этом порядке что-то неправильно?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот