Ошибся в проектировании регистра цен

Клиент в Нетленке обратился с проблемой — неправильно заполняется последняя закупочная цена.

Эту доработку делал я. Решил проверить запрос. Он вроде бы правильный:

"ВЫБРАТЬ
|	ТЗ.Номенклатура КАК Номенклатура,
|	ТЗ.НомерСтроки КАК НомерСтроки
|ПОМЕСТИТЬ ТЗ
|ИЗ
|	&ТЗ КАК ТЗ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|	ТЗ.Номенклатура КАК Номенклатура,
|	ТЗ.НомерСтроки КАК НомерСтроки,
|	ЕСТЬNULL(ТЦ.Цена, 0) КАК Значение,
|	ТЦ.Поставщик КАК Поставщик
|ИЗ
|	ТЗ КАК ТЗ
|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗакупочныеЦены.СрезПоследних(&Дата, ) КАК ТЦ
|		ПО ТЗ.Номенклатура = ТЦ.Номенклатура"

В отладчике увидел, что запрос по одному товару выдает несколько строк по разным поставщикам.

Поправил запрос так:

"ВЫБРАТЬ
|	ТЗ.Номенклатура КАК Номенклатура,
|	ТЗ.НомерСтроки КАК НомерСтроки
|ПОМЕСТИТЬ ТЗ
|ИЗ
|	&ТЗ КАК ТЗ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|	ТЗ.Номенклатура КАК Номенклатура,
|	ТЗ.НомерСтроки КАК НомерСтроки,
|	ЕСТЬNULL(ТЦДетали.Цена, 0) КАК Значение,
|	ТЦДетали.Поставщик КАК Поставщик
|ИЗ
|	ТЗ КАК ТЗ
|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗакупочныеЦены.СрезПоследних(&Дата, ) КАК ТЦ
|		ПО ТЗ.Номенклатура = ТЦ.Номенклатура
|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗакупочныеЦены КАК ТЦДетали
|		ПО (ТЦ.Номенклатура = ТЦДетали.Номенклатура)
|			И (ТЦ.Период = ТЦДетали.Период)
|			И (ТЦ.Регистратор = ТЦДетали.Регистратор)
|			И (ТЦ.Поставщик = ТЦДетали.Поставщик)";

Но это не помогло.

Тогда посмотрел структуру регистра:

И понял, что ошибся. Поправил структуру:

В итоге перепровел документы по регистру цен, чтобы проставились поставщики. Цены остались, а поставщики нет:

Бывает и я ошибаюсь.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

комментария 2

  1. rzd:

    А как могло в принципе «помочь» присоединение таблицы регистра?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *