О жизни ›
Проблема создания документа Событие ›
#1
24.05.13 8:47
Добрый день!
Подскажите, пожалуйста. Делаю проверку цен перед проведением документ. То есть Необходимо проверить цены контрагента с ценами указанными в документе ПТУ. Если они не равно сообщить о этом пользователю и создать документ «Событие» на имя руководителя сотрудника.
Пробовал все это дело делать сначала в процедуре ОбработкаПроведения(), ПередЗаписью(), ПриЗаписи() Рерультат одни и тот же. Проверка проходит а документ не создается. Вернее он пишет, что документ создан, а в списке документов его нет. Делаешь открытие документа, он открывает и в верху документа пишется «Проведен *» пытаешься его записать происходит ошибка.
{Документ.Событие.Форма.ФормаДокумента.Форма(1158)}: Ошибка при вызове метода контекста (ЭтоНовый) Если ЭтоНовый() Тогда
по причине:
Документ не выбран
Вот сам весь код на это дело:
МожноМенятьЦенуВДокументе = УправлениеДопПравамиПользователей.РазрешитьРедактированиеЦенВДокументах();
Если МожноМенятьЦенуВДокументе Тогда
Разница = "";
ОтказПроведения = Ложь;
Для Каждого СтрТовар из Товары Цикл
Отбор = Новый Структура;
Отбор.Вставить("Номенклатура", СтрТовар.Номенклатура);
Отбор.Вставить("ХарактеристикаНоменклатуры", СтрТовар.ХарактеристикаНоменклатуры);
Отбор.Вставить("ТипЦен", ТипЦен);
ЦенаКонтрагента = РегистрыСведений.ЦеныНоменклатурыКонтрагентов.ПолучитьПоследнее(Дата, Отбор);
Если Не ЦенаКонтрагента.Цена = 0 Тогда
Если Не ЦенаКонтрагента.Цена = СтрТовар.Цена тогда
Сообщить("Установленая цена в документе для номенклатуры """ + СтрТовар.Номенклатура + " " + СтрТовар.ХарактеристикаНоменклатуры + " "
+ СтрТовар.Цена + " р. "" отличается от цены контрагента " + """" + Контрагент + " " + ЦенаКонтрагента.Цена + " р.""", СтатусСообщения.ОченьВажное);
Разница = Разница + Строка(("Цена поставщика " + СтрТовар.Номенклатура + " " + СтрТовар.ХарактеристикаНоменклатуры + " - " + ЦенаКонтрагента.Цена + " Цена из документа " + СтрТовар.Номенклатура + " " + СтрТовар.ХарактеристикаНоменклатуры + " - " + СтрТовар.Цена + Символы.ПС));
ОтказПроведения = Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ОтказПроведения Тогда
Сообщить("------------------------------------------------------------------------------------------------------------------" + Символы.ПС + "Проведение документа " + """" + Ссылка + """" + " отменено");
ДокументДляРазницы = ("Пользователь " + ПараметрыСеанса.ТекущийПользователь +" не корректно оприходует документ " + Ссылка);
КонтрагентДляРазницы = ("Поставщик " + Контрагент);
НовДокСобытие = Документы.Событие.СоздатьДокумент();
НовДокСобытие.ВидСобытия = Перечисления.ВидыСобытий.Прочее;
НовДокСобытие.ТипСобытия = Перечисления.ВходящееИсходящееСобытие.Исходящее;
НовДокСобытие.Дата = НачалоДня(Дата);
НовДокСобытие.ВидОбъекта = Перечисления.ВидыОбъектовСобытия.Контрагент;
НовДокСобытие.СостояниеСобытия = Перечисления.СостоянияСобытий.Запланировано;
НовДокСобытие.Контрагент = Контрагент;
НовДокСобытие.ОписаниеСобытия = "Ошибочко оприходуется документ " + Формат(Дата, "ДФ=dd.MM.yyyy") + " № " + Номер;
НовДокСобытие.СодержаниеСобытия = ДокументДляРазницы + Символы.ПС + КонтрагентДляРазницы + Символы.ПС + Разница;
НовДокСобытие.НачалоСобытия = НачалоДня(Дата) + 28800;
НовДокСобытие.ОкончаниеСобытия = НачалоДня(Дата) + 3600*24*2;
НовДокСобытие.НапомнитьОСобытии = Истина;
НовДокСобытие.ИнтервалНапоминания = 300;
НовДокСобытие.Важность = Перечисления.Важность.Высокая;
НовДокСобытие.Ответственный = глЗначениеПеременной("глТекущийПользователь");
НовДокСобытие.Записать(РежимЗаписиДокумента.Проведение);
Сообщить("Создан документ " + НовДокСобытие.Ссылка + " Ответственный: " + НовДокСобытие.Ответственный);
Отказ = Истина;
КонецЕсли;
КонецЕсли;
Как сделать правильно создание документа Событие, если основание отказ от проведения или записи