Главная » 1С Предприятие » СПИСОК ЗНАЧЕНИЙ КАК ЭЛЕМЕНТ ДИАЛОГА

0

Рис.  3.4. Дополнительные  свойства  элементов  сЗнач2  и  сЗначЗ

Формулы  Удаление(  )  и  Перенос(  )  это  имена  процедур  модуля   обработки.   При необходимости  в  поле   Формула (рис.  3.4,  б)  можно разместить   имя  процедуры  (функции)  глобального  модуля  системы.

Напишем   теперь   код,  состоящий   из   процедур  ПриОткрытии,   Удаление,   Перенося и Выполнить.  Первая  процедура формирует  начальные значения  списков  сЗнач2  и  сЗнач3; вторая удаляет  помеченные элементы списка  сЗнач2  после  двойного  удара мыши  по  любому  элементу  списка  или   нажатия   на   Enter   в   момент   расположения  курсора   на  одном  из элементов   списка;   третья   переносит   выбранные  в   списке   сЗнач3   элементы  в   список сЗнач2.  Процедура  Выполнить, связанная   с  кнопкой диалога Пуск, восстанавливает,  обращаясь  к процедуре ПриОткрытии, начальные значения списков диалога.

процедура ПриОткрытии( )

//

Инициализация списков сЗнач2 и сЗнач3

перем  ин;

//

Начальный диалог приведен на рис. 3.5

перем  кодПодр[20], подр[20];       //   Векторы для имен подразделений и их кодов

перем  числоПодр;                 //          Число подразделений ОчиститьОкноСообщений();

числоПодр = 6;

кодПодр[1] = "099";                     подр[1]  = "Отдел кадров"; кодПодр[2] = "100";                     подр[2]  = "Бухгалтерия"; кодПодр[3] = "111";                    подр[3] = "Снабжение и сбыт"; кодПодр[4] = "001";                     подр[4] = "Цех 1";

кодПодр[5] = "002";                     подр[5]  = "Цех 2"; кодПодр[6] = "ОН";                    подр[6] = "Цех И";

сЗнач2.УдалитьВсе();     //   Операторы необходимы  для повторных  вызовов процедуры

сЗначЗ.УдалитьВсе();

для ин = 1 по числоПодр цикл

// Добавляем значение (код подразделения и его название) в список сЗнач2

сЗнач2.ДобавитьЗначение(кодПодр[ин], подр[ин]); конецЦикла; // для

сЗнач2.Сортировать(); сЗнач2.Выгрузить(сЗначЗ);

конецПроцедуры // ПриОткрытии

процедура Удаление()                  //Удаляет                помеченные элементы списка сЗнач2

перем поз, размСпис;

// При удалении очередного элемента размер  списка уменьшается на единицу

// Этот факт отразим в переменной размСпис

размСпис = сЗнач2.РазмерСписка(); поз = 1;

пока поз <= размСпис цикл

если сЗнач2.Пометка(поз) = 1 тогда сЗнач2.УдалитьЗначение(поз);

размСпис = размСпис 1;  // Размер  списка сократился  на единицу иначе

поз = поз + 1;            //       Наращиваем позицию, если нет удаления конецЕсли;

конецЦикла; // пока конецПроцедуры // Удаление

// Переносит выбранный элемент списка сЗнач3 в список сЗнач2

// Перенесенный элемент из сЗнач3 удаляется  процедура Перенос()

перем поз, код, имя;

поз = сЗначЗ.ТекущаяСтрока(); //  Выбранная строка  списка сЗнач3

// Код и название выбранного в сЗнач3 подразделения код = сЗначЗ.ПолучитьЗначение(поз, имя);

сЗначЗ.УдалитьЗначение(поз);     //   Удаляем  выбранное  подразделение из сЗнач3

// Добавляем   (переносим)   удаленное  из  сЗнач3   подразделение  в  сЗнач2

сЗнач2.ДобавитьЗначение(код,  имя); сЗнач2.Сортировать( );

конецПроцедуры // Перенос

// Восстанавливает первоначальные значения списков сЗнач2 и сЗнач3

процедура  Выполнить() ПриОткрытии();

конецПроцедуры // Выполнить

Рис. 3.5. Диалог обработки Проба после исполнения процедуры ПриОткрытии Замечание.  Список  значений  с пометками  можно  употреблять для  создания  интер-

фейсов, уподобляя  каждый  элемент списка  флажку     Например, в  отчете  1С  анализ

счета 20 используется  список значений, представленный на рис. 3.6.

Рис. 3.6. Список значений с пометками как элемент интерфейса

Однако если число элементов диалога типа Флажок фиксированно, то число флажков в списке значений  может быть переменным.

Источник: Бартеньев О. В. 1С:Предприятие:  программирование для  всех.  Базовые объекты и расчеты на одной дискете. М.: Диалог-МИФИ, 2005. 464 с.

По теме:

  • Комментарии