|
v7: Как найти элемент справочника по его периодическому реквизиту (его значению)? | ☑ | ||
---|---|---|---|---|
0
katerinaUniv
07.06.15
✎
21:41
|
Добрый вечер!
Есть справочник номенклатура, есть реквизит периодический (задается вручную и обработкой при загрузке сведений) кодФ. Мне необходимо при загрузке из хмл по этому периодическому реквизиту найти элемент справочника номенклатура. Помогите пожалуйста... |
|||
1
RomanYS
07.06.15
✎
21:45
|
по текущему значению, или по всей истории?
|
|||
2
ДенисЧ
07.06.15
✎
21:47
|
(картинка барт) Я никогда не стану использоватьт запросы!
|
|||
3
RomanYS
07.06.15
✎
21:48
|
предварительно обойди весь справочник(можно запросом), помести все пары реквизит-ссылка в список значений, потом будешь быстро получать
Ссылка = Список.Получить(ЗначениеРеквизита); |
|||
4
katerinaUniv
07.06.15
✎
21:49
|
(1) желательно по всей истории
(1), (2) ну не помню я запросы в 7.7, помогите пожалуйста с текстом |
|||
5
RomanYS
07.06.15
✎
21:52
|
(4) запросом в 7.7 историю не получишь - только срез
(3) остается в силе, только придется использовать объект "периодический" чтобы собрать кэш-список |
|||
6
RomanYS
07.06.15
✎
21:52
|
+(3) будет работать только если реквизит строковый
|
|||
7
katerinaUniv
07.06.15
✎
21:54
|
(6) кодФ это строковый реквизит
|
|||
8
katerinaUniv
07.06.15
✎
21:54
|
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Номенклатура = Справочник.Номенклатура.ТекущийЭлемент; |КодПоФерреро = Справочник.Номенклатура.КодПоФерреро; |Условие(КодПоФерреро=""77098304""); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; // Подготовка к заполнению выходных форм данными запроса Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); // Заполнение полей "Заголовок" Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); // Вывод заполненной формы Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать", ""); |
|||
9
katerinaUniv
07.06.15
✎
21:54
|
(8) ничего не вернул
|
|||
10
katerinaUniv
07.06.15
✎
21:56
|
(9)хотя такая позиция есть в справочнике
|
|||
11
KUBIK
07.06.15
✎
21:57
|
|КодПоФерреро = Справочник.Номенклатура.ТекущийЭлемент.КодПоФерреро;
|
|||
12
katerinaUniv
07.06.15
✎
21:57
|
очень не хочу каждую позицию в справочнике обходить
и искать код |
|||
13
RomanYS
07.06.15
✎
21:59
|
(8) это значение последнее?
вообще запросы 7.7 с периодическими реквизитами работают не очень, значения дают только на конечную дату, а как работают условия - мне не известно |
|||
14
RomanYS
07.06.15
✎
22:00
|
(12) сделай (3)+(5), быстрее только прямые запросы
|
|||
15
katerinaUniv
07.06.15
✎
22:02
|
(14) не понимаю. это же как в (8)
|
|||
16
RomanYS
07.06.15
✎
22:06
|
(15) нет
у тебя одно значение в файле или несколько? |
|||
17
katerinaUniv
07.06.15
✎
22:07
|
несколько
|
|||
18
katerinaUniv
07.06.15
✎
22:07
|
я просто почти не спала 2 ночи и сильно туплю...
|
|||
19
katerinaUniv
07.06.15
✎
22:07
|
у меня хмл с другой проги, там я читаю список заказов
|
|||
20
katerinaUniv
07.06.15
✎
22:08
|
и каждого заказа есть таб часть, соответственно в хмл файле есть сегмент order и подчиненный ему product
|
|||
21
katerinaUniv
07.06.15
✎
22:08
|
этих product может быть любое количество
|
|||
22
katerinaUniv
07.06.15
✎
22:09
|
product - описывается, какая номенклатура в каком количестве по какой цене продана
|
|||
23
katerinaUniv
07.06.15
✎
22:09
|
номенклатуру пытаюсь найти по коду ферреро
|
|||
24
katerinaUniv
07.06.15
✎
22:09
|
который является строковым периодическим реквизитом
|
|||
25
katerinaUniv
07.06.15
✎
22:10
|
у меня голова кругом, даже это не сработало:
Если спрНом.НайтиПоНаименованию(элПрод.ВыбратьУзел("DESCRIPTION").Значение) = 1 Тогда ном = спрНом.ТекущийЭлемент(); докРеал.Номенклатура = ном; докРеал.Единица = ном.БазоваяЕдиница; ценаРеал = ном.ЦенаФеррейро.получить(ТекущаяДата()); докРеал.СтавкаНДС = ном.СтавкаНДС; КонецЕсли; |
|||
26
RomanYS
07.06.15
✎
22:12
|
Список = СоздатьОбъект("СписокЗначений");
Цикл .. по номенклатуре Цикл .. по истории(здесь придется использовать "периодический") Список.Установить(ЗначениеРеквизитаИзИстории, Спр.ТекущийЭлемент); КонецЦикла; КонецЦикла; Цикл по файлу Номенклатура = Список.Получить(ЗначениеРеквизитаИзФайла); .. |
|||
27
katerinaUniv
07.06.15
✎
22:13
|
как сделать цикл по истории?
|
|||
28
katerinaUniv
07.06.15
✎
22:13
|
по номенклатуре я сделаю тупо выборку
|
|||
29
RomanYS
07.06.15
✎
22:16
|
(27) точно не скажу, смотри СП
примерно История = СоздатьОбъект("Периодический"); История.ИспользоватьОбъект(тут параметры); История.ВыбратьЗначения() Пока История.ПолучитьЗначение() = 1 Цикл .. |
|||
30
RomanYS
07.06.15
✎
22:17
|
(24) феерично, зачем периодический?
|
|||
31
katerinaUniv
07.06.15
✎
22:17
|
нашла примерный код, оказывается аналогичное было написано. только там пишется все не в списокЗначений, а в талицуЗначений
|
|||
32
katerinaUniv
07.06.15
✎
22:18
|
(30) он меняется во времени, это что-то типа штрихкода
|
|||
33
katerinaUniv
07.06.15
✎
22:18
|
так диктует дисьрибьютор. там много таких фееричных вещей :.( не подскажешь, как поиск по таблицеЗначений в 7.7 идет?
|
|||
34
RomanYS
07.06.15
✎
22:20
|
(31) таблица чуть медленнее чем сз
(32) в данном случае лучше подчиненный справочник (33) я семерку месяц назад видел, а у тебя конфигуратор с СП |
|||
35
katerinaUniv
07.06.15
✎
22:22
|
(34) тогда переделаю под сз. спасибо тебе большое!!!
|
|||
36
Попытка1С
07.06.15
✎
22:24
|
А нужен ли вообще реквизиту КодПоФерреро переодическое свойство?
Может ну его нафиг? |
|||
37
katerinaUniv
07.06.15
✎
22:25
|
(37) не разрешают (((((
|
|||
38
Попытка1С
07.06.15
✎
22:28
|
1c++ используется?
|
|||
39
RomanYS
07.06.15
✎
22:29
|
(37) переделай на подчиненный справочник: будешь иметь легко доступную историю и возможность быстрого поиска.
Лучше никогда не использовать поиск по периодическому реквизиту |
|||
40
katerinaUniv
07.06.15
✎
23:12
|
(40)учту на будущее, возможно переделаю, если позволят
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |