12.
venger
2121
24.06.09 17:28
Сейчас в теме
() А если это элемент диалога? Ведь когда я пишу функцию, мне по барабану, будет эта ТЗ элементом диалога или создана программно, будет строку выбирать пользователь интерактивно или я буду задавать ее программно, может быть в одном месте так, а в другом так:-))) Но функция ДОЛЖНА быть одна, а не по десять разных на каждый через одно место сделанный метод 1С:-))) Я ж не 1С'ник, чтобы такую НЕ универсальность терпеть:-))))
Вот пример, закинь ТЗ как элемент диалога и запусти такой код:
тз.НоваяКолонка("Кол1");
тз.НоваяСтрока();
тз.НоваяСтрока();
тз.НоваяСтрока();
тз.НоваяСтрока();
тз.НоваяСтрока();
Сообщить("Всего: "+тз.КоличествоСтрок()+" Текущая: "+тз.НомерСтроки);
Сообщить("Всего: "+тз.КоличествоСтрок()+" Текущая: "+тз.ТекущаяСтрока());
тз.ПолучитьСтрокуПоНомеру(3);
Сообщить("Всего: "+тз.КоличествоСтрок()+" Текущая: "+тз.НомерСтроки);
Сообщить("Всего: "+тз.КоличествоСтрок()+" Текущая: "+тз.ТекущаяСтрока());
И знаешь что выведет?
----------------------
Всего: 5 Текущая: 5
Всего: 5 Текущая: 1
Всего: 5 Текущая: 3
Всего: 5 Текущая: 1
----------------------
А теперь выполни тоже, только убери ТЗ с формы диалога и первой строчкой вставь тз = СоздатьОбъект("ТаблицаЗначений");
И выведет уже так:
---------------------
Всего: 5 Текущая: 5
Всего: 5 Текущая: 0
Всего: 5 Текущая: 3
Всего: 5 Текущая: 0
---------------------
И ты понимаешь, в чем прикол, что интерактивный выбор строки пользователем ты можешь узнать одним методом, а программное позиционирование другим:-)
Более того, замени в этом примере тз.ПолучитьСтрокуПоНомеру(3); на тз.ТекущаяСтрока(3); и для программно сформированной ТЗ ты увидишь:
---------------------
Всего: 5 Текущая: 5
Всего: 5 Текущая: 0
Всего: 5 Текущая: 5
Всего: 5 Текущая: 3
---------------------
А для элемента диалога ТЗ:
---------------------
Всего: 5 Текущая: 5
Всего: 5 Текущая: 1
Всего: 5 Текущая: 5
Всего: 5 Текущая: 3
---------------------
И клиника тут тоже в том, что спозиционировать строку, так, чтобы и курсор на нее встал, когда это элемент диалога, тебе нужно тоже, одним методом, а когда программно созданную другим.
Короче, где универсальность?:-) Т.е. сегодня я пишу функцию, которая ТЗ как элемент диалога не предполагает, а завтра, если мне нужно тот же алгоритм, но еще и учитывая действия пользователя, то я должен другую писать? Жирно не будет?:-)))