|
v7: Выгрузка табличной части документа с 8.3 на 7.7 | ☑ | ||
---|---|---|---|---|
0
Баха
06.03.17
✎
10:16
|
В общем задачка - надо с типовой 8ки выгрузить данные в 7ку. Точнее табличную часть документа НачислениеЗарплатыРаботникамОрганизацийНачисления в документ в 7ке надо закинуть тоже в документ. Подключился, запросом выбрал записи, а дальше проблемы с перекидкой данных...
Если Меню.ВыбратьЗначение(Фирма,"Выберите базу фирмы",,,2)=1 Тогда СтатусПодключения=0; V83=CreateObject("V83.COMConnector");//Application Попытка База = V83.Connect("File="+"\\Путь"+"; Usr="+"Юзер"+"; Pwd="+"пароль"); Сообщить("Подключение есть"); Исключение Предупреждение("Ошибка открытия базы V8 - "+ОписаниеОшибки()); Возврат ""; КонецПопытки; Выборка = База.Документы.НачислениеЗарплатыРаботникамОрганизаций.Выбрать(); Пока Выборка.следующий() = -1 Цикл Запрос=База.NewObject("Запрос"); Запрос.Текст = "ВЫБРАТЬ | НачислениеЗарплатыРаботникамОрганизацийНачисления.Ссылка, | НачислениеЗарплатыРаботникамОрганизацийНачисления.НомерСтроки, | НачислениеЗарплатыРаботникамОрганизацийНачисления.Сотрудник, // | НачислениеЗарплатыРаботникамОрганизацийНачисления.Физлицо, // | НачислениеЗарплатыРаботникамОрганизацийНачисления.Физлицо.ИдентификационныйКодЛичности, | НачислениеЗарплатыРаботникамОрганизацийНачисления.Размер, | НачислениеЗарплатыРаботникамОрганизацийНачисления.Результат, | НачислениеЗарплатыРаботникамОрганизацийНачисления.ДатаНачала, | НачислениеЗарплатыРаботникамОрганизацийНачисления.ДатаОкончания, | НачислениеЗарплатыРаботникамОрганизацийНачисления.Ссылка.Номер, | НачислениеЗарплатыРаботникамОрганизацийНачисления.Ссылка.Дата |ИЗ | Документ.НачислениеЗарплатыРаботникамОрганизаций.Начисления КАК НачислениеЗарплатыРаботникамОрганизацийНачисления"; ТЗ = Запрос.Выполнить().Выгрузить(); Если ТЗ.Количество() > 0 Тогда Для ном=0 По ТЗ.Количество()-1 Цикл Сообщить("Сотрудник - "+ТЗ.Сотрудник+", Результат - "+ТЗ.Результат); НоваяСтрока(); Сотрудник = ТЗ.Сотрудник; Оклад = ТЗ.Размер; Аванс = ТЗ.Результат; Конеццикла; КонецЕсли; КонецЦикла; Иначе КонецЕсли; |
|||
1
Остап Сулейманович
06.03.17
✎
10:19
|
(0) Так и должно быть.
|
|||
2
HawkEye
06.03.17
✎
10:20
|
(0) какая проблема?
|
|||
3
palpetrovich
06.03.17
✎
10:23
|
(2 ) "ТЗ.Сотрудник" наверное
|
|||
4
Остап Сулейманович
06.03.17
✎
10:24
|
(2) Вангую.
Проблема здесь : Сообщить("Сотрудник - "+ТЗ.Сотрудник+", Результат - "+ТЗ.Результат); Оно патамучтА не знает кто такой "ТЗ.Сотрудник" и видит его как OLEобъект. |
|||
5
HawkEye
06.03.17
✎
10:24
|
(3) (4) не подсказывайте ))))
|
|||
6
aka AMIGO
06.03.17
✎
10:26
|
"На Мисте во втором посте дадут ответ, а в 20-м - правильный ответ" © :)
|
|||
7
Баха
06.03.17
✎
10:27
|
(2) В общем не выгружает в ТЗ
|
|||
8
HawkEye
06.03.17
✎
10:28
|
(7) а в частном?
|
|||
9
Баха
06.03.17
✎
10:29
|
мне бы сотрудника и колонки снизу вытащить и добавить записи в док
|
|||
10
Баха
06.03.17
✎
10:31
|
(6) а можно ссылку?
|
|||
11
Остап Сулейманович
06.03.17
✎
10:34
|
(10) Дарю : Выгрузка табличной части документа с 8.3 на 7.7
|
|||
12
Масянька
06.03.17
✎
10:35
|
(11) Надо было в цикле :)))
|
|||
13
Мимохожий Однако
06.03.17
✎
10:37
|
Включил счетчик. Это 13 пост
|
|||
14
Баха
06.03.17
✎
10:37
|
(4) не как OLE-объект, а в ТЗ не выгружает, в ТЗ нету выгрузки с запроса
|
|||
15
Баха
06.03.17
✎
10:41
|
(12) с циклом вообще проблемно, в это в 7ке, а язык 8ный
|
|||
16
Builder
06.03.17
✎
10:43
|
(14) Уверен что запрос работает?
Ну и намного проще и удобнее из 8-ки в 7.7 подключаться, а не наоборот. |
|||
17
silent person
06.03.17
✎
10:43
|
(0)
по OLE перенести только простые типы данных: Строка, Число, Дата и т.п. поэтому строка Оклад = ТЗ.Размер; переносится, т.к. ТЗ.Размер имеет тип "Число" а строка Сотрудник = ТЗ.Сотрудник; нет т.к. ТЗ.Сотрудник это тип объект базы 1С 8.3 СправочникСсылка. притом что база 7.7 ничего не значет про объекты базы 8.3 |
|||
18
silent person
06.03.17
✎
10:45
|
блин слова потерялись.
по OLE можно перенести только простые типы данных: Строка, Число, Дата и т.п. поэтому строка Оклад = ТЗ.Размер; переносится, т.к. ТЗ.Размер имеет тип "Число" а строка Сотрудник = ТЗ.Сотрудник; нет т.к. ТЗ.Сотрудник это объект базы 1С 8.3 и имеет тип СправочникСсылка. притом что база 7.7 ничего не значет про объекты базы 8.3 |
|||
19
Баха
06.03.17
✎
10:48
|
(18) Сообщить("Размер - "+ТЗ.Размер+", Результат - "+ТЗ.Результат);
{Документ.ЗПВедУдерж1.Форма.Модуль(543)}: Поле агрегатного объекта не обнаружено (Размер) |
|||
20
Баха
06.03.17
✎
10:50
|
(16) Знаю что так удобнее, но задачка такая(все через попу). Буху надо в 7ку загружать. Запрос работает, потому что цикл количества крутится
|
|||
21
aka AMIGO
06.03.17
✎
10:51
|
(19) Чаще всего отладчик помогает.
|
|||
22
Баха
06.03.17
✎
10:52
|
||||
23
HawkEye
06.03.17
✎
10:53
|
(20)
ТЗ.ВыбратьСтроки() пока ТЗ.ПолучитьСТроку() = 1 Цикл бла бла бла |
|||
24
silent person
06.03.17
✎
10:53
|
ну ты строку ТЗ то по номеру получи, если цикл по количеству строк сделал.
|
|||
25
HawkEye
06.03.17
✎
10:53
|
+23 ты не позиционируешься на строке ТЗ
|
|||
26
Баха
06.03.17
✎
10:55
|
(23) ВыбратьСтроки и бла бла не канает, тут 8ка рулит в семерке(((
|
|||
27
Баха
06.03.17
✎
10:56
|
(24) щя попробую, а есть соображения как?)
|
|||
28
Мимохожий Однако
06.03.17
✎
10:58
|
ОЛЕ обязательно? выгрузи в файл и загрузи из файла
|
|||
29
Баха
06.03.17
✎
10:59
|
Сообщить("ТЗ.Количество - "+ТЗ.Количество);
{Документ.ЗПВедУдерж1.Форма.Модуль(543)}: Метод не найден УПС |
|||
30
Баха
06.03.17
✎
11:00
|
(28) 8ка закрытая, типовая, трону, обновлению капец
|
|||
31
aka AMIGO
06.03.17
✎
11:01
|
(29) Метод "Сообщить" случайно, не на Сервере?
|
|||
32
aka AMIGO
06.03.17
✎
11:03
|
(29) И таки что говорит отладчик?
|
|||
33
HawkEye
06.03.17
✎
11:05
|
(26) ты уже определись, то 7-ка, то 8-ка...
|
|||
34
aka AMIGO
06.03.17
✎
11:06
|
+32 в нём можно посмотреть, что в каком виде передается, в соответствии с (18)
|
|||
35
HawkEye
06.03.17
✎
11:06
|
(30) т.е. вот это у тебя в 8-ке написано:
V83=CreateObject("V83.COMConnector")//Application Попытка База = V83.Connect("File="+"\\Путь"+"; Usr="+"Юзер"+"; Pwd="+"пароль"); ??? ))) |
|||
36
Баха
06.03.17
✎
11:10
|
(35) Все это написано в 7ке, подключаюсь к 8ке, хоть и в в 7ке, команды все приходится 8ные писать, подключается же
|
|||
37
HawkEye
06.03.17
✎
11:11
|
(36) ну и с чего тогда: "ВыбратьСтроки и бла бла не канает," ???
|
|||
38
Баха
06.03.17
✎
11:15
|
(37) Неа, когда подключается он 8ке обращается на своем языке, забывая о своем)))
|
|||
39
Баха
06.03.17
✎
11:16
|
До этого пробовал циклом, документы выбрал на период, но табличную часть не смог
|
|||
40
HawkEye
06.03.17
✎
11:18
|
(38) может поэтому у тебя и не получается? )))
|
|||
41
Баха
06.03.17
✎
11:23
|
(40) но кое что начал получаться, например документы. Некоторые срабатывает, некоторые нет. Поэтому пост поднял, может кто столкнулся?
|
|||
42
h-sp
06.03.17
✎
11:30
|
строкаТЗ = ТЗ.Получить(Ном);
Сотрудник = СтрокаТЗ.Сотрудник; Оклад = СтрокаТЗ.Размер; Аванс = СтрокаТЗ.Результат; |
|||
43
silent person
06.03.17
✎
11:33
|
когда я только начинал разбираться в 8-ке делал так.
БД=СоздатьОбъект("V81.Application"); Открытие = БД.Connect("File=""" + ПутьКБД + """;Usr=""Обмен"";pwd=""123"";"); ОтгрСпецификация = БД.Документы.ОтгрузочнаяСпецификацияАвто.Выбрать(формат(НачДата,"ДГГГГММДД")+"000000",формат(КонДата,"ДГГГГММДД")+"235959"); Пока ОтгрСпецификация.Следующий() = -1 Цикл Сортность = ОтгрСпецификация.Сортность; // Сортность - это табличная часть документа Для Сч = 1 По Сортность.Количество() Цикл Если Сортность.Получить(Сч-1).Объем=0 Тогда Продолжить; Конецесли; КонецЦикла; КонецЦикла; и т.д. |
|||
44
Баха
06.03.17
✎
11:40
|
(42) Крутится, данные есть, а вот сотрудник как OLE(
|
|||
45
Баха
06.03.17
✎
11:40
|
(43) Щя попробую и твой пример
|
|||
46
silent person
06.03.17
✎
11:44
|
сотрудник.
в 7.7 получай наименование и ищи по нему в справочнике сотрудников ссылку. |
|||
47
Баха
06.03.17
✎
12:54
|
(46) Пока Выборка.следующий() = -1 Цикл
Запрос=База.NewObject("Запрос"); Запрос.Текст = "ВЫБРАТЬ | НачислениеЗарплатыРаботникамОрганизацийНачисления.Ссылка, | НачислениеЗарплатыРаботникамОрганизацийНачисления.НомерСтроки, | НачислениеЗарплатыРаботникамОрганизацийНачисления.Сотрудник, | НачислениеЗарплатыРаботникамОрганизацийНачисления.Сотрудник.Наименование КАК СотрудникНаименование, | НачислениеЗарплатыРаботникамОрганизацийНачисления.Размер, | НачислениеЗарплатыРаботникамОрганизацийНачисления.Результат, | НачислениеЗарплатыРаботникамОрганизацийНачисления.ДатаНачала, | НачислениеЗарплатыРаботникамОрганизацийНачисления.ДатаОкончания, | НачислениеЗарплатыРаботникамОрганизацийНачисления.Ссылка.Номер, | НачислениеЗарплатыРаботникамОрганизацийНачисления.Ссылка.Дата |ИЗ | Документ.НачислениеЗарплатыРаботникамОрганизаций.Начисления КАК НачислениеЗарплатыРаботникамОрганизацийНачисления"; ТЗ = Запрос.Выполнить().Выгрузить(); Если ТЗ.Количество() > 0 Тогда Для ном=0 По ТЗ.Количество()-1 Цикл строкаТЗ = ТЗ.Получить(Ном); // НоваяСтрока(); Сотрудник = СтрокаТЗ.СотрудникНаименование; Оклад = СтрокаТЗ.Размер; Аванс = СтрокаТЗ.Результат; Сообщить("Сотрудник - "+СтрокаТЗ.СотрудникНаименование+", Размер - "+СтрокаТЗ.Размер+", Результат - "+СтрокаТЗ.Результат); Конеццикла; КонецЕсли; КонецЦикла; Окончательный рабочий вид |
|||
48
Баха
06.03.17
✎
12:57
|
Спасибо h-sp и silent person-у. Цикл обязательно попробую...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |