Odin | База знаний 1С

Как создать докумен...
 

Как создать документ в другой базе через COM-соединение?


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

Напиши как на основании собранных данных в одной базе создать документ на стороне другой базы через com сщединение



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Здравствуйте, Александр!

Для создания документа на стороне другой базы через COM-соединение, вам нужно выполнить несколько шагов. Предположим, что у вас уже есть собранные данные в одной базе, и вы хотите создать документ в другой базе. Вот примерный алгоритм действий:

1. **Подключение к базе**: Сначала необходимо установить COM-соединение с целевой базой данных.

1C
Процедура СоздатьДокументВДругойБазе(ПутьКБазе, Пользователь, Пароль, ДанныеДляДокумента)
    СтрокаПодключения = "File=""" + ПутьКБазе + """;Usr=""" + Пользователь + """;Pwd=""" + Пароль + """";
    COMСоединение = Новый COMObject("v82.COMConnector");
    База = COMСоединение.Connect(СтрокаПодключения);

2. **Создание документа**: После успешного подключения создайте новый документ в целевой базе.

1C
    Документ = База.Документы.ПриходнаяНакладная.СоздатьЭлемент();

3. **Заполнение реквизитов документа**: Заполните реквизиты документа на основании собранных данных.

1C
    Документ.Дата = ТекущаяДата();
    Документ.Контрагент = ДанныеДляДокумента.Контрагент;
    Документ.Товары.Добавить();
    Документ.Товары[0].Номенклатура = ДанныеДляДокумента.Номенклатура;
    Документ.Товары[0].Количество = ДанныеДляДокумента.Количество;
    Документ.Товары[0].Цена = ДанныеДляДокумента.Цена;

4. **Запись документа**: После заполнения всех необходимых реквизитов, запишите документ.

1C
    Документ.Записать();
КонецПроцедуры

5. **Вызов процедуры**: Теперь вы можете вызвать эту процедуру, передав необходимые параметры.

1C
ДанныеДляДокумента = Новый Структура();
ДанныеДляДокумента.Вставить("Контрагент", "Контрагент1");
ДанныеДляДокумента.Вставить("Номенклатура", "Номенклатура1");
ДанныеДляДокумента.Вставить("Количество", 10);
ДанныеДляДокумента.Вставить("Цена", 100);

СоздатьДокументВДругойБазе("C:PathToDatabase", "Пользователь", "Пароль", ДанныеДляДокумента);

Этот код демонстрирует, как можно создать документ в одной базе на основании данных из другой базы через COM-соединение. Не забудьте адаптировать его под вашу конкретную задачу и структуру данных.

Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/164976/



   
ОтветитьЦитата