![]() |
|
v7: выбрать Группу Номенклатуры через ОЛЕ | ☑ | ||
---|---|---|---|---|
0
Popkorm
16.04.12
✎
14:24
|
Не получается выбрать Группу Номенклатуры,и затем засунуть его в запрос:
НомГруппа = V7.CreateObject("Справочник.Номенклатура"); НомСклад = V7.CreateObject("Справочник.Склады"); КодГруппа = "00000002"; НомГруппа.ВыборГруппы(1); НомГруппа.ВыбратьЭлементы(); Если НомГруппа.НайтиПоКоду(КодГруппа) = 1 Тогда Если НомГруппа.ЭтоГруппа()= 1 Тогда; ВыбранКод = НомГруппа.ТекущийЭлемент().Наименование; Иначе Сообщить(ОписаниеОшибки()); КонецЕсли; Иначе Сообщить(ОписаниеОшибки()); КонецЕсли; КодДоватораСклад = "00001"; Если НомСклад.НайтиПоКоду(КодДоватораСклад) = 1 Тогда НужныйСклад = НомСклад.Наименование; Иначе Сообщить(ОписаниеОшибки()); КонецЕсли; Запрос = V7.CreateObject("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с '"+ДатаКонец+"' по '"+ДатаКонец+"'; |Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура; |Код = Регистр.ОстаткиТМЦ.Номенклатура.Код; |Количество = Регистр.ОстаткиТМЦ.Количество; |Склад = Регистр.ОстаткиТМЦ.Склад; |Функция КоличествоКонОст = КонОст(Количество); |Группировка Номенклатура; |Условие(Номенклатура в '"+ВыбранКод+"'); |Условие(Склад = '"+НужныйСклад+"'); |"//}}ЗАПРОС ; Вижу только один вариант, в цикле отбором получить |
|||
1
Cube
16.04.12
✎
14:26
|
ЗначениеВСтрокуВнутр()?
|
|||
2
Popkorm
16.04.12
✎
14:29
|
(1) и куда её?!
|
|||
3
PuhUfa
16.04.12
✎
14:34
|
Зачем: НомГруппа.ВыбратьЭлементы();
если делаешь поиск по коду? Что ты хочешь увидеть вот этим: Сообщить(ОписаниеОшибки()); ? |
|||
4
Popkorm
16.04.12
✎
14:37
|
(3)если не трудно,дай свой вариант
|
|||
5
dk
16.04.12
✎
14:39
|
как все запущено
куда с такими знаниями в ОЛЕ лезть? |
|||
6
dk
16.04.12
✎
14:40
|
потренируйся не по ОЛЕ сначала
|
|||
7
Popkorm
16.04.12
✎
14:40
|
(5)ну с 7.7 недавно начал дружить
|
|||
8
dk
16.04.12
✎
14:42
|
можно подумать в такой запрос в 8-ке нормально отработает ))
ссылку от наименования надо отличать в условиях запроса |
|||
9
PuhUfa
16.04.12
✎
14:52
|
КодГруппа = "00000002";
Если НомГруппа.НайтиПоКоду(КодГруппа) = 1 Тогда ВыбранКод = НомГруппа.ТекущийЭлемент(); иначе сообщить("Нету такой группы... видимо сперли вместе с договором...","!!!"); КонецЕсли; КодДоватораСклад = "00001"; Если НомСклад.НайтиПоКоду(КодДоватораСклад) = 1 Тогда НужныйСклад = НомСклад.ТекущийЭлемент(); Иначе Сообщить("Упс!","!!!"); КонецЕсли; |
|||
10
Popkorm
16.04.12
✎
15:06
|
(9)не отрабатывает:
КодГруппа = "00000002"; Если НомГруппа.НайтиПоКоду(КодГруппа) = 1 Тогда Если НомГруппа.ЭтоГруппа()= 1 Тогда; ВыбранКод = НомГруппа.ТекущийЭлемент(); Иначе Сообщить(ОписаниеОшибки()); КонецЕсли; КонецЕсли; КодДоватораСклад = "00001"; Если НомСклад.НайтиПоКоду(КодДоватораСклад) = 1 Тогда НужныйСклад = НомСклад.ТекущийЭлемент(); Иначе Сообщить(ОписаниеОшибки()); КонецЕсли; Запрос = V7.CreateObject("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с '"+ДатаКонец+"' по '"+ДатаКонец+"'; |Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура; |Код = Регистр.ОстаткиТМЦ.Номенклатура.Код; |Количество = Регистр.ОстаткиТМЦ.Количество; |Склад = Регистр.ОстаткиТМЦ.Склад; |Функция КоличествоКонОст = КонОст(Количество); |Группировка Номенклатура; |Условие(Номенклатура в '"+ВыбранКод+"'); |Условие(Склад = '"+НужныйСклад+"'); |"//}}ЗАПРОС ; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; ТабЗагрузка=Новый ТаблицаЗначений; ТабЗагрузка=Новый ТаблицаЗначений; ТабЗагрузка.Колонки.Добавить("Номенклатура"); ТабЗагрузка.Колонки.Добавить("Код"); ТабЗагрузка.Колонки.Добавить("КонОстаток",Новый ОписаниеТипов("Число")); Запрос.вНачалоВыборки(); Пока Запрос.Группировка("Номенклатура") = 1 Цикл Если ЗначениеЗаполнено(Запрос.Код) Тогда КонОстатокБаза = Запрос.КоличествоКонОст; КонОстатка = Число(Прав(КонОстатокБаза,8)); Если КонОстатка > 0 Тогда Новстр =ТабЗагрузка.Добавить(); ОфигенныйКод = Строка(Запрос.Код); Новстр.Код = "TD_"+ОфигенныйКод; Новстр.Номенклатура = Строка(Запрос.Номенклатура); Новстр.КонОстаток = КонОстатка; КонецЕсли; КонецЕсли; КонецЦикла; ссылку надо получить для ВыбранКод |
|||
11
PuhUfa
16.04.12
✎
15:09
|
Возьми теперь отладчик и посмотри что у тебя в первом Если
|
|||
12
Popkorm
16.04.12
✎
15:19
|
||||
13
Popkorm
16.04.12
✎
15:24
|
и так тож не работает:
НомГруппа.ИспользоватьРодителя(НомГруппа.ТекущийЭлемент()) |
|||
14
Popkorm
16.04.12
✎
15:47
|
не будут вариантов?!
|
|||
15
Креатив
16.04.12
✎
17:34
|
(14)В чём у тебя проблема: найти значение группы или подставить его в запрос?
|
|||
16
Popkorm
17.04.12
✎
08:58
|
(15)и то и другое,то есть находит саму группу,а нужно группу со всеми элементами справочника..
|
|||
17
Popkorm
17.04.12
✎
11:05
|
(16)+ и эту группу подставить в запрос
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |