Прогресс бар 8.2 (УТ 11 без изменения конфигурации, для SQL)

Публикация № 159607 06.11.12

Приемы и методы разработки - Работа с интерфейсом

Данный приём позволяет показать текущее состояние выполнения серверного кода пользователю (без внесения изменений в конфигурацию). Идея взята от сюда http://infostart.ru/public/157706/

1. Код модуля формы внешней обработки

//Устанавливаем количество обновлений индикатора на сервере.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   
Обновлений = 10;
КонецПроцедуры


//Обнуляем прогресс бар, запускаем фоновую процедуру на сервере, подключаем обработчик ожидания
&НаКлиенте
Процедура НачатьИндикацию(Команда)

   
Прогресс = 0;

   
ВыполнитьНаСервере(УникальныйИдентификатор, Обновлений);

   
ПодключитьОбработчикОжидания("ОбработчикОжидания", 1, Ложь);

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


//Получаем сообщения от фонового задания и прогресс операции. Если операция закончилась отключаем обработчик ожидания.
&НаКлиенте
Процедура ОбработчикОжидания()

   
ПолучитьПрогрессВыполнения(УникальныйИдентификатор, Прогресс);

   
Состояние(НСтр("ru = 'Тест прогресс бара'"), Прогресс, НСтр("ru = 'Пустой цикл для тестирования'"));

    Если
Прогресс = 100 Тогда
       
ОтключитьОбработчикОжидания("ОбработчикОжидания");
    КонецЕсли;

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


//Устанавливаем привилегированный режим, если у пользователя нет административных прав. Запускаем фоновое задания из внешней обработки с помощью метода который доступен в УТ 11.
&НаСервереБезКонтекста
Процедура ВыполнитьНаСервере(УникальныйИдентификатор, Обновлений)

   
УстановитьПривилегированныйРежим(Истина);

   
ЗаданиеПараметры = Новый Массив();
   
ЗаданиеПараметры.Добавить(Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Прогрес-бар [0.0.1]"));
   
ЗаданиеПараметры.Добавить(Новый Структура("Обновлений", Обновлений));
   
ЗаданиеПараметры.Добавить(Неопределено);
   
ЗаданиеПараметры.Добавить(Неопределено);

   
ФоновоеЗадание = ФоновыеЗадания.Выполнить("ДополнительныеОтчетыИОбработки.ВыполнитьОбработкуНепосредственно", ЗаданиеПараметры, УникальныйИдентификатор, "ИндикацияПроцеса");

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

 

&НаСервереБезКонтекста
Процедура ПолучитьПрогрессВыполнения(УникальныйИдентификатор, Прогресс)

   
НайденныеЗадания = ФоновыеЗадания.ПолучитьФоновыеЗадания(Новый Структура("Ключ", УникальныйИдентификатор));
    Если
НайденныеЗадания.Количество() = 0 Тогда Возврат; КонецЕсли;

   
Задание = НайденныеЗадания[0];
    Если
Задание.Состояние = СостояниеФоновогоЗадания.Активно Тогда
       
МассивСообщений = Задание.ПолучитьСообщенияПользователю(Истина);
        Если
МассивСообщений = Неопределено Тогда Возврат; КонецЕсли;
        Для Каждого
Сообщение Из МассивСообщений Цикл
            Если
Строка(Сообщение.ИдентификаторНазначения) = "00000000-0000-0000-0000-000000000000" Тогда
               
Прогресс = Число(Сообщение.Текст);
            Иначе
               
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Сообщение.Текст, Сообщение.КлючДанных, Сообщение.Поле, Сообщение.ПутьКДанным);
            КонецЕсли;
        КонецЦикла;;
    Иначе
       
Прогресс = 100;
    КонецЕсли;

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



2. Код модуля объекта внешней обработки

Функция СведенияОВнешнейОбработке() Экспорт
   
Версия = "0.0.1";

   
// Объявим переменную, в которой мы сохраним и вернем "наружу" необходимые данные
   
ПараметрыРегистрации = Новый Структура;

   
// Объявим еще одну переменную, которая нам потребуется ниже
   
МассивНазначений = Новый Массив;

   
// Первый параметр, который мы должны указать - это какой вид обработки системе должна зарегистрировать.
    // Допустимые типы: ДополнительнаяОбработка, ДополнительныйОтчет, ЗаполнениеОбъекта, Отчет, ПечатнаяФорма, СозданиеСвязанныхОбъектов
   
ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");

   
// Теперь нам необходимо передать в виде массива имен, к чему будет подключена наша ВПФ
    // Имейте ввиду, что можно задать имя в таком виде: Документ.* - в этом случае обработка будет подключена ко всем документам в системе,
    // которые поддерживают механизм ВПФ
    //СчитатьДокументыНазначений(МассивНазначений);
   
ПараметрыРегистрации.Вставить("Назначение", Новый Массив);

   
// Теперь зададим имя, под которым ВПФ будет зарегистрирована в справочнике внешних обработок
   
ПараметрыРегистрации.Вставить("Наименование", "Прогрес-бар [" + Версия + "]");

   
// Зададим право обработке на использование безопасного режима. Более подробно можно узнать в справке к платформе (метод УстановитьБезопасныйРежим)
   
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);

   
// Следующие два параметра играют больше информационную роль, т.е. это то, что будет видеть пользователь в информации к обработке
   
ПараметрыРегистрации.Вставить("Версия", Версия);
   
ПараметрыРегистрации.Вставить("Информация", "Прогрес-бар [" + Версия + "]");

   
// Создадим таблицу команд (подробнее смотрим ниже)
   
ТаблицаКоманд = ПолучитьТаблицуКоманд();

   
// Добавим команду в таблицу
   
ДобавитьКоманду(ТаблицаКоманд, "Прогрес-бар [" + Версия + "]", "BP", "ОткрытиеФормы", Ложь, "BP");

   
// Сохраним таблицу команд в параметры регистрации обработки
   
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

   
// Теперь вернем системе наши параметры
   
Возврат ПараметрыРегистрации;

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


Функция
ПолучитьТаблицуКоманд()

  
// Создадим пустую таблицу команд и колонки в ней
  
Команды = Новый ТаблицаЗначений;

  
// Как будет выглядеть описание печатной формы для пользователя
  
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));

  
// Имя нашего макета, что бы могли отличить вызванную команду в обработке печати
  
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));

  
// Тут задается, как должна вызваться команда обработки
   // Возможные варианты:
   // - ОткрытиеФормы - в этом случае в колонке идентификатор должно быть указано имя формы, которое должна будет открыть система
   // - ВызовКлиентскогоМетода - вызвать клиентскую экспортную процедуру из модуля формы обработки
   // - ВызовСерверногоМетода - вызвать серверную экспортную процедуру из модуля объекта обработки
  
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));

  
// Следующий параметр указывает, необходимо ли показывать оповещение при начале и завершению работы обработки. Не имеет смысла при открытии формы
  
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));

  
// Для печатной формы должен содержать строку ПечатьMXL
  
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));

   Возврат
Команды;

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



Процедура
ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")

 
// Добавляем команду в таблицу команд по переданному описанию.
  // Параметры и их значения можно посмотреть в функции ПолучитьТаблицуКоманд
 
НоваяКоманда = ТаблицаКоманд.Добавить();
 
НоваяКоманда.Представление = Представление;
 
НоваяКоманда.Идентификатор = Идентификатор;
 
НоваяКоманда.Использование = Использование;
 
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
 
НоваяКоманда.Модификатор = Модификатор;

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


// Пощитаем коэффициенты и сделаем соответствие чтобы знать когда обновлять прогресс. 
Процедура
ВыполнитьКоманду(Параметры) Экспорт

   
Обновлений  = Параметры.Обновлений;
   
Итераций = 10000000;
   
Коэф     = Цел(Итераций / Обновлений);
   
КоэфОбн  = 100 / Обновлений;

   
ТочкиОбновления = Новый Соответствие;
    Для
i = 1 По Обновлений Цикл ТочкиОбновления[i * Коэф] = Цел(i * КоэфОбн); КонецЦикла;

   
Сообщение = Новый СообщениеПользователю;
   
Сообщение.ИдентификаторНазначения = Новый УникальныйИдентификатор;
   
Сообщение.Текст = "Фоновая обработка данных успешно началась.";
   
Сообщение.Сообщить();

    Для
i = 1 По Итераций Цикл
        Если
ТочкиОбновления[i] <> Неопределено Тогда ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Строка(ТочкиОбновления[i])); КонецЕсли;

       
// Основной код.

   
КонецЦикла;

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




Плюсы:

    • Не нужно изменять основную конфигурацию;
    • все очень просто в реализации и использовании;
    • пользователь видит прогресс и одновременно делает что-то еще.



Скачать файлы

Наименование Файл Версия Размер
Индикация.epf

.epf 8,97Kb
313
.epf 8,97Kb 313 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Stamper 43 08.11.12 23:32 Сейчас в теме
2. pbazeliuk 09.11.12 00:47 Сейчас в теме
(1) Stamper, в файловой версии менеджер заданий не активен. И задания выполняются по очереди, а не асинхронно. Комментарий актуален к УТ 11, может в других конфигурациях есть выход.
3. Stamper 43 09.11.12 00:56 Сейчас в теме
(2)
И задания выполняются по очереди, а не асинхронно.

пожалуйста, немного поподробнее расскажи! или может быть, есть ссылочка?
4. pbazeliuk 09.11.12 01:22 Сейчас в теме
(3) Stamper, В файловом варианте задания всегда выполняются последовательно одно за другим, в отличие от клиент-серверного варианта, где несколько заданий могут выполняться параллельно в одном и том же рабочем процессе или в разных рабочих процессах и даже на разных компьютерах. Поэтому, выделенного клиента, занимающегося обработкой заданий, не рекомендуется использовать для других целей, т.к. это может негативно повлиять на производительность выполнения заданий.

Клиенты в файловом варианте не имеют прямой связи с планировщиком заданий и взаимодействуют с ним через файл обмена, который находится в каталоге информационной базы (в клиент-серверном варианте клиенты соединены с планировщиком по TCP/IP, что позволяет избежать задержек при назначении заданий на выполнение). Поэтому при обработке заданий возможны небольшие задержки, связанные с тем, что планировщик читает файл обмена и получает очередную порцию заданий на выполнение только после того, как завершит выполнение полученных ранее заданий.

www.bit.ly/TO6csq
dj_serega; elik1972; NAKIS; teflon; khaoos; Serj1C; +6 Ответить
5. ksuman 14.12.13 03:16 Сейчас в теме
(4) можно было не объяснять почему это не работает в файловом варианте, а просто ответить: нет необходимости таких заморочек с ПрогрессБаром, т.к. можно управлять формой Прогресса - Явно;)

Есть какая-дь более эффективная процедура управления Прогресс-баром из текущей формы внешней обработки при запуске длительной Глобальной процедуры на сервере, не меняя конфигурацию, притом что серверная процедура меняет значения элементов этой формы, но обновления реквизитов формы (ПрогрессБар + СтатуснаяСтрока) мы можем увидеть только по окончании выполнения на сервере и возврате в клиентский контекст?
7. pbazeliuk 20.12.13 01:16 Сейчас в теме
(5)В УФ такой процедуры нет. Можно реализовать это прыжками между контекстами "&НаКлиенте" на "&НаСервере", то есть порцию обработали в контексте сервера, вернулись на контекст клиента - показали прогресс, далее возвращаемся на контекст сервера для обработки следующей порции. Этот метод очень негативно влияет на время выполнения длительной операции.

но обновления реквизитов формы (ПрогрессБар + СтатуснаяСтрока) мы можем увидеть только по окончании выполнения на сервере и возврате в клиентский контекст
- Да, обновление интерфейса состоится только после возвращения в контекст клиента.

В обычных формах проблем нет, для их реализовано множество различных ПрогрессБаров.
6. NAKIS 5 18.12.13 14:32 Сейчас в теме
Спасибо, добавил плановому отделу в их обработочку) Теперь приятно радует глаз)
А то все время были возмущения, мол нихрена не понятно, работает или зависло, а текстовое представления работы обработки им не нравилось...
8. velber 18.04.15 15:24 Сейчас в теме
Бухгалтерия предприятия, редакция 3.0 (3.0.39.60)

При выполнении выдает ошибку:

{Форма.Форма.Форма(43)}: Ошибка при вызове метода контекста (Выполнить)
ФоновоеЗадание = ФоновыеЗадания.Выполнить("ДополнительныеОтчетыИОбработки.ВыполнитьОбработкуНепосредственно", ЗаданиеПараметры, УникальныйИдентификатор, "ИндикацияПроцеса");
по причине:
Метод задания не найден: ДополнительныеОтчетыИОбработки:ВыполнитьОбработкуНепосредственно
10. pbazeliuk 1911 18.04.15 16:59 Сейчас в теме
(8) velber, возможно, в БСП изменилось название метода или убрали ключевое слово "Экспорт" или изменились свойства общего модуля
9. velber 18.04.15 15:42 Сейчас в теме
Управление торговлей, редакция 11.1 (11.1.6.20)

При выполнении выдает ошибку:

Метод задания не найден: ДополнительныеОтчетыИОбработки:ВыполнитьОбработкуНепосредственно
11. fixin 4122 31.07.15 15:20 Сейчас в теме
В типовых есть функция ДополнительныеОтчетыИОбработки.ВыполнитьКоманду. Её можно использовать для обработчика фонового задания, чтобы выполнить свою обработку, помещенную в справочник внешних обработок.
paravoz71; gragden; +2 Ответить
12. yuha33 23.10.15 14:02 Сейчас в теме
При выполнении выдает ошибку:

Метод задания не найден: ДополнительныеОтчетыИОбработки:ВыполнитьОбработкуНепосредственно

Можно тыкнуть пальцем, где взять этот код. В УТ11 я его не обнаружил. Ни в старой, ни в новой.
13. pbazeliuk 1911 23.10.15 14:51 Сейчас в теме
(12) yuha33, посмотрите здесь как сделано http://infostart.ru/public/405368/. Работает под УТ 11
14. Andreyyy 61 04.12.15 20:17 Сейчас в теме
Подскажите, будут ли доступны в фоновом исполнении остальные процедуры/функции модуля объекта обработки из процедуры "ВыполнитьКоманду(Параметры)" ?
15. pbazeliuk 1911 07.12.15 13:39 Сейчас в теме
(14) Andreyyy, будут доступны в контексте фонового задания только те методы, которые есть в самой обработке фонового задания. Так же контекст обработки, что инициировала фоновое задание будет недоступен.
Оставьте свое сообщение

См. также

Альтернативный способ добавления элементов и реквизитов на формы Промо

Работа с интерфейсом v8 ERP2 УТ11 Россия Абонемент ($m)

Предлагаю альтернативный вариант добавления динамически создаваемых элементов и реквизитов на форму.

1 стартмани

09.09.2019    21577    39    bmk74    8    

Выделение текущей строки в отчете (сделать сразу во всех отчетах и ничего не сломать)

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Как за 10 минут упростить работу с отчётами программистам и пользователям. Добавить ВО ВСЕ ОТЧЁТЫ механизм автоматического выделения текущей строки отчёта (той, на которой установлен курсор). И ПРИ ЭТОМ НИЧЕГО НЕ СЛОМАТЬ.

1 стартмани

17.10.2021    6655    8    Патриот    49    

Работа с картами в 1С на примере бесплатной библиотеки Leaflet

WEB Работа с интерфейсом Языки и среды v8 1cv8.cf Абонемент ($m)

Разработка функционала отображения и выбора пунктов доставки на карте прямо в 1С с помощью бесплатной библиотеки Leaflet. Тестирование производилось на платформе 8.3.15.1534 на тонком клиенте.

1 стартмани

31.03.2021    17155    52    Parsec1C    19    

Делаем из СКД Excel (ну, почти)

Работа с интерфейсом v8 Абонемент ($m)

Несложный в использовании способ внедрить в обычный отчет СКД возможность редактировать значения ресурсов отчета (а-ля Excel) и получать отредактированные значения для дальнейшей обработки.

1 стартмани

26.01.2020    20010    31    herfis    16    

Расширенная настройка динамического списка УФ Промо

Работа с интерфейсом v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

31.05.2017    42706    165    tormozit    25    

Индикация прогресса выполнения фонового задания на управляемой форме внешней обработки

БСП (Библиотека стандартных подсистем) Работа с интерфейсом v8 v8::УФ 1cv8.cf Абонемент ($m)

Внешняя обработка с фоновым выполнением и индикацией процесса для любой конфигурации на основе БСП >= 2.3 без изменения конфигурации и встраивания обработки в "Дополнительные отчеты и обработки".

1 стартмани

27.12.2019    25740    49    1sig    17    

Декомпиляция условного оформления

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Обработка автоматически генерирует полный код создания условного оформления формы любой сложности. Достаточно настроить для формы в конфигураторе условное оформление, а затем выбрать данную форму в обработке. В результате будет сгенерирован программный код создания условного оформления.

2 стартмани

23.12.2019    15000    65    XilDen    7    

Многоуровневые списки выбора с оформлением элементов

Работа с интерфейсом v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

17.12.2019    15855    2    azhilichev    5    

Открывашка ячеек таблиц Промо

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Глобальное сочетание клавиш для открытия объекта по ссылке из текущей ячейки любой таблицы в большинстве управляемых форм

1 стартмани

27.10.2018    25599    14    tormozit    38    

[Механизм интерфейса] Свой флажок (чекбокс)

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Создадим свой флажок для интерфейса, используем простой универсальный алгоритм.

1 стартмани

09.08.2019    26675    23    rpgshnik    43    

Отбор на управляемой форме из списка значений

Работа с интерфейсом v8 v8::УФ 1cv8.cf Абонемент ($m)

Пример простого удобного отбора любых данных ссылочного типа на управляемой форме. Работа обработки проверена на релизе: 1С:Предприятие 8.3.13.1513.

1 стартмани

09.08.2019    41949    47    nagaitseff    6    

Рисуем и распознаем нарисованное при помощи нейросети

Работа с интерфейсом v8 v8::УФ 1cv8.cf Абонемент ($m)

Используем нейронную сеть для распознавания нарисованных объектов.

1 стартмани

03.10.2018    21296    50    DO_WHILE_LOOP    28    

Лучший подарок для бухгалтера - счёты 8.2 (со звуком) Промо

Работа с интерфейсом v8 1cv8.cf Россия Абонемент ($m)

(Толстый клиент) Подарите бухгалтеру счеты, и он(а) Вас никогда не забудет.

1 стартмани

13.05.2011    47564    924    Tatitutu    45    

Отправка электронной почты с помощью локального почтового клиента из 1С, развернутой под удаленным рабочим столом

Печатные формы Универсальные функции Email v8 КА1 БП2.0 УТ10 УПП1 Абонемент ($m)

Решение для интерактивной (нажал-отредактировал) отправки электронных писем и печатных форм через почтовый клиент (Thunderbird, Outlook) находящийся на локальном компьютере, из конфигурации 1С, развернутой под удаленным рабочим столом (RDP, remote-app). Подходит также для локального развертывания 1С. Представлен пример быстрой интеграции с конфигурациями "Управление торговлей 10.3", "Управление производственным предприятием 1.3", "Комплексная автоматизация 1.1", "Бухгалтерия предприятия 2.0".

1 стартмани

21.09.2018    35567    24    stvorl    1    

Визуализация событий на временной шкале средствами "Поле HTML документа"

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Интересный способ наглядно отобразить события на временной шкале. Например, может быть применен для красивого вывода документов по клиенту. Тестировалось на платформе 8.3.12.1469

1 стартмани

31.07.2018    32444    151    Plotks2017    27    

Продвинутое рисование в табличном документе (стрелок и не только)

Работа с интерфейсом v8 Абонемент ($m)

Вспоминаем геометрию и основы компьютерной графики. Матрицы и аффинные преобразования на плоскости.

1 стартмани

24.07.2018    24328    22    WalterMort    31    

Интерактивный интерфейс Промо

Рабочее место Работа с интерфейсом v8 1cv8.cf Россия Абонемент ($m)

Обработка (отдельная панель меню), позволяющая настраивать интерфейс пользователя интерактивно (права не настраивает). Мне очень пригодилось, так как приходится прописывать индивидуальный интерфейс, каждому пользователю (а их уже сотни). Выложил 2 версии одна в виде таблицы, вторая в виде выпадающего меню

1 стартмани

29.10.2011    24282    65    Vin_Tik    9    

Работа с данными выбора

Работа с интерфейсом v8 Россия Абонемент ($m)

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

1 стартмани

17.07.2018    81258    25    kalyaka    17    

Иерархическая диаграмма

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Концепция диаграммы по иерархической структуре данных, например по номенклатуре (продажи или остатки на складах).

2 стартмани

17.06.2018    21417    21    DrAku1a    7    

Markdown и 1С:Предприятие. Визуализация разметки MD в поле HTML документа

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Пример работы с документами Markdown (MD) на платформе 1С:Предприятие 8. Используется поле HTML документа, подключение JavaScript библиотеки преобразования разметки Markdown в HTML.

1 стартмани

12.06.2018    14751    19    infosoft-v    12    

Цветовые схемы для конфигуратора 1С (Популярные цветовые схемы для C# - теперь и для 1С) (Теперь 8.2 - 8.3) Промо

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Тёмные цветовые схемы кода. То, что было доступно всем передовым средствам разработки, теперь доступно и на 1С. 13.12.17 UPD: Теперь работает с платформой 8.3

3 стартмани

07.10.2013    47570    195    Chernov_Dmitriy    82    

Рисуем стрелки в табличном документе

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Рисуем стрелки средствами 1С .

1 стартмани

01.06.2018    22072    10    pm74    10    

Вставка снимка экрана (screenshot) в форматированный документ

Работа с интерфейсом v8 Россия Абонемент ($m)

Пример работы с буфером обмена и программной вставки скриншота в форматированный документ.

1 стартмани

30.08.2017    31730    51    Boneman    14    

Программное создание элементов графической схемы (через XSLT)

Работа с интерфейсом Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

20.07.2017    29278    82    lazarenko    20    

Лучшие методы сравнения таблиц значений Промо

Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

02.02.2015    145848    70    ildarovich    67    

Рисуем в 1С

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Вдруг захотелось порисовать в paint, а его использование заблокировано корпоративными политиками. Бывало такое? Тогда прошу под кат...

1 стартмани

11.05.2017    26440    83    pallid    35    

Графическая схема. Управление при помощи XDTO.

Работа с интерфейсом v8 Абонемент ($m)

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

2 стартмани

16.01.2017    34843    151    Alxby    25    

Простой редактор плана помещения JavaScript

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

На ресурсе сейчас очень много решений, которые позволяют редактировать карты, используя географические схемы. Так же много решений, которые позволяют редактировать объекты онлайн веб-карт. Мне же нужно было простое решение, для того чтобы расставить квадратные объекты на плане, показать их пользователю. Ну и распечатать, опять же. Я решил написать простенький редактор на JavaScript с использованием библиотеки Raphael.

1 стартмани

23.11.2016    31015    110    igel9780    23    

NativeDraw: Компонента рисования для 1С [V2.6.2] Промо

Разработка внешних компонент Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Рисуйте в формах 1С, также предлагается небольшое количество нерисовальных функций

3 стартмани

13.07.2015    57532    475    ПерваяСистема    147    

Работа с двоичными данными на примере чтения файлов изображений. Новые возможности 8.3.9

Универсальные функции Механизмы платформы 1С v8 1cv8.cf Россия Абонемент ($m)

В статье приводятся новые функции по работе с двоичными данными, появившимися в версии платформы 8.3.9 , на примере анализа формата и размера изображений. А также пример отправки изображения через API ВКонтакте с помощью новых объектов (без использования ОбъединитьФайлы())

1 стартмани

14.11.2016    41585    19    Anton64    25    

Настройка начальной страницы (Рабочего стола)

Работа с интерфейсом Рабочее место Универсальные обработки v8 1cv8.cf Абонемент ($m)

Альтернатива стандартной настройке начальной страницы. В типовой доступны лишь те формы, что явно "разрешены" разработчиком в режиме конфигуратора. Эта обработка позволяет собрать "Рабочий стол" из любых подходящих форм в пользовательском режиме. Без программирования. БСП не используется. Не расширение. Универсальна, т.е. подойдет для любой конфигурации (в т.ч. самописной).

2 стартмани

19.10.2016    50743    282    Erne100    32    

Вывод Таблицы Значений или Дерева Значений на экран управляемой формы без объявления колонок в реквизитах формы

Универсальные функции v8 1cv8.cf Абонемент ($m)

Примеры взаимных преобразований Таблицы значения в Дерево значений или Табличный документ с использованием универсальных функций и макетов Системы компоновки данных. Примеры представлены в форме удобной для копирования в разработку.

1 стартмани

13.09.2016    50981    57    pavley2002    12    

Подборка иконок для подсистем 1С:8.2, 8.3 (740 шт.) PNG 48х48 Промо

Работа с интерфейсом v8 1cv8.cf Россия Абонемент ($m)

Подборка иконок для подсистем 1С: Предприятие 8.2, 8.3 (УП) в формате PNG 48*48 с сохранением прозрачности.

3 стартмани

19.12.2011    126482    1254    Lesha1C    74    

Выполнение JavaScript кода из 1С в объекте Поле HTML Документа (HTML 5) и вызов события в 1С ПриНажатии

Работа с интерфейсом Языки и среды v8 1cv8.cf Россия Абонемент ($m)

Пример выполнения JS кода из 1С в Поле HTML Документа под управляемыми формами, с удобным получением результата в 1С(С помощью вызова привязанного события ПриНажатии к элементу ПолеHTMLДокумента)

1 стартмани

22.03.2016    105074    178    igo1    65    

Генерация QR-кода программная и интерактивная (код открыт, управляемая форма, обычное и управляемое приложение, API)

Универсальные функции Универсальные обработки v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработку можно быстро и легко интегрировать в любую конфигурацию с и без БСП (Библиотека Стандартных Подсистем).

3 стартмани

04.02.2016    61112    190    TuneSoft    30    

Подчеркивание текста в макете

Работа с интерфейсом Универсальные функции v8 1cv8.cf Абонемент ($m)

Часто возникала проблема с тем, что в макете нужно выводить частично подчеркнутый, "динамический" текст. То бишь с различного содержания, разной длины (пять слов или сто пять - неважно). Но всегда используется определенный текст, к примеру: "статья УК РФ №666 п.666". И если в этом тексте еще и требуется подчеркнуть что-то отдельно, к примеру: "статья УК РФ №666 п.666", то это была просто трагедия. Приходилось корячить макет вдоль и поперек, чтобы все красиво отображалось.

1 стартмани

11.01.2016    16647    9    papa_harlo    33    

Автоматическая генерация Web-интерфейса с использованием http-сервисов

WEB Универсальные функции v8 1cv8.cf Абонемент ($m)

Пример автоматической генерации Web-интерфейса с использованием http-сервисов.

1 стартмани

03.01.2016    23223    76    BurningChrome    20    

Автоматическая подстановка уничтожений временных таблиц в текст запроса

Универсальные функции v8 1cv8.cf Абонемент ($m)

Функция, которая сама подставляет в текст запроса "УНИЧТОЖИТЬ" в местах последнего использования ВТ.

1 стартмани

14.11.2015    25127    0    SeiOkami    3    

Передача реквизитов объекта из основной формы в дополнительную и обратно на управляемых формах

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Наверное, многие сталкивались с ситуацией, когда у некоего редактируемого объекта (справочник, документ, внешняя обработка) кроме основной формы нужно сделать парочку дополнительных, чтобы часть реквизитов заполнять в них, а потом возвращать заполненные значения в основную форму и в сам объект. И если бы речь шла об обычных формах, то проблемы бы и не было. Но в управляемых формах с этим возникает проблема, а в случае отказа от модальности она становится немного больше.

1 стартмани

02.11.2015    52500    16    Wolex    35    

Асинхронная загрузка данных на Управляемую Форму. Прогресс бар (УФ 8.3). Индикация состояния процесса

Работа с интерфейсом Универсальные функции Внешние источники данных v8 v8::УФ 1cv8.cf Абонемент ($m)

Часто бывает, что возникает необходимость загрузить множество данных из разнообразных источников в определенную форму или рабочее место. В процессе загрузки пользователь в неведении — информация готовится или нет. Прием позволяет загружать данные из нескольких источников асинхронно, не блокируя форму\интерфейс, а также отображать ошибки и состояние прогресса. По мере готовности данных, они будут отображены на форме

1 стартмани

09.10.2015    45397    136    pbazeliuk    6    

Визуальный html редактор на управляемых формах

Работа с интерфейсом WEB v8 1cv8.cf Абонемент ($m)

Мы рассмотрим некоторые особенности и возможности подключения сторонних визуальных html редакторов на javascript - TinyMCE, CK Editor. С помощью приложенной обработки Вы сможете попробовать в действии полноценный и удобный визуальный html редактор, а при желании перенести подобный функционал к себе.

1 стартмани

30.09.2015    39102    241    ivanov660    53    

Вывод табличных документов в общую форму "Печать документов" (УФ)

Работа с интерфейсом v8 v8::УФ 1cv8.cf Абонемент ($m)

Механизм вывода произвольных табличных документов в общую форму "Печать документов". Работает для конфигураций на БСП.

1 стартмани

25.09.2015    39113    25    Alekseyshalam    23    

Javascript и 1С. Кросс-платформенное взаимодействие

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Что делать, если необходим богатый интерфейс, а управляемые формы нам его не могут обеспечить? Использовать HTML и JavaScript. В статье рассмотрено взаимодействие кода 1С и JavaScript, работающее на любой платформе: толстый, тонкий и веб-клиент, под Windows и Linux.

1 стартмани

14.09.2015    89134    232    VitaliyCeban    65    

Методы для группировки данных по полю,полям в Таблице Значений на примере универсального метода списания по партиям, а также отбора строк в ТЗ по произвольному условию. Для 8.x и 7.7

Универсальные функции v7.7 v8 1cv8.cf 1cv7.md Абонемент ($m)

Я очень часто использую группировку данных по полю и полям, как в восьмерке, так и в семерке. Это аналог запроса Итоги, но там строится дерево, а в большинстве случаев нужны "плоские данные". Да и делать запрос в большинстве случаев более накладный процесс, чем работа с ТЗ. Все достоинства такого подхода приведены на примере метода универсального списания по париям, а так же отбора строк в ТЗ по произвольному условию. Для 7.7 еще отчеты сравнения двух ТЗ. Работая с различными базами для упрощения сравнения номенклатуры, или как аналог джойнов(join), сделал сравнение двух таблиц значений по нескольким полям. Пока группировки полей должны быть уникальны. Часто приходится искать дубли, для универсального поиска есть ДублиВТзПоПолю и пример в Тест.ert.

1 стартмани

25.06.2015    35339    4    Serginio    1    

Универсальное настраиваемое рабочее место (Версия 2.0)

Универсальные обработки Работа с интерфейсом Рабочее место v8 1cv8.cf Абонемент ($m)

При работе очень часто штатные интерфейсы 1С бывают неудобны в силу разной специфики работы каждого пользователя, а также конфигурация обычно "обрастает" новыми обработками, отчетами, документами и справочниками, которые требуются для работы организации, а в стандартных меню их, естественно, нет. Это особенно относится к толстому клиенту (например, программы УПП, УТ10.3 и пр.). Делать свои интерфейсы - не всегда спасает: то, что нужно одному пользователю, другому совершенно не надо, даже если у них одинаковые функциональные обязанности. Открывать все через меню "Операции" тоже неудобно: у нас, например, за несколько лет работы добавилось столько нового и специфичного, что уже и не помнишь, что и для чего. Поэтому родилась идея сделать что-то удобное и универсальное, что и получилось в результате: пользователь сам, не прибегая к помощи программиста, может сделать удобное меню для себя и всегда изменить, если требуется. И без всяких изменений конфигурации...

3 стартмани

13.06.2015    21611    130    yuraskid    31