Пытаюсь втянуть документы из одной базы в УТ. обработку пишу сам, ну где-то не стыковка не могу рассмотреть где . помогите.
// Создаём запрос для выборки всех исходящих платежей за период
запр = СоединениеБух.NewObject("Запрос");
запр.Текст = "ВЫБРАТЬ
| Платеж.Дата,
| Платеж.Номер,
| Платеж.Плательщик,
| Платеж.Получатель,
| Платеж.СтатьяДвиженияДенежныхСредств,
| Платеж.СуммаВВалютеПлатежа
|ИЗ
| Документ.Платеж КАК Платеж
|ГДЕ
| Платеж.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| И Платеж.Проведен = ИСТИНА";
запр.УстановитьПараметр("НачалоПериода",Объект.НачалоПериода);
запр.УстановитьПараметр("КонецПериода",Объект.КонецПериода);
Выборка = запр.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить("Импорт платежа №" + Выборка.Номер);
Если ПроверитьСуществованиеДокумента(Перечисления.ТипыПлатежей.ПриходБезналичный, Выборка.Номер, НачалоГода(Выборка.Дата), КонецГода(Выборка.Дата)) тогда
Сообщить("Импорт платежа №" + Выборка.Номер + " невозможен, поскольку он уже был импортирован");
Иначе
НачатьТранзакцию();
НовыйРасходныйКассовыйОрдер = Документы.РасходныйКассовыйОрдер.СоздатьДокумент();
НовыйРасходныйКассовыйОрдер.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеОплатыОтКлиента;
НовыйРасходныйКассовыйОрдер.СуммаДокумента = Выборка.СуммаВВалютеПлатежа;
НовыйРасходныйКассовыйОрдер.СтатьяДвиженияДенежныхСредств = Выборка.СтатьяДвиженияДенежныхСредств;
//НовыйРасходныйКассовыйОрдер.Валюта = Справочники.Валюты.НайтиПоНаименованию(Выборка.ВалютаПлатежаНаименование);
//Если НовыйРасходныйКассовыйОрдер.Валюта = Константы.ОсновнаяВалютаСистемы.Получить() тогда
// НовыйРасходныйКассовыйОрдер.Курс = 1;
// НовыйПлатёж.СуммаВБазовойВалюте = НовыйПлатёж.СуммаВВалютеПлатежа;
//КонецЕсли;
НовыйРасходныйКассовыйОрдер.Дата = Выборка.Дата;
НовыйРасходныйКассовыйОрдер.СправочныйНомерДокумента = Выборка.Номер;
НовыйРасходныйКассовыйОрдер.Контрагент =Выборка.Плательщик;
НовыйРасходныйКассовыйОрдер.Касса = Выборка.Получатель;
НовыйРасходныйКассовыйОрдер.Кассир = ПараметрыСеанса.ТекущийПользователь;
НовыйРасходныйКассовыйОрдер.Записать();
ЗафиксироватьТранзакцию();
КонецЕсли;
КонецЦикла;
Здравствуйте. А документ "Платеж" у Вас есть?
У насколько мне помниться - в типовой УТ 2.3 такого документа не было...
В любом случае ошибка указывает на то, что в базе с которой Вы тянете данные нет объекта "Документ.Платеж"
salton @ Сегодня, 9:50
,
Я тяну с своей базы в УТ.Документ есть, на фото с ошибкой видно что он вытягивает его номер с другой базы УУ0132433 а дальше ошибка
На фото явно видно, что обработка останавливается на моменте выполнения запроса, так как не находит "Документ.Платеж".
Например в УТ2.3 точно нет "Документ.Платеж"... есть Документ.ПлатежноеПоручениеВходящее/Исходящее.
salton @ Сегодня, 10:02
,
вы не про то подумали, выгрузка идет с базы в Ут а не наоборот
Petre @ Сегодня, 11:58
,
Это вы что этим хотите сказать? что я дал код другой обработки?) код правильный и скрин верный.
burza @ Сегодня, 12:15
,
Именно это я и хочу сказать. Ваш код:
Выборка = запр.Выполнить().Выбрать();
Выборка = Запрос.Выполнить().Выбрать();
Сообщить("Импорт платежа №" + Выборка.Номер);
Разобрался.Импорт проходит только не заполняются все поля не могу понять почему. Контрагенты одинаковые и кассы тоже.
// Создаём запрос для выборки всех исходящих платежей за период
запр = СоединениеБух.NewObject("Запрос");
запр.Текст = "ВЫБРАТЬ
| Платеж.Дата,
| Платеж.Номер,
| Платеж.Плательщик.Наименование КАК ПлательщикНаименование,
| Платеж.Получатель.Наименование КАК ПолучательНаименование,
| Платеж.СтатьяДвиженияДенежныхСредств.Наименование КАК СтатьяДвиженияДенежныхСредств,
| Платеж.СуммаВВалютеПлатежа КАК СуммаДокумента
|ИЗ
| Документ.Платеж КАК Платеж
|ГДЕ
| Платеж.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| И Платеж.Проведен = ИСТИНА";
запр.УстановитьПараметр("НачалоПериода",Объект.НачалоПериода);
запр.УстановитьПараметр("КонецПериода",Объект.КонецПериода);
Выборка = запр.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить("Импорт платежа №" + Выборка.Номер);
Если ПроверитьСуществованиеДокумента(Перечисления.ТипыПлатежей.ПриходБезналичный, Выборка.Номер, НачалоГода(Выборка.Дата), КонецГода(Выборка.Дата)) тогда
Сообщить("Импорт платежа №" + Выборка.Номер + " невозможен, поскольку он уже был импортирован");
Иначе
НачатьТранзакцию();
НовыйПриходныйКассовыйОрдер = Документы.ПриходныйКассовыйОрдер.СоздатьДокумент();
НовыйПриходныйКассовыйОрдер.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеОплатыОтКлиента;
НовыйПриходныйКассовыйОрдер.СуммаДокумента = Выборка.СуммаДокумента;
НовыйПриходныйКассовыйОрдер.СтатьяДвиженияДенежныхСредств = Выборка.СтатьяДвиженияДенежныхСредств;
НовыйПриходныйКассовыйОрдер.Дата = Выборка.Дата;
НовыйПриходныйКассовыйОрдер.Номер = Выборка.Номер;
НовыйПриходныйКассовыйОрдер.Контрагент = Выборка.ПлательщикНаименование;
НовыйПриходныйКассовыйОрдер.Касса = Выборка.ПолучательНаименование;
НовыйПриходныйКассовыйОрдер.Кассир = ПараметрыСеанса.ТекущийПользователь;
НовыйПриходныйКассовыйОрдер.Записать();
ЗафиксироватьТранзакцию();
КонецЕсли;
КонецЦикла;
burza @ Сегодня, 15:40
,
Через COM "одинаковыми" могут быть только примитивы, все остальное - не просто разные, но и вообще другие (другой тип - "COMОбъект").
burza @ Сегодня, 9:34
,
вот так это делается.
НовыйПриходныйКассовыйОрдер.Контрагент = ПодобратьКонтрагента(Выборка.ПлательщикНаименование, Выборка.ПлательщикКодПоЕДРПОУ, Выборка.ПлательщикИНН);
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua