автоматические создание на основании

1. Terebinator 17.12.18 08:05 Сейчас в теме
Имеется программный код
Док = Документы.ПриходныйКассовыйОрдер.СоздатьДокумент();

Док.ОбработкаЗаполнения(Объект.Ссылка, Истина);
Док.Дата = ТекущаяДата();
Док.Записать(РежимЗаписиДокумента.Проведение);

Он создает автоматически документ в Приходный кассовый ордер когда нажимаешь провести и закрыть в Отчет О Комиссионерах. Однако есть ряд значений контрагентов когда не нужно создавать документ в приходном кассовом ордере. какой код задать исключение? я начинающий программист
По теме из базы знаний
Найденные решения
9. comptr 31 17.12.18 12:42 Сейчас в теме
(8) Только я немного перепутал, НайтиСтроки возвращает массив, так что надо проверять, сравнивая Количество() с нулем:
Если Объект.Контрагент.ДополнительныеРеквизиты.НайтиСтроки(СтруктураПоиска).Количество() = 0 Тогда
...
Если НайденныеСтроки.Количество() > 0 И НайденныеСтроки[0].Значение = Ложь Тогда
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. EVKash 14 17.12.18 08:15 Сейчас в теме
(1)
Однако есть ряд значений контрагентов когда не нужно создавать документ в приходном кассовом ордере.

Ряд значений - это как? Типа этот, этот и этот? Или есть какой-то критерий отбора?
3. Terebinator 17.12.18 08:17 Сейчас в теме
Есть контрагент называемый "СтройКапитал" вот для них не нужно автоматическое создание в приходном кассовом ордере
4. EVKash 14 17.12.18 08:22 Сейчас в теме
(3)
Если НЕ СтрНайти(ВРег(Объект.Контрагент.Наименование), ВРег("СтройКапитал")) Тогда
Док = Документы.ПриходныйКассовыйОрдер.СоздатьДокумент(); 

Док.ОбработкаЗаполнения(Объект.Ссылка, Истина); 
Док.Дата = ТекущаяДата(); 
Док.Записать(РежимЗаписиДокумента.Проведение); 
КонецЕсли;
5. alalsl 11 17.12.18 08:23 Сейчас в теме
(3)КонтрагентИсключения=Справочники.Контрагенты.НайтиПоНаименованию("СтройКапитал");
Если Контрагент<>КонтрагентИсключения тогда
Док = Документы.ПриходныйКассовыйОрдер.СоздатьДокумент();

Док.ОбработкаЗаполнения(Объект.Ссылка, Истина);
Док.Дата = ТекущаяДата();
Док.Записать(РежимЗаписиДокумента.Проведение);
КонецЕсли;


///P.S. Пишите конфигурацию или хотя бы какие формы)
6. Terebinator 17.12.18 08:35 Сейчас в теме
8.3 БП ФормаДокумента Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
7. comptr 31 17.12.18 09:37 Сейчас в теме
Не стоит привязываться к наименованию контрагентов в коде, иначе для каждого нового контрагента придется исправлять код.
Правильнее будет завести доп.реквизит с типом Булево для контрагента, например, "Не создать автоматически ПКО" и устанавливать его у контрагентов-исключений.
А дальше перед созданием ПКО проверять значения этого доп.реквизита.
Я не знаю, какой версии БСП используется в БП и есть ли там у доп.реквизитов поле УникальныйКодДляПоля, по которому можно искать этот доп.реквизит, но даже без этого можно найти доп.реквизит по имени.

Код будет примерно такой:
//ДопРеквизитНеСоздаватьПКО = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("УникальныйКодДляПоля", "Доп_aa544c92_c");
ДопРеквизитНеСоздаватьПКО = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Имя твоего доп.реквизита");
СтруктураПоиска = Новый Структура("Свойство", ДопРеквизитНеСоздаватьПКО );
// Тут два варианта - если доп.реквизит не заполнен, то в ТЧ ДополнительныеРеквизиты может не быть строки со свойством ДопРеквизитНеСоздаватьПКО, либо будет строка со значеним Ложь
// 1 вариант
Если Объект.Контрагент.ДополнительныеРеквизиты.НайтиСтроки(СтруктураПоиска) = Неопределено Тогда
    // Создаешь ПКО
КонецЕсли;
// 2 вариант
НайденныеСтроки = Объект.Контрагент.ДополнительныеРеквизиты.НайтиСтроки(СтруктураПоиска);
Если НайденныеСтроки <> Неопределено И НайденныеСтроки[0].Значение = Ложь Тогда
    // Создаешь ПКО
КонецЕсли;
Показать
8. Terebinator 17.12.18 10:49 Сейчас в теме
Спасибо. это то что нужно!
9. comptr 31 17.12.18 12:42 Сейчас в теме
(8) Только я немного перепутал, НайтиСтроки возвращает массив, так что надо проверять, сравнивая Количество() с нулем:
Если Объект.Контрагент.ДополнительныеРеквизиты.НайтиСтроки(СтруктураПоиска).Количество() = 0 Тогда
...
Если НайденныеСтроки.Количество() > 0 И НайденныеСтроки[0].Значение = Ложь Тогда
Оставьте свое сообщение

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