|
Таблица значений не могу обработать | ☑ | ||
---|---|---|---|---|
0
Aldnepr
28.03.17
✎
12:18
|
Есть такая задача. Выгрузить остатки из 7,7 в таблицу значений (ТЗТиС) через COM-соединение,и с v8 в другую ТЗ (ТЗБух). Затем объеденить их по колонке "Код" (КодТовара) и сравнить. С V8 все выгрузил, а с 7,7 не могу понять как быть. Если создаю ТЗ в 7,7
ТЗТиС = БазаИсточник.CreateObject("ТаблицаЗначений"); тогда не могу обработать эту таблицу в восьмерке выдает- ( Итератор для значения не определен). Если создаю эту ТЗ в V8, тогда не получается применить к ней функцию выгрузки остатков из 7,7 РегОстаткиТМЦ.ВыгрузитьИтоги(ТЗТиС,1,0); как правильно сделать? |
|||
1
mkalimulin
28.03.17
✎
12:29
|
(0) Обходи таблицу без итератора. Циклом "пока следующий()" или "для".
|
|||
2
youalex
28.03.17
✎
12:35
|
(0) >не могу обработать эту таблицу в восьмерке выдает...
Пока ТЗТиС.ПолучитьСтроку() =1 Цикл |
|||
3
СвинТуз
28.03.17
✎
12:41
|
Зачем писать самому если есть конвертация?
|
|||
4
Aldnepr
28.03.17
✎
13:09
|
(1) так я и обходил Для Каждого ТекСтр из ТЗТиС Цикл
|
|||
5
Aldnepr
28.03.17
✎
13:12
|
(2) я наверное неправильно вытягиваю остатки из 7,7 вот этой функцией: РегОстаткиТМЦ.ВыгрузитьИтоги(ТЗТиС,1,0);
Видимо нужно запросом к регистру брать и загружать построчно в ТЗ созданную в 8ке верно нет? |
|||
6
Aldnepr
28.03.17
✎
13:13
|
(3) мне не переносить нужно а сравнивать остатки в действующих базах 7,7 и 8
|
|||
7
Сияющий Асинхраль
28.03.17
✎
14:01
|
Тебе еще в (2) показали как надо сделать, вариант (4) будет работать только для восьмерки, а ты работаешь с семеркой по COM, там восьмерочный код не работает. Хотя, если бы я это делал (а я и делал так, причем не один раз) то просто выгрузил бы из одной базы остатки в текстовом файле (ну, или в dbf) загрузил бы этот файл в другую базу и сравнил бы остатки, это работает быстрее, чем по COM особливо при большом количестве номенклатуры
|
|||
8
Aldnepr
29.03.17
✎
10:00
|
(7) А отличаются ли ТЗ созданные в 7,7 и в 8? Т.е. Если я создаю ТЗ в 7.7 через БазаИсточник.CreateObject("ТаблицаЗначений"); то работать с ней можно только методами 7,7, а методы восьмерки не работают?
|
|||
9
DrZombi
гуру
29.03.17
✎
10:10
|
(8) нет сынок, это фантастика :)
ТЗ лучше создать там, где работаешь. Из ОЛЕ подтянуть простые данные, Код, наименование, число и дату. Колдуешь с ТЗ и потом делаешь все что только нужно... используя Код, наименования и другие признаки идентификатора данных в бд ОЛЕ :) |
|||
10
DrZombi
гуру
29.03.17
✎
10:14
|
+(8) у 7.7 нет кома, есть ОЛЕ... а это так еще головная боль :)
|
|||
11
Aldnepr
29.03.17
✎
10:18
|
(10) ну доки по оле перебрасываются легко, справочники тоже проблем не было( и туда и сюда). А вот с регистрами не прет((. Вот пробую так -не заполняет таблицу, может подскажешь?
ТЗТиС= Новый ТаблицаЗначений; ТЗТиС.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка")); ТЗТиС.Колонки.Добавить("Товар", Новый ОписаниеТипов("Строка")); ТЗТиС.Колонки.Добавить("ОстатокТовара", Новый ОписаниеТипов("Число")); // ТЗТиС = БазаИсточник.CreateObject("ТаблицаЗначений"); Рег = БазаИсточник.CreateObject("Регистры"); РегОстаткиТМЦ = Рег.ОстаткиТоваров; РегОстаткиТМЦ.УстановитьЗначениеФильтра("Фирма",ТОВ ,1); //РегОстаткиТМЦ.УстановитьЗначениеФильтра("Склад", СЗСкладыТиС, 2); РегОстаткиТМЦ.ВременныйРасчет(); Рег.РассчитатьРегистрыНа(ДатаОтчета); РегОстаткиТМЦ.ВыгрузитьИтоги(ТЗТиС,1,0); ТЗТиС.Свернуть("Товар", "ОстатокТовара"); |
|||
12
Aldnepr
29.03.17
✎
10:19
|
может дату с 8 не понимает 7,7?
|
|||
13
h-sp
29.03.17
✎
10:20
|
(11) так таблица семерочная должна быть. как в (0)
ТЗТиС = БазаИсточник.CreateObject("ТаблицаЗначений"); |
|||
14
Aldnepr
29.03.17
✎
10:23
|
(13) а (9) говорит что по барабану и лучше чтоб в 8 была создана. Я сперва делал как в (0) но тогда не могу применить к этой ТЗ методы 8 а именно ЭТО:
Для Каждого ТекущаяСтрока из ТЗТиС Цикл Если ТекущаяСтрока.ОстатокТовара = " " Тогда Продолжить; КонецЕсли; ОбластьСтрокаКод.Параметры.КодТиС = ТекущаяСтрока.Код; ОбластьСтрокаТиС.Параметры.ТоварТиС = ТекущаяСтрока.Товар; ОбластьСтрокаТиС.Параметры.ОстатокТиС = ТекущаяСтрока.ОстатокТовара; Таб.Вывести(ОбластьСтрокаКод); Таб.Присоединить(ОбластьСтрокаТиС); |
|||
15
h-sp
29.03.17
✎
10:25
|
(14) (13) шутит. Даже между двумя восьмерочными базами такое не работает, а вы хотите, чтобы 7.7.
|
|||
16
h-sp
29.03.17
✎
10:25
|
(15) то есть (9) шутит
|
|||
17
Aldnepr
29.03.17
✎
10:29
|
(16) так это сусанин тогда не шутник получается. Так что я рав получается, если создаю ТЗ в 7,7 то восьмерочными методами уже ее не обработать. Как же решить тогда эту задачу?
|
|||
18
h-sp
29.03.17
✎
10:32
|
(17) почему не обработать? обрабатывай семерочными методами.
|
|||
19
Aldnepr
29.03.17
✎
10:37
|
(18) у меня одна ТЗ заполняется остатками из 7,7 другая остатками из 8. Далее они сравниваются и сворачиваются по колонке "Код" и таким образом сравниваются остатки. У меня есть такая обработка которая работала между базами 7,7, а после перевода одну на 8 возникла необходимость переделки
|
|||
20
h-sp
29.03.17
✎
10:38
|
(17) почему Товар строка? Это же справочник.
|
|||
21
Aldnepr
29.03.17
✎
10:39
|
(18) пробовал из 7,7 доставать остатки восьмерки- но там 7,7 не понимает формат даты 8
|
|||
22
Aldnepr
29.03.17
✎
10:41
|
(20) но я же "лезу" в 7.7 как я могу там задать "справочник".Кстати если заполнять такую ТЗ в 8 то нормально выводит наименование в эту колонку
|
|||
23
VladZ
29.03.17
✎
10:42
|
(0) Не можешь сделать через КОМ - не используй его. Работай через файлы.
|
|||
24
Aldnepr
29.03.17
✎
10:43
|
(23) прийдется видимо(. Хотел для бухов сделать- нажми на кнопку и получишь результат, как они умеют))
|
|||
25
h-sp
29.03.17
✎
10:43
|
(22) но откуда такая мысль тогда, что РегОстаткиТМЦ.ВыгрузитьИтоги(ТЗТиС,1,0); туда строки начнет пихать? Сто процентов она ссылки на справочники запишет туда.
|
|||
26
Aldnepr
29.03.17
✎
10:47
|
(25) пробовал через запрос- пихает но криво не могу отфильтровать остатки по нужной мне фирме
ЗапросПартии = БазаИсточник.CreateObject("Запрос"); ТекстЗапросаПартии = "//{{ЗАПРОС(Сформировать) |Период с '" + СтрДата + "' по '" + СтрДата + "'; |Фирма = Регистр.ОстаткиТоваров.Фирма.Код; |КодСклада = Регистр.ОстаткиТоваров.Склад; |Товар = Регистр.ОстаткиТоваров.Товар; |Количество = Регистр.ОстаткиТоваров.ОстатокТовара; |Функция КоличествоКонОст = КонОст(Количество); //|Условие(Фирма = """+ТОВ+"""); //|Условие(КодСклада=Константа.ОсновнойСклад) ; |Группировка Товар; |"//}}ЗАПРОС ; //Если ЗначениеЗаполнено(Склад) Тогда //ТекстЗапросаПартии = ТекстЗапросаПартии + "Условие(КодСклада = """ + СокрЛП(Склад.Код) + """);" //КонецЕсли; //Если ЗначениеЗаполнено(Склад) Тогда ТекстЗапросаПартии = ТекстЗапросаПартии + "Условие(Фирма = """+БазаИсточник.Константа.ОсновнаяФирма.Код+""");" ; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |