По теме из базы знаний
- Получение списка родительских и подчиненных документов из структуры подчиненности
- Перенос данных из БП 3.0 / БП 2.0 в УПП 1.3 / КА 1.1. Переносятся документы, остатки и справочники
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2/3.0
- Видеокурс-самоучитель "1С:Документооборот 2.1 и 3.0" для самостоятельного внедрения
- Доки: новый сервис электронного документооборота
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Суть в том, что мне нужно по условию отбирать создаваемые заказы. Если заказ попадает по выбранное условие, то мне нужно этот документ проверить, опять же, по нужным мне условиям и дальше либо провести и создать реализацию, либо оставить непроведенным.
(6) Xershi, В общем модуле пишу, в котором прописываю процедуру.
(7) Agapov_Stas, Это я видел. Я не могу понять как к нему обратиться. К примеру ПодпискаНаСобытия.Событие.Источник не опознается.
(6) Xershi, В общем модуле пишу, в котором прописываю процедуру.
(7) Agapov_Stas, Это я видел. Я не могу понять как к нему обратиться. К примеру ПодпискаНаСобытия.Событие.Источник не опознается.
Почитайте, для начала, что такое подписка на событие.
А вообще, создаем подписку с нужным источником (ДокументОбъект.<ВидДокумента>) и событием. Задаем для него обработчик (процедуру) и вперед анализировать входящий параметр процедуры "Источник". Если он соответствует нужным требованиям - выполнять свои какие-то процедуры, если нет - отказ, возврат и то, что душе угодно.
А вообще, создаем подписку с нужным источником (ДокументОбъект.<ВидДокумента>) и событием. Задаем для него обработчик (процедуру) и вперед анализировать входящий параметр процедуры "Источник". Если он соответствует нужным требованиям - выполнять свои какие-то процедуры, если нет - отказ, возврат и то, что душе угодно.
(9) cassper, Да это я понимаю.
Я создал общий модуль с галками сервер и обычное приложение. Вписал в него процедуру. Создал подписку на событие. Выбрал наблюдать за событием при записи для документа Заказ покупателя.
Я не могу понять именно : "анализировать входящий параметр процедуры "Источник"".
Какой строчкой к нему достучаться? Дальше я смогу с ним работать, мне просто не понятно, как именно его вызвать.
Я создал общий модуль с галками сервер и обычное приложение. Вписал в него процедуру. Создал подписку на событие. Выбрал наблюдать за событием при записи для документа Заказ покупателя.
Я не могу понять именно : "анализировать входящий параметр процедуры "Источник"".
Какой строчкой к нему достучаться? Дальше я смогу с ним работать, мне просто не понятно, как именно его вызвать.
(10) squall84, Давайте по порядку.
У нас есть обработчик события, например, это Процедура ЯОбработчикСобытияПриЗаписи(Источник, Отказ) Экспорт
Так вот "Источник" внутри этой самой процедуры-обработчика - это и есть Ваш ДокументОбъект.ЗаказПокупателя. В подписку мы попадаем в том случае, когда отрабатывает событие ПриЗаписи объекта документа.
У нас есть обработчик события, например, это Процедура ЯОбработчикСобытияПриЗаписи(Источник, Отказ) Экспорт
Так вот "Источник" внутри этой самой процедуры-обработчика - это и есть Ваш ДокументОбъект.ЗаказПокупателя. В подписку мы попадаем в том случае, когда отрабатывает событие ПриЗаписи объекта документа.
(11) cassper, Спасибо. Теперь стало понятно. Всё получилось.
А не подскажете последний вопрос?
Не могу придумать, как это написать.
Чтобы условие при записи срабатывало, если документ записывает первый раз. Т.е. мое условие срабатывает постоянно, не важно, создал и записал я документ, или просто перезаписал существующий.
А мне нужно чтобы оно сработало, только когда я записываю документ при создании.
А не подскажете последний вопрос?
Не могу придумать, как это написать.
Чтобы условие при записи срабатывало, если документ записывает первый раз. Т.е. мое условие срабатывает постоянно, не важно, создал и записал я документ, или просто перезаписал существующий.
А мне нужно чтобы оно сработало, только когда я записываю документ при создании.
(17) cassper, Действительно. Работает. Но вот теперь интересная штука.
В событии перед записью я могу определить, что это новый документ, но ведь дальше я не могу с ним работать пока он не запишется.
Затем мне нужно обрабатывать событие при записи, чтобы получать значения из документа.
Я пробовал проверять условие, и если это новый документ, то Записывать источник. Но так 1Ске не нравится.
В событии перед записью я могу определить, что это новый документ, но ведь дальше я не могу с ним работать пока он не запишется.
Затем мне нужно обрабатывать событие при записи, чтобы получать значения из документа.
Я пробовал проверять условие, и если это новый документ, то Записывать источник. Но так 1Ске не нравится.
(19) squall84
Можно в подписке ПередЗаписью добавить для объекта ДополнительныеСвойства и проверять их начение в подписке ПриЗаписи.
Например:
Затем ПриЗаписи:
Можно в подписке ПередЗаписью добавить для объекта ДополнительныеСвойства и проверять их начение в подписке ПриЗаписи.
Например:
Источник.ДополнительныеСвойства.Вставить("ЭтоНовый", Источник.ЭтоНовый);
Затем ПриЗаписи:
ЭтоНовый = Неопределено;
Источник.ДополнительныеСвойства.Свойство("ЭтоНовый", ЭтоНовый);
...
Если НЕ Источник = Неопределено Тогда
...
Если ЭтоНовый Тогда
...
Иначе
...
КонецЕсоли
КонецЕсли;
Показать
(20) cassper, опять ошибку выдает. Пишу код, который ниже на строчку "Источник.ДополнительныеСвойства.Вставить("ЭтоНовый", Источник.ЭтоНовый);" ругается. Ошибка тоже ниже.
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{ОбщийМодуль.Заказ.Модуль(32)}: Поле объекта не обнаружено (ЭтоНовый)
Процедура ЗаказПередЗаписи(Источник, Отказ) Экспорт
Если Источник.ЭтоНовый()
Тогда
Сообщить ("Это Новый Документ" );
Источник.ДополнительныеСвойства.Вставить("ЭтоНовый", Источник.ЭтоНовый);
Иначе Сообщить ("Документ не редактируется")
КонецЕсли;
КонецПроцедуры
ПоказатьОшибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{ОбщийМодуль.Заказ.Модуль(32)}: Поле объекта не обнаружено (ЭтоНовый)
(22) squall84,
Ищите разницу:
и
А я бы сделал так:
Чтобы в обработчике события "ПриЗаписи" было удобно анализировать свойство "ЭтоНовый". В Вашем случае - если не новый документ, то и в доп. свойства ничего записано не будет. Так как у меня сделано - исключит ошибку, например, прямого обращения вида "Источник.ДополнительныеСвойства.ЭтоНовый"
Ищите разницу:
Если Источник.ЭтоНовый()
и
Источник.ЭтоНовый
А я бы сделал так:
Процедура ЗаказПередЗаписи(Источник, Отказ) Экспорт
Если Источник.ЭтоНовый() Тогда
Сообщить ("Это Новый Документ");
Иначе
Сообщить ("Документ не редактируется")
КонецЕсли;
Источник.ДополнительныеСвойства.Вставить("ЭтоНовый", Источник.ЭтоНовый());
КонецПроцедуры
Чтобы в обработчике события "ПриЗаписи" было удобно анализировать свойство "ЭтоНовый". В Вашем случае - если не новый документ, то и в доп. свойства ничего записано не будет. Так как у меня сделано - исключит ошибку, например, прямого обращения вида "Источник.ДополнительныеСвойства.ЭтоНовый"
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот