Запрет на перепроведение или изменение накладной РТиУ

1. lambert 27.12.17 15:06 Сейчас в теме
Добрый день!

Платформа 8.2 УТ 10.3 Есть сводная накладная в которой формируются документы РТиУ по водителю или экспедитору. Как запретить изменение или перепроведение накладной РТиУ, если накладная уже попала в сводную накладную. и сводная проведена.
Подскажите где, что читать или вообще откуда начать.
Найденные решения
8. lambert 27.12.17 21:26 Сейчас в теме
(2) Спасибо за помощь.
Решил таким образом через КЗ, не знаю правильно ли, но оно работает. В Модуль объекта документа РТУ в ОбработкеПроведения, в конце добавил запрос

Запрос = Новый Запрос; 
    Запрос.Текст = "ВЫБРАТЬ
                   |	СводнаяНакладнаяРасходныеНакладные.РасходнаяНакладная
                   |ИЗ
                   |	Документ.СводнаяНакладная.РасходныеНакладные КАК СводнаяНакладнаяРасходныеНакладные
                   |ГДЕ
                   |	СводнаяНакладнаяРасходныеНакладные.РасходнаяНакладная = &Ссылка
                   |			И СводнаяНакладнаяРасходныеНакладные.РасходнаяНакладная.Проведен";
				   
				   Запрос.УстановитьПараметр("Ссылка", Ссылка);
    РезультатЗапроса = Запрос.Выполнить(); 
    Если Не РезультатЗапроса.Пустой() Тогда 
        Отказ = истина
    КонецЕсли;
Показать
9. plevakin 28.12.17 08:41 Сейчас в теме
(8) Правильно, но по смыслу условие "И СводнаяНакладнаяРасходныеНакладные.РасходнаяНакладная.Проведен" надо заменить на "И СводнаяНакладнаяРасходныеНакладные.Ссылка.Проведен", т.е. лучше искать не проведенные расходные накладные, а проведенную сводную накладную.

Легко провести тест. Если расходная накладная попала в проведенную сводную и сводная проведена, то непроведенная расходная накладная проведется, и наоборот, если сводная распроведена или например помечена на удаление, но в ней есть реализация, то реализацию нельзя будет провести. По мне так, это не хорошо.

И еще надо проверить отмену проведения документа реализации, скорее всего туда тоже надо поставить проверку.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. plevakin 27.12.17 15:16 Сейчас в теме
Как вариант, в обработке проведения РТиУ добавить что-то вроде

Запрос = Новый Запрос; 
	Запрос.Текст = "Выбрать Т.РеализацияТоваровУслуг из Документы.СводнаяНакладная.НеЗнаюКакНазываетсяТЧГдеЛежатРТиУ КАК Т Где РеализацияТоваровУслуг = &Ссылка И Документы.СводнаяНакладная.Проведен";
	Запрос.УстановитьПараметр("Ссылка", Ссылка);
	РезультатЗапроса = Запрос.Выполнить(); 
	Если Не РеузультатЗапроса.Пустой() Тогда 
		Отказ = истина
	КонецЕсли;
3. lambert 27.12.17 17:43 Сейчас в теме
(2) Выводит ошибку:
{Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(3362,13)}: Переменная не определена (РеузультатЗапроса)
Если Не <<?>>РеузультатЗапроса.Пустой() Тогда (Проверка: Толстый клиент (обычное приложение))
4. lambert 27.12.17 18:35 Сейчас в теме
(2) Только ша увидел "РеузультатЗапрооса"
5. lambert 27.12.17 19:28 Сейчас в теме
8. lambert 27.12.17 21:26 Сейчас в теме
(2) Спасибо за помощь.
Решил таким образом через КЗ, не знаю правильно ли, но оно работает. В Модуль объекта документа РТУ в ОбработкеПроведения, в конце добавил запрос

Запрос = Новый Запрос; 
    Запрос.Текст = "ВЫБРАТЬ
                   |	СводнаяНакладнаяРасходныеНакладные.РасходнаяНакладная
                   |ИЗ
                   |	Документ.СводнаяНакладная.РасходныеНакладные КАК СводнаяНакладнаяРасходныеНакладные
                   |ГДЕ
                   |	СводнаяНакладнаяРасходныеНакладные.РасходнаяНакладная = &Ссылка
                   |			И СводнаяНакладнаяРасходныеНакладные.РасходнаяНакладная.Проведен";
				   
				   Запрос.УстановитьПараметр("Ссылка", Ссылка);
    РезультатЗапроса = Запрос.Выполнить(); 
    Если Не РезультатЗапроса.Пустой() Тогда 
        Отказ = истина
    КонецЕсли;
Показать
9. plevakin 28.12.17 08:41 Сейчас в теме
(8) Правильно, но по смыслу условие "И СводнаяНакладнаяРасходныеНакладные.РасходнаяНакладная.Проведен" надо заменить на "И СводнаяНакладнаяРасходныеНакладные.Ссылка.Проведен", т.е. лучше искать не проведенные расходные накладные, а проведенную сводную накладную.

Легко провести тест. Если расходная накладная попала в проведенную сводную и сводная проведена, то непроведенная расходная накладная проведется, и наоборот, если сводная распроведена или например помечена на удаление, но в ней есть реализация, то реализацию нельзя будет провести. По мне так, это не хорошо.

И еще надо проверить отмену проведения документа реализации, скорее всего туда тоже надо поставить проверку.
10. lambert 29.12.17 04:36 Сейчас в теме
(9) Спасибо. Так и сделал.
6. lambert 27.12.17 20:15 Сейчас в теме
{Документ.РеализацияТоваровУслуг.МодульОбъекта(5474)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
{(1, 37)}: Таблица не найдена "Документы.СводнаяНакладная.РасходныеНакладные"
Выбрать Т.РеализацияТоваровУслуг из <<?>>Документы.СводнаяНакладная.РасходныеНакладные КАК Т Где РеализацияТоваровУслуг = &Ссылка И Документы.СводнаяНакладная.Проведен
7. lambert 27.12.17 20:22 Сейчас в теме
Не получается(
Прикрепленные файлы:
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот