|
УТ11 - странный код | ☑ | ||
---|---|---|---|---|
0
ildary
30.05.17
✎
10:35
|
Уважаемые специалисты, посоветуйте пожалуйста, можно ли данный код(не мной добавленный в конфигурацию) заменить на
Если ТаблицаТоваров.Количество() = 0 Тогда Возврат; КонецЕсли; Вот сам код: ТабТовары = ТаблицаТоваров.Выгрузить(); Для Каждого Стр Из ТабТовары Цикл Стр.НомерСтроки = Индекс + 1; Если Стр.Выбран Тогда ЕстьТовары = Истина; КонецЕсли; КонецЦикла; Если Не ЕстьТовары Тогда Возврат Ложь; КонецЕсли; |
|||
1
butterbean
30.05.17
✎
10:38
|
а где анализ поля Выбран ??
|
|||
2
Jonny_Khomich
30.05.17
✎
10:38
|
вряд ли. в таблице товаров ведь флаг есть "выбран", он то и проверяется.
|
|||
3
Толич
30.05.17
✎
10:39
|
Если ТаблицаТоваров.Количество() = 0 Тогда
Возврат ЛОЖЬ; КонецЕсли; |
|||
4
Ц_У
30.05.17
✎
10:39
|
ТАм не только Выбран но и номер строки устанавливается
|
|||
5
HardBall
30.05.17
✎
10:39
|
НайтиСтроки()
|
|||
6
ildary
30.05.17
✎
10:41
|
(3) действительно, я набил вручную и пропустил.
Но в целом в коде нет никакой вуду магии, кроме анализа на наличие строки в таблице и его можно сократить? До такого: Если ТаблицаТоваров.Количество() = 0 Тогда Возврат Ложь; КонецЕсли; |
|||
7
oslokot
30.05.17
✎
10:43
|
(6) тебе уже озвучили правильный ответ в (5)
|
|||
8
Ц_У
30.05.17
✎
10:43
|
А так, "Работает - не трожь"(с)
|
|||
9
2dolist
30.05.17
✎
10:44
|
Можешь сократить, добавив свою проверку в начале
|
|||
10
2dolist
30.05.17
✎
10:46
|
Выбран()
Синтаксис: Выбран() Назначение: Определение факта позиционирования объекта типа документ. Возвращает: 1 - если документ выбран; 0 - если не выбран. если Документ записан в базе , метод Записать() то будет 1 , а если только создается - открыта форма , но документ не записан будет 0 Метод перекочевал ещё из 7-ки |
|||
11
CountR
30.05.17
✎
10:47
|
В коде УТ во первых заполняется колонка Номер строки:
Стр.НомерСтроки = Индекс + 1 и во вторых устанавливается флаг ЕстьТовары по условию Если Стр.Выбран В предложенном коде: Если ТаблицаТоваров.Количество() = 0 Тогда Возврат; КонецЕсли; не выполняется ни одной из этих двух задач. ЗЫ: вот потом и пишут везде - УТ11 - гуано и криво сделано. |
|||
12
patria0muerte
30.05.17
✎
10:51
|
Функция ЕстьВыбранныеТовары()
Возврат ТаблицаТоваров.НайтиСтроки(Новый Структура("Выбран", Истина)).Количество() > 0; КонецФункции |
|||
13
VladZ
30.05.17
✎
10:53
|
(0) Я не вижу смысла править код.
Код читабельный: логика кода понятна. Кроме того, косяков тут нет. |
|||
14
Вафель
30.05.17
✎
10:55
|
Лучше ТаблицаТоваров.Итог("Выбран") > 0
|
|||
15
Вафель
30.05.17
✎
10:55
|
А в (0) просто не хватает Прервать.
|
|||
16
CountR
30.05.17
✎
10:59
|
Без полного цикла по всем строкам не будет заполняться поле НомерСтроки:
Стр.НомерСтроки = Индекс + 1 |
|||
17
ildary
30.05.17
✎
11:00
|
Большое спасибо всем за помощь, меня смутил Выбран, оказалось так обозвали пометку. Самый лучший и простой код - в (12).
|
|||
18
Вафель
30.05.17
✎
11:00
|
(16) Одинаковый номер строки всем строкам тоже можно быстрее установить
|
|||
19
Вафель
30.05.17
✎
11:01
|
(16) Кстати здесь это бессмысленный код, ибо не в основную тз запись, а в выгруженную. Которая потом нигде не используется
|
|||
20
УППшник
30.05.17
✎
11:02
|
(0) При чем здесь УТ 11?
|
|||
21
ildary
30.05.17
✎
11:04
|
(20) это дописка в УТ11. Согласен, что типовой код здесь отсутствует.
|
|||
22
НЕА123
30.05.17
✎
11:07
|
(12)+
Функция ЕстьВыбранныеТовары() Возврат ТаблицаТоваров.Найти("Выбран", Истина) <> Неопределено; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |