Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 18:56

проверка на повтор?

Автор надюшка, 26 окт 2011, 08:02

0 Пользователей и 1 гость просматривают эту тему.

надюшка

Документ создается на основании другого, в первом документе номенклатура может повторятся несколько раз, во втором документе только раз.
При переносе по документу основании сейчас столбец с номенклатурой переноситься без изменений. (идентичен в обоих документах)
необходимо при переносе во второй документ делать проверку, чтобы номенклатура не дублировалась????
что имеем сейчас:
Для каждого СтрокаТ из ПараметрОснование.Товары цикл
Нов = ТаблицаЦен.Добавить();
Нов.Номенклатура = СтрокаТ.Номенклатура;
КонецЦикла;

has

Выполните запрос к табличной части документа основания и сгруппируйте по номенклатуре

надюшка

у меня с запросами совсем туго, можно более подробное описание процесса?? :trhregerhg:

has

Цитата: надюшка от 26 окт 2011, 08:31
у меня с запросами совсем туго, можно более подробное описание процесса?? :trhregerhg:
Документы какие используются?

надюшка

Документ Основание -РегистрацияПравилФормированияЦен
Документ Создается - УстановкаЦенНоменклатуры

has

Не знаю какие там реквизиты табличной части нужны, но примерно так

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|Регистрация.Номенклатура,
|Сумма(Регистрация.Количество)
|ИЗ
|Документ.РегистрацияПравилФормированияЦен.Товары КАК Регистрация
|ГДЕ РегистрацияПравилФормированияЦен.Товары.Ссылка = &Основание
|СГРУППИРОВАТЬ ПО
|Регистрация.Номенклатура";

Запрос.УстановитьЗначениеПараметра("Основание", ПараметрОснование);
Выборка = Запрос.Выполнить.Выбрать();
Пока Выборка.Следующий() Цикл
   Нов = ТаблицаЦен.Добавить();
   Нов.Номенклатура = Выборка.Номенклатура;
   //тут дальше заполняем, если необходимо
КонецЦикла;

надюшка

вот такая ошибка -Метод объекта не обнаружен (УстановитьЗначениеПараметра)
                      Запрос.УстановитьЗначениеПараметра("Основание", ПараметрОснование);

надюшка

ТипЗнч(ПараметрОснование) = Тип("ДокументСсылка.РегистрацияПравилФормированияЦен")

has

Запроса нет значит, я же не знаю как Вы скопировали этот код. Либо покажите скрин модуля, куда вставляете запрос

надюшка

Имеем вот такой код:
ИначеЕсли ТипЗнч(ПараметрОснование) = Тип("ДокументСсылка.РегистрацияПравилФормированияЦен") Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|Регистрация.Номенклатура,
|Сумма(Регистрация.Количество)
|ИЗ
|Документ.РегистрацияПравилФормированияЦен.Товары КАК Регистрация
|ГДЕ РегистрацияПравилФормированияЦен.Товары.Ссылка = &Основание
|СГРУППИРОВАТЬ ПО
|Регистрация.Номенклатура";
Запрос.УстановитьПараметр("Основание", ПараметрОснование.Товары);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Нов = ТаблицаЦен.Добавить();
Нов.Номенклатура = Выборка.Номенклатура;
КонецЦикла;
КонецЕсли;

и вот такую ошибку
{Документ.УстановкаЦенНоменклатуры.Форма.ФормаДокумента(1352)}:
Ошибка при вызове метода контекста (Выполнить)
   РезультатЗапроса = Запрос.Выполнить();
по причине:

по причине:
{(6, 5)}: Поле не найдено "РегистрацияПравилФормированияЦен.Товары.Ссылка"
ГДЕ <<?>>РегистрацияПравилФормированияЦен.Товары.Ссылка = &Основание

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск