|
Бесконечный цикл по номенклатуре | ☑ | ||
---|---|---|---|---|
0
sidalexsandr
13.04.18
✎
14:33
|
Выборка = Справочники.БП_ПрейскурантНаРаботы.Выбрать();
Пока Выборка.Следующий() Цикл // пропустить товар, который вне групп Если Выборка.Наименование = "Компенсация командировочных затрат инженера выездного ремонта" Тогда Продолжить; КонецЕсли; Если Выборка.Ссылка.ЭтоГруппа = Истина Тогда // группы уже созданы пропустить группы Продолжить; КонецЕсли; // Проверить, что родитель ЭтоГруппа, если найденный родитель // это не группа, тогда запустить заново поиск родителя Пока Истина Цикл ТекРод = Справочники.Номенклатура.НайтиПоНаименованию(Выборка.Родитель, Истина); Если ТекРод.ЭтоГруппа = Истина Тогда Прервать; КонецЕсли; КонецЦикла; Сообщить("Выборка.Наименование = " + Выборка.Наименование); Сообщить("ТекРод = " + ТекРод); // Проверить если Выборка.Работа в справочнике номенклатура нашлась // как группа, то искать дальше Пока Истина Цикл ТекТов = Справочники.Номенклатура.НайтиПоНаименованию(Выборка.Работа, Истина); Если ТекТов.ЭтоГруппа = Ложь Тогда Прервать; КонецЕсли; Сообщить("Бесконечный цикл №2 = " + Выборка.Работа); КонецЦикла; ТекТоварчик = ТекТов.ПолучитьОбъект(); ТекТоварчик.Родитель = ТекРод; ТекТоварчик.Записать(); КонецЦикла; Не понятно почему Бесконечный цикл №2. Цикл зацикливается на товаре который есть и как группа и как товар. Следовательно должно сработать прерывание цикла по условию ТекТов.ЭтоГруппа = Ложь. Вопрос: почему не срабатывает условие ТекТов.ЭтоГруппа = Ложь? |
|||
1
Джинн
13.04.18
✎
14:35
|
Что это?! Мой мозг взорвался.
|
|||
2
Mihasya
13.04.18
✎
14:36
|
Можэ оно просто равно NULL
|
|||
3
piter3
13.04.18
✎
14:36
|
Пятница
|
|||
4
Cool_Profi
13.04.18
✎
14:38
|
я, конечно, извиняюсь, но это уже даже не алкоголь..
|
|||
5
Buster007
13.04.18
✎
14:38
|
(0) ты там кем?)
|
|||
6
Малыш Джон
13.04.18
✎
14:38
|
(0) Думаю, для того чтобы написать сообщение, не обязательно каждый раз создавать новую ветку
https://www.forum.mista.ru/topic.php?id=817064&all=1 |
|||
7
Малыш Джон
13.04.18
✎
14:40
|
(0) вот это:
Пока Истина Цикл ТекТов = Справочники.Номенклатура.НайтиПоНаименованию(Выборка.Работа, Истина); Если ТекТов.ЭтоГруппа = Ложь Тогда Прервать; КонецЕсли; Сообщить("Бесконечный цикл №2 = " + Выборка.Работа); КонецЦикла; по определению бесконечный цикл |
|||
8
sidalexsandr
13.04.18
✎
14:41
|
(7) А как мне перейти к поиску следующего элемента справочника Номенклатура?
|
|||
9
sidalexsandr
13.04.18
✎
14:42
|
(6) Извини забыл
|
|||
10
Масянька
13.04.18
✎
14:45
|
(8) Зашибись...
А 12 лет чего делал? |
|||
11
sidalexsandr
13.04.18
✎
14:45
|
(10) 7.7
|
|||
12
Масянька
13.04.18
✎
14:45
|
(11) И?
|
|||
13
Любопытная
13.04.18
✎
14:46
|
(9) пару строк поменять местами.
Правда для этого надо мозг включить... |
|||
14
sidalexsandr
13.04.18
✎
14:47
|
(12) Что не понятного, программировал на 1с 7.7, потом учился в Политехе и потом начал работать с 1c 8.
|
|||
15
Любопытная
13.04.18
✎
14:47
|
(14) программировал на 7.7 это не оправдание ни разу.
|
|||
16
sidalexsandr
13.04.18
✎
14:48
|
Переформулирую вопрос: как запустить поиск элемента справочника повторный. Надо чтобы если поиск нашел группу, то продолжать искать дальше пока не найдется элемент.
|
|||
17
Малыш Джон
13.04.18
✎
14:49
|
(16) эммм... искать дальше - это куда? весь справочник перебрать?
|
|||
18
Любопытная
13.04.18
✎
14:51
|
Сделать запрос
|
|||
19
Малыш Джон
13.04.18
✎
14:52
|
если уж ты семерочник и не сталкивался с запросами(а сделать конечно же надо здесь и сейчас, и это разовая обработка)
ну найди ты все элементы у которых ЭтоГруппа = Ложь - и делай с ними что хочешь: Справочники.Номенклатура.НайтиПоРеквизиту("ЭтоГруппа", Ложь); |
|||
20
Малыш Джон
13.04.18
✎
14:56
|
+(19) Видимо и правда, пятница))
Справочники.Номенклатура.Выбрать(,,Новый СТруктура("ЭтоГруппа",Ложь)); |
|||
21
sidalexsandr
13.04.18
✎
15:02
|
(20) Пятница. Понял надо цикл по справочнику номенклатура.
|
|||
22
Малыш Джон
13.04.18
✎
15:03
|
(21) но вообще, в восьмерке используют запросы, потому что цикл по полной выборке - это может быть очень долго.
|
|||
23
Вафель
13.04.18
✎
15:10
|
может все-таки запросом?
|
|||
24
sidalexsandr
13.04.18
✎
16:48
|
(23) Да ты прав, запрос быстрее. Но говорят, что запрос в цикле это плохо.Задача отпала, так как решили в название групп добавить
слово услуги. |
|||
25
Mankubus
13.04.18
✎
16:51
|
(24) у тебя итак запрос в цикле, не поверишь
|
|||
26
0xFFFFFF
13.04.18
✎
17:49
|
(24) хахаха.
|
|||
27
xXeNoNx
13.04.18
✎
18:43
|
(24) (26) два раза мухахахаха
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |