Добрый день!...Пытаюсь сделать так что бы в обработке подбора номенклатуры ( Динамический список) хочу добавить колонки "счет "и "Склад" "Остаток"
НО ВЫБИВАЕТ ОШИБКА...дублируются ссылки но не могу понять где и как...
Запрос:
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
СправочникНоменклатура.Наименование КАК Наименование,
СправочникНоменклатура.Артикул КАК Артикул,
СправочникНоменклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
СправочникНоменклатура.Услуга КАК Услуга,
СправочникНоменклатура.Код КАК Код,
СправочникНоменклатура.НаименованиеПолное КАК НаименованиеПолное,
ЕСТЬNULL(ХозрасчетныйОстатки.Счет, "<>") КАК Счет,
ЕСТЬNULL(ХозрасчетныйОстатки.Субконто3, "<>") КАК Склад,
ЕСТЬNULL(ХозрасчетныйОстатки.КоличествоОстаток, 0) КАК Остаток
ИЗ
Справочник.Номенклатура КАК СправочникНоменклатура
ПОЛНОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки КАК ХозрасчетныйОстатки
ПО СправочникНоменклатура.Ссылка = ХозрасчетныйОстатки.Субконто1
ГДЕ
НЕ СправочникНоменклатура.ЭтоГруппа
В запросе используйте Левое соединение.
Но для таких вещей делаются отчеты. Если очень хочется в ДС, то лучше использовать событие ПриПолученииДанныхНаСервере на форме.
Если по какой-то номенклатуре есть остаток на двух складах, то будет две записи с одной и той же номенклатурой:
Номенклатура1, Склад_1, 10
Номенклатура1, Склад_2, 15
Вот и дублирование по полю "Ссылка".
Мне кажется, лучше сделать отдельную таблицу для отображения остатков по выделенной строке, и отображать и заполнять её только если поставлена галочка "Отображать остатки".
Заполнять её через событие "ПриАктивизацииСтроки", но нужно учесть, что в этой процедуре нельзя делать контекстный вызов сервера, т.е. &НаСервере, а можно только безконтекстный, т.е. &НаСервереБезКонтекста (подробнее можно почитать вот тут: https://infostart.ru/public/1225834 ) и клиентскую процедуру заполнения делать через однократный вызов ПодключитьОбработчикОжидания.