Имеется программный код
Док = Документы.ПриходныйКассовыйОрдер.СоздатьДокумент();
Док.ОбработкаЗаполнения(Объект.Ссылка, Истина);
Док.Дата = ТекущаяДата();
Док.Записать(РежимЗаписиДокумента.Проведение);
Он создает автоматически документ в Приходный кассовый ордер когда нажимаешь провести и закрыть в Отчет О Комиссионерах. Однако есть ряд значений контрагентов когда не нужно создавать документ в приходном кассовом ордере. какой код задать исключение? я начинающий программист
Док = Документы.ПриходныйКассовыйОрдер.СоздатьДокумент();
Док.ОбработкаЗаполнения(Объект.Ссылка, Истина);
Док.Дата = ТекущаяДата();
Док.Записать(РежимЗаписиДокумента.Проведение);
Он создает автоматически документ в Приходный кассовый ордер когда нажимаешь провести и закрыть в Отчет О Комиссионерах. Однако есть ряд значений контрагентов когда не нужно создавать документ в приходном кассовом ордере. какой код задать исключение? я начинающий программист
По теме из базы знаний
- Документ на документ. Автоматическое создание связанных документов
- Автоматическое создание счета-фактуры при записи или проведении документа Расходная накладная в УНФ
- Автоматическое создание документов производства в УНФ
- Автоматическое создание документа "Корректировка задолженности" на основании данных отчета Ведомость расчетов с клиентами. УТ 11.5
- Автоматическое создание Установки цен номенклатуры на основании Поступления товаров и услуг. УТ 11.5
Найденные решения
(8) Только я немного перепутал, НайтиСтроки возвращает массив, так что надо проверять, сравнивая Количество() с нулем:
Если Объект.Контрагент.ДополнительныеРеквизиты.НайтиСтроки(СтруктураПоиска).Количество() = 0 Тогда
...
Если НайденныеСтроки.Количество() > 0 И НайденныеСтроки[0].Значение = Ложь Тогда
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3)
Если НЕ СтрНайти(ВРег(Объект.Контрагент.Наименование), ВРег("СтройКапитал")) Тогда
Док = Документы.ПриходныйКассовыйОрдер.СоздатьДокумент();
Док.ОбработкаЗаполнения(Объект.Ссылка, Истина);
Док.Дата = ТекущаяДата();
Док.Записать(РежимЗаписиДокумента.Проведение);
КонецЕсли;
(3)КонтрагентИсключения=Справочники.Контрагенты.НайтиПоНаименованию("СтройКапитал");
Если Контрагент<>КонтрагентИсключения тогда
Док = Документы.ПриходныйКассовыйОрдер.СоздатьДокумент();
Док.ОбработкаЗаполнения(Объект.Ссылка, Истина);
Док.Дата = ТекущаяДата();
Док.Записать(РежимЗаписиДокумента.Проведение);
КонецЕсли;
///P.S. Пишите конфигурацию или хотя бы какие формы)
Если Контрагент<>КонтрагентИсключения тогда
Док = Документы.ПриходныйКассовыйОрдер.СоздатьДокумент();
Док.ОбработкаЗаполнения(Объект.Ссылка, Истина);
Док.Дата = ТекущаяДата();
Док.Записать(РежимЗаписиДокумента.Проведение);
КонецЕсли;
///P.S. Пишите конфигурацию или хотя бы какие формы)
Не стоит привязываться к наименованию контрагентов в коде, иначе для каждого нового контрагента придется исправлять код.
Правильнее будет завести доп.реквизит с типом Булево для контрагента, например, "Не создать автоматически ПКО" и устанавливать его у контрагентов-исключений.
А дальше перед созданием ПКО проверять значения этого доп.реквизита.
Я не знаю, какой версии БСП используется в БП и есть ли там у доп.реквизитов поле УникальныйКодДляПоля, по которому можно искать этот доп.реквизит, но даже без этого можно найти доп.реквизит по имени.
Код будет примерно такой:
Правильнее будет завести доп.реквизит с типом Булево для контрагента, например, "Не создать автоматически ПКО" и устанавливать его у контрагентов-исключений.
А дальше перед созданием ПКО проверять значения этого доп.реквизита.
Я не знаю, какой версии БСП используется в БП и есть ли там у доп.реквизитов поле УникальныйКодДляПоля, по которому можно искать этот доп.реквизит, но даже без этого можно найти доп.реквизит по имени.
Код будет примерно такой:
//ДопРеквизитНеСоздаватьПКО = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("УникальныйКодДляПоля", "Доп_aa544c92_c");
ДопРеквизитНеСоздаватьПКО = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Имя твоего доп.реквизита");
СтруктураПоиска = Новый Структура("Свойство", ДопРеквизитНеСоздаватьПКО );
// Тут два варианта - если доп.реквизит не заполнен, то в ТЧ ДополнительныеРеквизиты может не быть строки со свойством ДопРеквизитНеСоздаватьПКО, либо будет строка со значеним Ложь
// 1 вариант
Если Объект.Контрагент.ДополнительныеРеквизиты.НайтиСтроки(СтруктураПоиска) = Неопределено Тогда
// Создаешь ПКО
КонецЕсли;
// 2 вариант
НайденныеСтроки = Объект.Контрагент.ДополнительныеРеквизиты.НайтиСтроки(СтруктураПоиска);
Если НайденныеСтроки <> Неопределено И НайденныеСтроки[0].Значение = Ложь Тогда
// Создаешь ПКО
КонецЕсли;
Показать
(8) Только я немного перепутал, НайтиСтроки возвращает массив, так что надо проверять, сравнивая Количество() с нулем:
Если Объект.Контрагент.ДополнительныеРеквизиты.НайтиСтроки(СтруктураПоиска).Количество() = 0 Тогда
...
Если НайденныеСтроки.Количество() > 0 И НайденныеСтроки[0].Значение = Ложь Тогда
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот