Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 окт 2026, 09:49

Найти и дозаписать существующий документ

Автор Funt432286, Вчера в 17:46

alexandr_ll и 4 гостей просматривают эту тему.

Funt432286

Всем доброго времени суток!

Есть такая проблемка! У меня код который формирует документ Приход/Расход!
При создании документа система должна проверить, есть ли уже документ с нужным Заказчиком за сегодня, если нет - создаем новый, если есть - то записываем еще одну строчку в этот долкумент!

В итоге код не может найти и все время пишет новый документ!

// **************** поиск Расходного документа по Заказчику и дате ***********************
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РасходныйОрдерНаТовары.Дата,
| РасходныйОрдерНаТовары.Контрагент,
| РасходныйОрдерНаТовары.Ссылка
|ИЗ
| Документ.РасходныйОрдерНаТовары КАК РасходныйОрдерНаТовары
|ГДЕ
| РасходныйОрдерНаТовары.Дата МЕЖДУ &ДатаНач И &ДатаКон
| И РасходныйОрдерНаТовары.Контрагент.Наименование = &Наименование";

Запрос.УстановитьПараметр("ДатаНач", НачалоДня(ТекущаяДата()));
Запрос.УстановитьПараметр("ДатаКон", КонецДня(ТекущаяДата()));
Запрос.УстановитьПараметр("Наименование", Контрагент);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаРасход = РезультатЗапроса.Выбрать();

Если ВыборкаРасход.Количество() = 0 Тогда
      .....
    Иначе
      .....
    КонецЕсли

alexandr_ll

Funt432286, Ну тк Контрагент не может быть равен Наименование. Это разные сущности.

Funt432286

alexandr_ll, Контрагент - переменная приходит строковой

Проблема с датой, система когда записывает документ, присваивает дату и время.
А когда через какое-то время в этот же день еще создаю документ, время уже другое!

У меня появилась идея создать еще один реквизит ДатаСклад и присваивать ему только дату и тогда искать документ по этому реквизиту

alexandr_ll

Funt432286, Из вашего кода следует, что Контрагент - это ссылка. например
ЦитироватьРасходныйОрдерНаТовары.Контрагент.Наименование
Наименование не может быть у строки.
При чем тут время? Вы же делаете запрос за весь день.
ЦитироватьЗапрос.УстановитьПараметр("ДатаНач", НачалоДня(ТекущаяДата()));
    Запрос.УстановитьПараметр("ДатаКон", КонецДня(ТекущаяДата()));

antoneus

Значит, наименование не совпадает. Лишний пробел, точка, запятая, латинские буквы вместо русских, кавычки-ёлочки вместо прямых - что угодно.

Справочники.Контрагенты.НайтиПоНаименованию(Контрагент) - что возвращает?

Теги:

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

Рейтинг@Mail.ru

Поиск