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

ошибка , в чем причина

Автор Сергей Федоров, 22 апр 2017, 16:06

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

Сергей Федоров

Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.ПродажаТоваров.МодульОбъекта(10)}: Ошибка при вызове метода контекста (Добавить)
   ЭлементБлокировки = Блокировка.Добавить("РегистрНакопленияОстаткиНоменклатуры ");
по причине:
Недопустимое значение параметра (параметр номер '1') (Неверное имя пространства блокировок - РегистрНакопленияОстаткиНоменклатуры )
Процедура ДвиженияПоРегиструОстаткиНоменклатуры(Отказ, Режим)
   Блокировка = Новый БлокировкаДанных;
   ЭлементБлокировки = Блокировка.Добавить("РегистрНакопленияОстаткиНоменклатуры ");
   ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
   ДанныеБлокировки = Товары.Выгрузить(,"Номенклатура");
   ДанныеБлокировки.Колонки.Добавить("Склад");
   ДанныеБлокировки.ЗаполнитьЗначения(Склад,"Склад");
   ЭлементБлокировки.ИсточникДанных = ДанныеБлокировки;
   ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура","Номенклатура");
   ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Склад","Склад");
   Блокировка.Заблокировать();
   Движения.ОстаткиНоменклатуры.Очистить();
   Движения.ОстаткиНоменклатуры.Записать();
   Движения.ОстаткиНоменклатуры.Записывать=Истина   ;
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |   ПродажаТоваровТовары.Номенклатура КАК Номенклатура,
   |   СУММА(ПродажаТоваровТовары.Количество) КАК Количество,
   |   МИНИМУМ(ПродажаТоваровТовары.НомерСтроки) КАК НомерСтроки
   |ПОМЕСТИТЬ ТаблицаДокумента
   |ИЗ
   |   Документ.ПродажаТоваров.Товары КАК ПродажаТоваровТовары
   |ГДЕ
   |   ПродажаТоваровТовары.Ссылка = &Ссылка
   |
   |СГРУППИРОВАТЬ ПО
   |   ПродажаТоваровТовары.Номенклатура
   |
   |ИНДЕКСИРОВАТЬ ПО
   |   Номенклатура
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ
   |   ТаблицаДокумента.Номенклатура,
   |   ТаблицаДокумента.Количество,
   |   ТаблицаДокумента.НомерСтроки,
   |   ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
   |   ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СуммаОстаток, 0) КАК СуммаОстаток
   |ИЗ
   |   ТаблицаДокумента КАК ТаблицаДокумента
   |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
   |            &МоментДокумента,
   |            Склад = &Склад
   |               И Номенклатура В
   |                  (ВЫБРАТЬ
   |                     ТаблицаДокумента.Номенклатура
   |                  ИЗ
   |                     ТаблицаДокумента КАК ТаблицаДокумента)) КАК ОстаткиНоменклатурыОстатки
   |      ПО ТаблицаДокумента.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура";
   
   Если Режим = РежимПроведенияДокумента.Неоперативный Тогда   
      Запрос.УстановитьПараметр("МоментДокумента", МоментВремени());
   Иначе
      Запрос.УстановитьПараметр("МоментДокумента", Неопределено);
   КонецЕсли;
   Запрос.УстановитьПараметр("Склад", Склад);
   Запрос.УстановитьПараметр("Ссылка",Ссылка);
   
   РезультатЗапроса = Запрос.Выполнить();
   
   Выборка = РезультатЗапроса.Выбрать();
   
   Пока Выборка.Следующий() Цикл
      Если Выборка.Количество > Выборка.КоличествоОстаток  Тогда
         Сообщение = Новый СообщениеПользователю;
         Сообщение.Текст = "Остатка товара" + Выборка.Номенклатура
         + "Недостаточно.В документе:"+ Выборка.Количество
         + "ед, остаток:" + Выборка.КоличествоОстаток
         + "ед. ";
         Сообщение.Поле = "Товары["+ Строка(Выборка.НомерСтроки-1)
         + "].Количество" ;
         Сообщение.УстановитьДанные(ЭтотОбъект);
         Сообщение.Сообщить();
         Отказ=Истина;
      Иначе
         Движение = Движения.ОстаткиНоменклатуры.Добавить();
         Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
         Движение.Период = Дата;
         Движение.Номенклатура = Выборка.Номенклатура;
         Движение.Количество = Выборка.Количество;
         Движение.Сумма = Выборка.СуммаОстаток / Выборка.КоличествоОстаток* Выборка.Количество;
         
      КонецЕсли;
   КонецЦикла;

alex0402

Цитата: Сергей Федоров от 22 апр 2017, 16:06ЭлементБлокировки = Блокировка.Добавить("РегистрНакопленияОстаткиНоменклатуры ");

а так?
Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры ")

1)выделяй код.
2)на фига так много копипастить?
Спасибо за Сказать спасибо

Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск