Создания документа из одной базы в другой бп2.0 в бп 2.0

1. ranis888 104 25.03.19 14:07 Сейчас в теме
Имеются две одинаковые базы. Есть запрос на получения определенных реализаций товаров и услуг.
Из базы, где получили этот запрос , выгрузить эти данные в другую. Отправьте пожалуйста пример
По теме из базы знаний
Найденные решения
20. ranis888 104 26.03.19 08:06 Сейчас в теме
(19)
Процедура КнопкаВыполнитьНажатие(Кнопка)
   СтрокаПодключения =
       "file='C:\Users\Fin3\Desktop\Новая папка (2)\KVVK_8_2\'; usr='Администратор3'; pwd='123';";
   ComConnector = ПолучитьCOMОбъектПоВерсииПлатформы();
   СообщениеПользователю = Новый СообщениеПользователю;
 
   Попытка
      ComConnection = COMConnector.Connect(СтрокаПодключения);
   Исключение
      СообщениеПользователю.Текст = "Ошибка подключения: " + ОписаниеОшибки();
      СообщениеПользователю.Сообщить();
      Возврат;
   КонецПопытки;
МенеджерДокумента = ComConnection.Документы.РеализацияТоваровУслуг;
ComConnection.УстановитьБезопасныйРежим(Ложь);
   ComConnection.УстановитьПривилегированныйРежим(Истина);
Документ = МенеджерДокумента.СоздатьДокумент();  
   Документ.Дата               = ТекущаяДата();
		Документ.Организация = ComConnection.Справочники.Организации.НайтиПоКоду("000000001");
		Документ.Контрагент = ComConnection.Справочники.Контрагенты.НайтиПоКоду("БП0005005");
		Документ.ДоговорКонтрагента =ComConnection.Справочники.ДоговорыКонтрагентов.НайтиПоКоду("БП0005005"); 
		Документ.СчетУчетаРасчетовПоАвансам= ComConnection.ПланыСчетов.Хозрасчетный.НайтиПоКоду("60.02");
		Документ.СчетУчетаРасчетовСКонтрагентом = ComConnection.ПланыСчетов.Хозрасчетный.НайтиПоКоду("60.02");
		Документ.СпособЗачетаАвансов = ComConnection.Перечисления.СпособыЗачетаАвансов.Автоматически;
		Документ.ВалютаДокумента = ComConnection.Справочники.Валюты.НайтиПоНаименованию("руб.");
		Документ.ВидОперации= ComConnection.перечисления.ВидыОперацийРеализацияТоваров.ПродажаКомиссия;
Документ.ОбменДанными = Истина;
Документ.Записать(Режимзаписидокумента.Запись);



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

Функция ПолучитьCOMОбъектПоВерсииПлатформы() Экспорт
    
   // Определяем имя COM-объекта по версии платформы
   ИмяComОбъекта = "";
   Инфо = Новый СистемнаяИнформация;
   Если Найти(Инфо.ВерсияПриложения, "8.3") > 0 Тогда
      ИмяComОбъекта = "V83.COMConnector";
   ИначеЕсли Найти(Инфо.ВерсияПриложения, "8.2") > 0 Тогда
       ИмяComОбъекта = "V82.COMConnector";
   Иначе
       ВызватьИсключение "Не удалось определить версию платформы";
   КонецЕсли;
    
   // Инициализируем COM-объект и соединение
   COMConnector = Новый COMОбъект(ИмяComОбъекта);
    
   Возврат COMConnector;
    
КонецФункции
Показать


Осталось только понять как провести
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SedovSU@mail.ru 297 25.03.19 14:23 Сейчас в теме
Ну вот если кратко то можно так, через ком-соединение

