![]() |
|
Выгрузка данных в ЗУП через com соединение | ☑ | ||
---|---|---|---|---|
0
zerat
28.08.14
✎
11:10
|
Всем привет! Выгружаю данные в документ "Регистрация разовых начислений" заполняю документ
ДокументНачисления = Соединение.Документы.РегистрацияРазовыхНачисленийРаботниковОрганизаций; НовыйДокумент = ДокументНачисления.СоздатьДокумент(); НовыйДокумент.Дата = НачалоДня(КонецМесяца(ПериодРегистрации)); НовыйДокумент.Организация = Соединение.Справочники.Организации.НайтиПоКоду(Организация.Код); НовыйДокумент.ДатаВыплатыДохода = НачалоДня(КонецМесяца(ПериодРегистрации)); НовыйДокумент.ПериодРегистрации = НачалоМесяца(ПериодРегистрации); НовыйДокумент.УстановитьНовыйНомер(); Для сч=0 по ТаблицаДанных.Количество()-1 Цикл НоваяСтрока = НовыйДокумент.ДополнительныеНачисления.Добавить(); Если ЗначениеЗаполнено(ТаблицаДанных[сч].Сотрудник) Тогда Сотрудник = ПроверитьАктуальность(ТаблицаДанных[сч].Сотрудник.ИНН); КонецЕсли; НоваяСтрока.Авторасчет = Истина; НоваяСтрока.ВидРасчета = Соединение.ПланыВидовРасчета.ДополнительныеНачисленияОрганизаций.НайтиПоНаименованию(ВидРасчета); НоваяСтрока.Показатель1 = ТаблицаДанных[сч].СуммаРегл; НоваяСтрока.Сотрудник = Сотрудник; НоваяСтрока.ФизЛицо = Сотрудник.ФизЛицо; Если НоваяСтрока.Сотрудник.Пустая() Тогда НоваяОшибка = ТаблицаОшибок.Добавить(); НоваяОшибка.ОписаниеОшибки = "НЕ НАЙДЕН СОТРУДНИК - "+ТаблицаДанных[сч].Сотрудник; КонецЕсли; КонецЦикла; НовыйДокумент.Записать(Соединение.РежимЗаписиДокумента.Запись); НовыйДокумент.РассчитатьНачисления(); {Обработка.Выгрузка.МодульОбъекта(153)}: Ошибка при вызове метода контекста (РассчитатьНачисления) НовыйДокумент.РассчитатьНачисления(); по причине: Произошла исключительная ситуация (1C:Enterprise 8.3.5.1119): {Документ.РегистрацияРазовыхНачисленийРаботниковОрганизаций.МодульОбъекта(330)}: Метод объекта не обнаружен (ПолучитьМассивТабличныхЧастей) В чем может быть проблема? |
|||
1
Maxus43
28.08.14
✎
11:12
|
видимо процедура/функция ПолучитьМассивТабличныхЧастей не доступна во внешнем соединении
|
|||
2
Cube
28.08.14
✎
11:13
|
(0) "Ошибка при вызове метода контекста (РассчитатьНачисления)
" "Метод объекта не обнаружен (ПолучитьМассивТабличныхЧастей)" "В чем может быть проблема?" Действительно... В чем же?... Надо думать! Читать не надо, только копипаст на мисту - там разберутся... |
|||
3
zerat
28.08.14
✎
11:15
|
(1) так он заходит в процедуру рассчитать начисления и вот именно на этом массиве спотыкается.... как проверить доступна она или нет
Функция ПолучитьМассивТабличныхЧастей(ДокументОбъект, ЧтоРассчитываем) Экспорт функция находится в общем модуле в котором стоит галочка внешнее соединение |
|||
4
zerat
28.08.14
✎
11:15
|
(2) я уже внимательно все прочитал...не умничай
|
|||
5
zerat
28.08.14
✎
11:15
|
выгрузка происходит из конфигурации БП 3.0 в ЗУП 2.5
|
|||
6
Maxus43
28.08.14
✎
11:17
|
НовыйДокумент.Записать(Соединение.РежимЗаписиДокумента.Запись);
НовыйДокумент.РассчитатьНачисления(); почему в такой последовательности? поменять по логике надо |
|||
7
zerat
28.08.14
✎
11:21
|
(6)нет надо сначала документ записать а потом рассчитать только можно
|
|||
8
zerat
28.08.14
✎
11:28
|
Заремил кусо кода
//МассивТаблиц = НачислениеОтпускаРаботникамОрганизацийПереопределяемый.ПолучитьМассивТабличныхЧастей(ЭтотОбъект, "НДФЛ"); //Для каждого ТабличнаяЧасть Из МассивТаблиц Цикл // ТабличнаяЧасть.Очистить(); //КонецЦикла; и выгрузка прошла успешно. Но проблема в том что этот кусок кода нужен))) |
|||
9
Maxus43
28.08.14
✎
11:31
|
заковырни то что заремил в
#Если НЕ ВнешнееСоединение Тогда #КонецЕсли поглядеть на результат |
|||
10
Maxus43
28.08.14
✎
11:32
|
после рассчета ещё раз записывать вроде надо будет
|
|||
11
zerat
28.08.14
✎
11:32
|
Попытка
НовыйДокумент.Записать(Соединение.РежимЗаписиДокумента.Запись); НовыйДокумент.Записать(Соединение.РежимЗаписиДокумента.Проведение); Исключение НовыйДокумент.Записать(Соединение.РежимЗаписиДокумента.Запись); Сообщить(ОписаниеОшибки()); КонецПопытки; |
|||
12
zerat
28.08.14
✎
11:32
|
(9) все прошло успешно
|
|||
13
zerat
28.08.14
✎
11:33
|
зарплата стоит на поддержке и не вариант ее менять...как еще можно победить данную ошибку
|
|||
14
Maxus43
28.08.14
✎
11:34
|
(12) ну тут суть кода просто в очистке ТЧ, сам и очисти из своего кода выгрузки, там алгоритм на 3 минуты в функции ПолучитьМассивТабличныхЧастей
|
|||
15
Maxus43
28.08.14
✎
11:35
|
это что за выгрузка? одноразовая? или постоянно будет?
|
|||
16
Maxus43
28.08.14
✎
11:37
|
тьфу ты.
Есно не во внешнем это, смотри выше процедуры РассчитатьНачисления, там стоит #Если ТолстыйКлиентОбычноеПриложение Тогда В таком случае выход один - переносить алгоритм пересчета начислений в свой код выгрузки, дёргая куски из ЗУП |
|||
17
zerat
28.08.14
✎
11:37
|
(15) выгрузка будет производиться периодически и только в типовые конфигурации ЗУП, даже если я очистку сделаю у себя в Бух, то он же меня все равно не пустит в процедуру РассчитатьНачисления()
|
|||
18
Maxus43
28.08.14
✎
11:38
|
я чото не совсем понял как работает вобще, процедура РассчитатьНачисления не существует во внешнем соединении, и как смог к ней обратится пока я не понял
|
|||
19
zerat
28.08.14
✎
11:39
|
#Если ТолстыйКлиентОбычноеПриложение Тогда
это для другой процедуры стоит в Зупе |
|||
20
zerat
28.08.14
✎
11:39
|
а рассчитатьНачисления она экспортная
|
|||
21
zerat
28.08.14
✎
11:40
|
#Если ТолстыйКлиентОбычноеПриложение Тогда
// Заполняет показатели // Функция ЗаполнитьПоказатели(ТекущийСотрудник, Источник) Экспорт #КонецЕсли |
|||
22
zerat
28.08.14
✎
11:49
|
платформа последняя 8.3.5
|
|||
23
Maxus43
28.08.14
✎
12:17
|
у меня нет КонецЕсли тут... охватывает и эту процедуру тоже
|
|||
24
zerat
28.08.14
✎
12:46
|
(23) какая версия ЗУП?
|
|||
25
zerat
28.08.14
✎
12:54
|
2.5 (2.5.81.1) у меня такой релиз
|
|||
26
Maxus43
28.08.14
✎
12:57
|
у меня УПП, там аналогично почти. Безразницы короче, обходить придётся как в (16)
|
|||
27
zerat
28.08.14
✎
13:05
|
(26) да это застрелится....
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |