Домой / 1С / Советы и хитрости
Разработки
Конфигурации
Обработки и отчеты
Переход Парус -> 1С
Советы и хитрости

     В этом разделе я буду собирать приемы и наработки, позволяющие реализовать в среде программирования 1С различный функционал, расширить стандартные возможности или придать конфигурации более профессиональный вид.

 

 

 

 

 

5. | Прогрессор в строке состояния

     Для наглядного представления продолжительного процесса выполнения обработки данных можно реализовать строку прогресса в строке состояния при помощи псевдографики.

//Пример процедуры обработки таблицы значений ТЗ

//Размер прогрессора задан в 20 символов (5%)

Процедура ОБработкаДанных()

    РазмерИндикатора = ТЗ.КоличествоСтрок();

    Индикатор = "";

    Для А = 1 По 20 Цикл

        Индикатор = Индикатор + "    ";

    КонецЦикла;        

    Счетчик = 0;

    //Текст обработки строк ТЗ

    ТЗ.ВыбратьСтроки();

    Пока ТЗ.ПолуичтьСтроку() = 1 Цикл

        Счетчик = Счетчик + 1;

        //Обработка строки

        Показатель = Цел(Счетчик/РазмерИндикатора * 100);

        Если Цел(Показатель/5) = Показатель/5 Тогда

            Индикатор = "";

            Для А = 1 По 20 Цикл

                Индикатор = Индикатор + ?(А<=Показатель/5,Симв(127),"    ");  

            КонецЦикла;        

            Состояние(Индикатор + "| Анализ адресов; " + Показатель + "%");

        КонецЕсли;

    КонецЦикла;

КонецПроцедуры    

4. | Создание списка всех видов расчетов

     Для включения всех видов расчетов в произвольный список значений без использования перебора групп видов расчетов можно использовать функцию Шаблон().

//Функция присвоения значения

Функция ПолучениеВР(ВР,Объект)

        ВР = Объект;

        Возврат "";

КонецФункции              

 

//Ниже приведен цикл перебора видов расчетов

сзВидыРасчетов = СоздатьОбъект("СписокЗначений");

Для А По Метаданные.ВидРасчета() Цикл

       текВР = Метаданные.ВидРасчета(А);

       Шаблон("[ПолучениеВР(ВР,"+текВР.ПолныйИдентификатор()+")]");

       Если ПустаяСтрока(текВР.Синоним) = 1 Тогда

               стрВР = текВР.Идентификатор;

       Иначе

               стрВР = текВР.Синоним;

       КонецЕсли;

       сзВидыРасчетов.ДобавитьЗначение(ВР,стрВР);

КонецЦикла;              

 

 

 

 

 

 

 

 

 

 

6. | Получения номера релиза конфигурации

  Для контроля версий обрабатываемых конфигураций можно получить номер релиза из внешней обработки путем анализа файла 1sconst.dbf:

ДБФ = СоздатьОбъект("XBase");

ДБФ.КодоваяСтраница(0);

ИмяФайла = СокрП(ПутьККаталогуСБазой)+"1sconst.dbf";

Попытка

    ДБФ.ОткрытьФайл(ИмяФайла,,1);

    Если ДБФ.Открыта() = 1 Тогда

         ДБФ.Первая();

         Пока ДБФ.ВКонце() = 0 Цикл

             Если Найти(ДБФ.Value,"7.70.") > 0 Тогда

                  НомерРелиза = СокрП(ДБФ.Value);

                  ДБФ.ЗакрытьФайл();

                  Прервать;

             КонецЕсли;         

             ДБФ.Следующая();

        КонецЦикла;

     ДБФ.ЗакрытьФайл();

Исключение

    Сообщить("ОШИБКА: " + ОписаниеОшибки());

КонецПопытки;

Страницы: 1, 2

Copyright (c) 2007-2009 "АМКАИС"
Hosted by uCoz