V8 = Новый COMОбъект("V82.ComConnector");
База = V8.Connect ("File=""D:\Локальная_УПП\""; Usr=""Юзер"";Pwd=""Пароль"";"); 
  
Запрос = База.NewObject("Запрос");  
Запрос.Текст ="Выбрать Ссылка Из Документы.РеализацияТоваровУслуг";
ВыборкаРезультата = Запрос.выполнить().выбрать();
Пока выборкаРезультата.следующий() цикл
// тут берете документы и создаете их в базе
Конеццикла
Показать
4. ranis888 104 25.03.19 14:27 Сейчас в теме
(2)
V8 = Новый COMОбъект("V82.ComConnector");
База = V8.Connect ("File=""D:\Локальная_УПП\""; Usr=""Юзер"";Pwd=""Пароль"";");


Произошла исключительная ситуация (V82.COMConnector.1): Ошибка при выполнении операции с информационной базой
Несовместимая версия файла базы данных '\\fin3\Обмен\Ленар абый/1Cv8.1CD'
6. SedovSU@mail.ru 297 25.03.19 14:35 Сейчас в теме
(4) вам нужно указать каталог базы а нее файла 1Cv8.1CD, укажите \\fin3\Обмен\Ленар абый\
7. ranis888 104 25.03.19 14:38 Сейчас в теме
(6)
\\fin3\Обмен\Ленар абый\


Путь = "\\fin3\Обмен\Ленар абый";
V8 = Новый COMОбъект("V82.ComConnector");
База = V8.Connect ("File=""\\fin3\Обмен\Ленар абый\""; Usr=""Админ"";Pwd=""Пароль"";"); 


Все равно ошибка
8. SedovSU@mail.ru 297 25.03.19 14:45 Сейчас в теме
(7) какова рода ошибка. может вы не верно делаете ком соединение, вот в таком ее виде нужно указать. Может у вас имя конектора вот такое V8.COMConnector

v8 = CreateObject("V8.COMConnector");
Если ФайловаяБазаДанных Тогда
СтрокаПодключения = "file='" + КаталогБазыДанных + "'; usr='" + Пользователь + "'; pwd='" + Пароль + "';";
Иначе
СтрокаПодключения = "srvr='" + Сервер + "'; ref='" + БазаДанных + "'; usr='" + Пользователь + "'; pwd='" + Пароль + "';";
КонецЕсли;
Соединение = V8.Connect(СтрокаПодключения)
9. ranis888 104 25.03.19 14:46 Сейчас в теме
(8)
Не удалось подключиться к базе{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(8)}: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (1C:Enterprise 8.3.11.2954): Существуют активные сеансы работы с данной информационной базой, использующие Платформу 1С:Предприятия другой версии.
Используйте для подключения к информационной базе платформу версии 8.3.9.1818.
10. ranis888 104 25.03.19 14:47 Сейчас в теме
(8)
Код
   
   Соединение = Новый COMОбъект("V83.Application");
   
СтрокаСоединения = "File = ""\\fin3\Обмен\Ленар абый""; Usr = Админ; Pwd =";
Попытка 
Подключение = Соединение.Connect(СтрокаСоединения);
Исключение 
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не удалось подключиться к базе" + ОписаниеОшибки(); 
Сообщение.Сообщить();
КонецПопытки;

Показать полностью

Вот это использовал
11. SedovSU@mail.ru 297 25.03.19 14:54 Сейчас в теме
(10) у вас отличаются версии платформы, при локальных базах у вас одна база сделала временный файл от версии 8.3.11.2954 а другая от 8.3.9.1818 вот и конфликт. Нужно прийти к единой платформе
12. ranis888 104 25.03.19 14:55 Сейчас в теме
(11) Вот получается соединение прошло, как дальше создать документ?
13. SedovSU@mail.ru 297 25.03.19 14:58 Сейчас в теме
(12) ДокументCOM = Подключение .Документы.ИмяДокумента.СоздатьДокумент() // и дальше все как обычно.
14. ranis888 104 25.03.19 15:04 Сейчас в теме
(13)
Подключение = Соединение.Connect(СтрокаСоединения);

Вот тут подвисает и все
15. ranis888 104 25.03.19 15:04 Сейчас в теме
(13) Дальше этого зависания не идет
17. SedovSU@mail.ru 297 26.03.19 06:14 Сейчас в теме
(15) у вас так и не получилось или нашли другой способ решить задачу?
18. ranis888 104 26.03.19 07:55 Сейчас в теме
(17) Нашел другой способ. Могу отправить
19. SedovSU@mail.ru 297 26.03.19 07:57 Сейчас в теме
(18) если честно, то да интересно был бы признателен, либо тут напишите, либо в сообщение, можно по почте sedovsu@mail.ru
20. ranis888 104 26.03.19 08:06 Сейчас в теме
(19)
Процедура КнопкаВыполнитьНажатие(Кнопка)
   СтрокаПодключения =
       "file='C:\Users\Fin3\Desktop\Новая папка (2)\KVVK_8_2\'; usr='Администратор3'; pwd='123';";
   ComConnector = ПолучитьCOMОбъектПоВерсииПлатформы();
   СообщениеПользователю = Новый СообщениеПользователю;
 
   Попытка
      ComConnection = COMConnector.Connect(СтрокаПодключения);
   Исключение
      СообщениеПользователю.Текст = "Ошибка подключения: " + ОписаниеОшибки();
      СообщениеПользователю.Сообщить();
      Возврат;
   КонецПопытки;
МенеджерДокумента = ComConnection.Документы.РеализацияТоваровУслуг;
ComConnection.УстановитьБезопасныйРежим(Ложь);
   ComConnection.УстановитьПривилегированныйРежим(Истина);
Документ = МенеджерДокумента.СоздатьДокумент();  
   Документ.Дата               = ТекущаяДата();
		Документ.Организация = ComConnection.Справочники.Организации.НайтиПоКоду("000000001");
		Документ.Контрагент = ComConnection.Справочники.Контрагенты.НайтиПоКоду("БП0005005");
		Документ.ДоговорКонтрагента =ComConnection.Справочники.ДоговорыКонтрагентов.НайтиПоКоду("БП0005005"); 
		Документ.СчетУчетаРасчетовПоАвансам= ComConnection.ПланыСчетов.Хозрасчетный.НайтиПоКоду("60.02");
		Документ.СчетУчетаРасчетовСКонтрагентом = ComConnection.ПланыСчетов.Хозрасчетный.НайтиПоКоду("60.02");
		Документ.СпособЗачетаАвансов = ComConnection.Перечисления.СпособыЗачетаАвансов.Автоматически;
		Документ.ВалютаДокумента = ComConnection.Справочники.Валюты.НайтиПоНаименованию("руб.");
		Документ.ВидОперации= ComConnection.перечисления.ВидыОперацийРеализацияТоваров.ПродажаКомиссия;
Документ.ОбменДанными = Истина;
Документ.Записать(Режимзаписидокумента.Запись);



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

Функция ПолучитьCOMОбъектПоВерсииПлатформы() Экспорт
    
   // Определяем имя COM-объекта по версии платформы
   ИмяComОбъекта = "";
   Инфо = Новый СистемнаяИнформация;
   Если Найти(Инфо.ВерсияПриложения, "8.3") > 0 Тогда
      ИмяComОбъекта = "V83.COMConnector";
   ИначеЕсли Найти(Инфо.ВерсияПриложения, "8.2") > 0 Тогда
       ИмяComОбъекта = "V82.COMConnector";
   Иначе
       ВызватьИсключение "Не удалось определить версию платформы";
   КонецЕсли;
    
   // Инициализируем COM-объект и соединение
   COMConnector = Новый COMОбъект(ИмяComОбъекта);
    
   Возврат COMConnector;
    
КонецФункции
Показать


Осталось только понять как провести
21. SedovSU@mail.ru 297 26.03.19 08:09 Сейчас в теме
(20) благодарю


Осталось только понять как провести

А если вызвать проведение Документ.Записать(Режимзаписидокумента.Проведение) не получается??
23. ranis888 104 26.03.19 08:20 Сейчас в теме
26. Maden 29.03.22 09:47 Сейчас в теме
(23)А если вызвать метод из 2 базы, кот. будет проводить их? Либо ты можешь регламентно делать это.
25. ranis888 104 26.03.19 08:23 Сейчас в теме
(21) Вам спасибо за помощь
22. ranis888 104 26.03.19 08:14 Сейчас в теме
(19)Документ.Записать(ComConnection.РежимЗаписиДокумента.Проведение);

Вот так удалось провести
3. soft_wind 25.03.19 14:23 Сейчас в теме
это работа с планом обмена,
создайте, настройте, используйте
5. ranis888 104 25.03.19 14:27 Сейчас в теме
(3) План обмена позволит из 10 реализаций сделать 1?
16. soft_wind 25.03.19 18:05 Сейчас в теме
что бы

из 10 реализаций сделать 1


это вам выгрузку по правилам конвертации данных надо.
(это к программисту, сами не осилите)
24. ranis888 104 26.03.19 08:22 Сейчас в теме
(16)
(это к программисту, сами не осилите)


Самое необоснованный ответ. Если бы вы написали "Вам будет сложно это изучить", тогда понятно
Оставьте свое сообщение

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