|
Сравнение двух ТЗ | ☑ | ||
---|---|---|---|---|
0
Смертник
16.07.14
✎
14:36
|
БазаИсточник = V82.Connect(СтрокаПодключения);
Запрос = БазаИсточник.newObject("Запрос"); ЭлементыФормы.ТабПолеОтчет.Очистить(); Запрос.Текст = "ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура.Наименование КАК Номенклатура, | ТоварыНаСкладахОстатки.СерияНоменклатуры.Наименование КАК СерияНоменклатуры, | СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Количество_Рабочая |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Склад = &Склад) КАК ТоварыНаСкладахОстатки | |СГРУППИРОВАТЬ ПО | ТоварыНаСкладахОстатки.СерияНоменклатуры.Наименование, | ТоварыНаСкладахОстатки.Номенклатура.Наименование"; Запрос.УстановитьПараметр("Склад", БазаИсточник.Справочники.Склады.НайтиПоКоду(ПолеСклад.Код)); Запрос.УстановитьПараметр("Дата", КонецДня(Дата1)); ВыборкаРабочая = Запрос.Выполнить().Выгрузить(); Макет = ЭтотОбъект.ПолучитьМакет("СравнениеРасхода"); Область = Макет.ПолучитьОбласть("СтрШапка"); ЭлементыФормы.ТабПолеОтчет.Вывести(Область); ОбластьСтр = Макет.ПолучитьОбласть("Стр"); РазницаИтого = 0; ТЗДанные = ЗапросФактическогоКоличестваПоОтборам().Выгрузить(); Для Каждого Стр ИЗ ТЗДанные Цикл Номенклатура = Стр.Номенклатура; СерияНоменклатуры = Стр.СерияНоменклатуры; НайденнаяНоменклатура = ВыборкаРабочая.Найти(Номенклатура); НайденнаяСерияНоменклатуры = ВыборкаРабочая.Найти(СерияНоменклатуры); //Номенклатура = ВыборкаРабочая.Найти("Стр.Номенклатура", Номенклатура); //СерияНоменклатуры = ВыборкаРабочая.Найти("Стр.СерияНоменклатуры", СерияНоменклатуры); КонецЦикла; Вопрос вот в чем - НайденнаяНоменклатура - получает значение COM объект, а не значение самой номенклатуры. Почему? |
|||
1
mikecool
16.07.14
✎
14:36
|
тема не соответствует содержимому
то, что получил - такой тип и имеет |
|||
2
Смертник
16.07.14
✎
14:38
|
Поставлю вопрос по другому, как из COM объект получить ТЗ?
|
|||
3
Михаил Козлов
16.07.14
✎
14:43
|
(2) Создать ТЗ, из COM перенести данные. Если речь про то, как в текущей БД найти номенклатуру (COM), то:
- либо по коду; - либо по наименованию; - либо по реквизиту (Артикул); - либо получить УИД, в зависимости от того, как синхронизированы справочники. |
|||
4
Kamas
16.07.14
✎
14:45
|
(2) а давайте зададим вопрос что такое COM объект ?? понимание ответа на этот вопрос даст вам ответ на ваш.
|
|||
5
hhhh
16.07.14
✎
14:45
|
(2) там ведь наименования у вас. Пятница, что ли?
НайденнаяНоменклатура = ВыборкаРабочая.Найти(Номенклатура); НайденнаяСерияНоменклатуры = ВыборкаРабочая.Найти(СерияНоменклатуры); это же строки тз у вас получаются |
|||
6
Смертник
16.07.14
✎
14:59
|
COM объект - ТЗ, полученная из другой базы
|
|||
7
Irbis
16.07.14
✎
15:01
|
(6) Сравнивать напрямую можно только простые типы: строки, числа, даты
|
|||
8
Kamas
16.07.14
✎
15:01
|
(6) не а COM объект - ТЗ, в другой базе
|
|||
9
Kamas
16.07.14
✎
15:02
|
(8) что согласитесь слегка не одно и тоже
|
|||
10
Смертник
16.07.14
✎
15:12
|
(8,9) Согласен не одно и тоже. А подскажите как COM объект преобразовать в ТЗ?
|
|||
11
Wobland
16.07.14
✎
15:14
|
(10) значение в строку внутр и обратнго
|
|||
12
hhhh
16.07.14
✎
15:17
|
(10) в цикле переписать в ТЗ этой базы, построчно.
|
|||
13
Wobland
16.07.14
✎
15:19
|
(12) ну фу же ;)
|
|||
14
Смертник
16.07.14
✎
15:21
|
Выб = БазаИсточник.ЗначениеВСтрокуВнутр(ВыборкаРабочая);// COM объект
ТЗ_рабочая = ЗначениеИзСтрокиВнутр(Выб); Вот так сделал |
|||
15
Wobland
16.07.14
✎
15:21
|
(14) не за что
|
|||
16
Kamas
16.07.14
✎
15:24
|
(15) ага а если в запросе не строка а ссылка будет??
|
|||
17
Wobland
16.07.14
✎
15:26
|
(16) ком-объект такой ком-объект... у меня не бывало, я не в курсе
|
|||
18
Смертник
16.07.14
✎
15:41
|
Вот как теперь в Цикле найти СериюНоменклатуры понять бы
НайденнаяСерияНоменклатуры = ТЗ_рабочая.НайтиСтроки(СерияНоменклатуры); Вот так пишет что недостаточно параметров |
|||
19
Wobland
16.07.14
✎
15:45
|
(18) а что пишет СП?
|
|||
20
hhhh
16.07.14
✎
15:45
|
(18) а переменная СерияНоменклатуры? Там у вас точно-точно структура?
|
|||
21
Wobland
16.07.14
✎
15:46
|
(20) а ТЗ не подойдёт?
|
|||
22
catena
16.07.14
✎
15:47
|
(18)Недостаточно параметров или все-таки несоответствие типов?
|
|||
23
hhhh
16.07.14
✎
15:54
|
(21) поиск одной ТЗ внутри другой? Ну на такое даже гений 1с не решался.
|
|||
24
Wobland
16.07.14
✎
15:54
|
(22) поврать человеку не дашь..
(23) фигню ляпнул, согласен |
|||
25
Смертник
16.07.14
✎
16:08
|
Вообщем задача такая - в одной базе наоприходованно номенклатуры больше чем в другой. И необходимо пройтись по ТЗ ТЗДанные и сравнить с ТЗ_рабочая и там где количество будет разное загрузить в документ Инвентаризация
|
|||
26
Wobland
16.07.14
✎
16:09
|
(25) хвастаешься?
|
|||
27
Смертник
16.07.14
✎
16:09
|
Для Каждого Стр ИЗ ТЗДанные Цикл
И вот тут необходимо сравнить и выявить номенлатуру и количество по ней КонецЦикла |
|||
28
Смертник
16.07.14
✎
16:10
|
чем? вроде не хвастаюсь, а спрашиваю совета
|
|||
29
Wobland
16.07.14
✎
16:11
|
(28) а вроде хвастаешься, а не спрашиваешь
у меня есть РС СоответствиеОбъектовДляОбмена, но я его не отдам никому |
|||
30
Смертник
16.07.14
✎
16:18
|
Отбор = Новый Структура();
Отбор.Вставить("Номенклатура", Номенклатура); Отбор.Вставить("СерияНоменклатуры", СерияНоменклатуры); НайденныеСтр = ТЗ_рабочая.НайтиСтроки(Отбор); |
|||
31
Wobland
16.07.14
✎
16:21
|
(30) бывает
|
|||
32
Kamas
16.07.14
✎
16:24
|
(27) может я глупость скажу но можно просто получить тз из com передать ее во второй запрос и сразу получить результат чем творить 100500 тз и искать в них соответствие
|
|||
33
Kamas
16.07.14
✎
16:25
|
(32) просто будет слегка побыстрее и не так заморочено
|
|||
34
Смертник
16.07.14
✎
16:30
|
(32) подскажите как это сделать - точнее наведите на мысль
|
|||
35
Wobland
16.07.14
✎
16:31
|
(34) я в соседней базе все ссылки конвертировал в уид, а потом отдавал получившуюся ТЗ в запрос местной базы
|
|||
36
Kamas
16.07.14
✎
16:33
|
(34) как сделать что передачу тз в запрос, нахождение нужной номенклатуры, или нахождение не соответствия по количеству??
|
|||
37
Смертник
16.07.14
✎
16:35
|
Передачу ТЗ в запрос - остальное я и сам нарисую
|
|||
38
Wobland
16.07.14
✎
16:36
|
(37) УстановитьПараметр
|
|||
39
Kamas
16.07.14
✎
16:36
|
||||
40
Wobland
16.07.14
✎
16:37
|
(39) мало запятых. мало МВТ
|
|||
41
Kamas
16.07.14
✎
16:40
|
(40) ))
|
|||
42
Фокусник
16.07.14
✎
16:40
|
(39) ИМХО, не самый наглядный способ, лучше так:
http://programmist1s.ru/kak-pomestit-tablitsu-v-zapros-1s/ |
|||
43
Wobland
16.07.14
✎
16:41
|
(42) вот тут с МВТ порядок ;)
|
|||
44
Kamas
16.07.14
✎
16:41
|
(42) Зато первая ссылка в яндексе))
|
|||
45
Kamas
16.07.14
✎
16:44
|
(43) неа это не интересно нужно сразу заниматься опфукацией своего кода тем самым компенсируя открытость кода поэтому в (32) я сказал глупость))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |