Программное создание и проведение документа 1С
Возможно ли программное заполнение документа, если реквизиты документы имеют тип ссылка на справочника. Бот получает команду, содержащую реквизиты и на основе их создает, записывает и проводит документ. Возможно ли реализовать такой функционал, если да, то как? Код ниже работает для справочников, но не для документа.
ПРИМЕР КОМАНДЫ: ПОСТУПЛЕНИЕ БОТ ПОЛОЧНЫЙ РЕКВИЗИТ Б21 РЕКВИЗИТ ИВАНОВ ИВАН ИВАНОВИЧ РЕКВИЗИТ НОУТБУК РЕКВИЗИТ 20000 РЕКВИЗИТ 50 РЕКВИЗИТ ШТУК
ПРИМЕР КОМАНДЫ: ПОСТУПЛЕНИЕ БОТ ПОЛОЧНЫЙ РЕКВИЗИТ Б21 РЕКВИЗИТ ИВАНОВ ИВАН ИВАНОВИЧ РЕКВИЗИТ НОУТБУК РЕКВИЗИТ 20000 РЕКВИЗИТ 50 РЕКВИЗИТ ШТУК
Процедура ОбработкаСообщенияСистемыВзаимодействия(Сообщение, ДополнительныеПараметры)
Ответ = СистемаВзаимодействия.СоздатьСообщение(Сообщение.Обсуждение);
ТекстСообщения = Сообщение.Текст;
//Режимы работы бота и разделители текста для потоковой записи
Режим1 = "НОМЕНКЛАТУРА";
Режим2 = "ЯЧЕЙКИ";
Режим3 = "СТЕЛЛАЖИ";
Режим4 = "ПОСТУПЛЕНИЕ";
Ответ.Текст = ТекстСообщения;
Ответ.Записать();
ВыборРежима = СтрРазделить(СтрЗаменить(ТекстСообщения, "БОТ", Символы.ПС), Символы.ПС, Истина);
НоваяЗапись = СтрРазделить(СтрЗаменить(ВыборРежима[1], "ЗАПИСЬ", Символы.ПС), Символы.ПС, Истина);
Режим = СокрП(ВыборРежима[0]);
//Добавление номенклатуры ------------ требуется реализовать единицы измерения
Если Режим = Режим1 Тогда
Счетчик = 0;
Пока Счетчик < НоваяЗапись.Количество() Цикл
Буфер = НоваяЗапись[Счетчик];
ЗаписьРеквизита = СтрРазделить(СтрЗаменить(Буфер, "РЕКВИЗИТ", Символы.ПС), Символы.ПС, Истина);
НовыйЭлемент = Справочники.Товары.СоздатьЭлемент();
НовыйЭлемент.Наименование = ЗаписьРеквизита[0];
НовыйЭлемент.ЕдиницаИзмерения = ЗаписьРеквизита[1];
НовыйЭлемент.Записать();
Счетчик = Счетчик + 1;
КонецЦикла;
Ответ.Текст = "Данные по номенклатуре успешно внесены";
Ответ.Записать();
КонецЕсли;
//Добавление ячеек
Если Режим = Режим2 Тогда
Счетчик = 0;
Пока Счетчик < НоваяЗапись.Количество() Цикл
Буфер = НоваяЗапись[Счетчик];
ЗаписьРеквизита = СтрРазделить(СтрЗаменить(Буфер, "РЕКВИЗИТ", Символы.ПС), Символы.ПС, Истина);
НовыйЭлемент = Справочники.Ячейки.СоздатьЭлемент();
НовыйЭлемент.Наименование = ЗаписьРеквизита[0];
НовыйЭлемент.МаксимальнаяНагрузка = ЗаписьРеквизита[1];
НовыйЭлемент.ДатаУстановки = ТекущаяДата();
НовыйЭлемент.Записать();
Счетчик = Счетчик + 1;
КонецЦикла;
Ответ.Текст = "Данные по ячейкам успешно внесены";
Ответ.Записать();
КонецЕсли;
//Добавление стеллажей
Если Режим = Режим3 Тогда
Счетчик = 0;
Пока Счетчик < НоваяЗапись.Количество() Цикл
Буфер = НоваяЗапись[Счетчик];
ЗаписьРеквизита = СтрРазделить(СтрЗаменить(Буфер, "РЕКВИЗИТ", Символы.ПС), Символы.ПС, Истина);
НовыйЭлемент = Справочники.Стеллажи.СоздатьЭлемент();
НовыйЭлемент.Наименование = ЗаписьРеквизита[0];
НовыйЭлемент.МаксимальнаяНагрузка = ЗаписьРеквизита[1];
НовыйЭлемент.ДатаУстановки = ТекущаяДата();
НовыйЭлемент.Записать();
Счетчик = Счетчик + 1;
КонецЦикла;
Ответ.Текст = "Данные по стеллажам успешно внесены";
Ответ.Записать();
КонецЕсли;
//ДОБАВЛЕНИЕ ДОКУМЕНТА НЕ РАБОТАЕТ
Если Режим = Режим4 Тогда
Счетчик = 0;
Пока Счетчик < НоваяЗапись.Количество() Цикл
Буфер = НоваяЗапись[Счетчик];
ЗаписьРеквизита = СтрРазделить(СтрЗаменить(Буфер, "РЕКВИЗИТ", Символы.ПС), Символы.ПС, Истина);
НовыйЭлемент = Документы.Поступление.СоздатьЭлемент();
НовыйЭлемент.Стеллаж = ЗаписьРеквизита[0];
НовыйЭлемент.Ячейка = ЗаписьРеквизита[1];
НовыйЭлемент.Поставщик = ЗаписьРеквизита[2];
НовыйЭлемент.Товар = ЗаписьРеквизита[3];
НовыйЭлемент.Цена = ЗаписьРеквизита[4];
НовыйЭлемент.Количество = ЗаписьРеквизита[5];
НовыйЭлемент.ЕдиницаИзмерения = ЗаписьРеквизита[6];
НовыйЭлемент.Записать();
Счетчик = Счетчик + 1;
КонецЦикла;
Ответ.Текст = "Регистрация документа успешна";
Ответ.Записать();
КонецЕсли;
Если Режим <> Режим1 и Режим <> Режим2 и Режим <> Режим3 Тогда
Ответ.Текст = "НЕ РАБОТАЕТ" + ТекстСообщения;
Ответ.Записать();
КонецЕсли;
КонецПроцедуры
ПоказатьПо теме из базы знаний
- Кто сейчас проводит документ: человек или компьютер? Зачем нужна подобная классификация "режимов" проведения документа в 1С 8.3 в клиент-серверном режиме и как получить ответ на этот вопрос при работе с обработчиками событий управляемой формы и документа?
- Последовательности событий при проведении документа 1С. Шпаргалка
- Программное создание и расчет документов начисления зарплаты в конфигурации ЗУП 3.1 и ERP (по подразделениям)
- Гарантированное проведение документов (подключаемое расширение)
- Ускорим проведение в 1С:Управление холдингом
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот