конфедератка

1c_v8_create


1С 8.2 Разработка управляемого приложения


Когда много пользователей и мало ключей или часто обновлется конфигурация
Барс
russiandriver
Когда наступает момент, что количество пользователей идет на десятки, то их достаточно проблематично лояльно "выгнать" из базы за маленький промежуток времени и не допустить, что бы новые не зашли, или сообщить всем, что базу надо перезапустить после динамического обновления. Так же появляется проблема с эффективным использованием ключиков доступа: например аналитик с утра сформировал отчет и больше с 1С-кой не работает, а выйти из нее не вышел, и получается, что одна пользовательская лицензия работает "вхолостую".
Смотрим вариант решения...Свернуть )

Сравниваем две строки
Барс
russiandriver
Периодически возникают ошибки ввода пользователей. Часть их можно исключить (например проверкой перед записью на уникальность такого названия), другую часть очень проблематично отследить например "Математика" и "математика" или "Иванова  ивана  ИвОнАвича" и "Иванов Иван Иванович".
Для этого написал небольшой алгоритм для вероятностного сравнения двух строк

Смотреть функцию сравнения...Свернуть )

Количество записей в форме списка.
New_old_face
tlg25
Подскажите, пожалуйста.
Необходимо, чтобы в форме списка справочника отображалось количество записей в нём после фильтрации.
Интересует как обычный фильтр(Cntrl-F) так и то, что получается после "Настройки списка".
Стандартной функции для получания количества записей даже не фильтрованных я вообще не нашла.
Без учёта фильтра при открытии формы делаю запрос, который считает количество записей в справочнике и выводит его в заголовок.

Для того чтобы тоже самое сделать с фильтром мне необходимо:

1. Найти событие типа OnFilter причём как для обычного CtrlF так и для настройки списка,
пока такого события не нашла.
2. Как-то получать значения того, по каким полям я фильмтрую, каковы значения фильтра и в случае с настройкой списка ещё и значение оператора(равно, не равно, меньше, заполнен и т.п.), чтобы потом построить запрос и получить количество.

Как это сделать тоже не знаю.

Может кто сталкивался с такой необходимостью?
Метки:

Анализ длительной работы на стороне сервера
Барс
russiandriver
В 8.2 некрасиво реализована команда Состояние. Она может быть вызвана только на клиенте, а основная работа длительных процессов происходит (во всяком случае должна проходить) на стороне сервера..и возвращать процедуру на клиент, только для того, что бы сообщить о состоянии процесса некамильфо... Тем более что инициировать на сервере клиентскую составляющую и вернутся опять на сервер на платформе нереализуемо (во всяком случае пока). Простейшее решение пришло в создании и записи текстового файла как лога состояния...и не надо обращаться к клиентской стороне. (обработка сократилась при общем выполнение 60 часов на 2 часа 20 минут.
Метки: , ,

Реализация сложного обмена между 1С и сторонней БД с нуля
Барс
russiandriver
Возникла потребность сделать обмен в режиме условно реального времени между 1С и БД на MySQL.
Далее описываю общий принцип построения обмена:
Условия:
Базы обмениваются напрямую с инструкцией в виде XML файла, значит они должны видеть друг друга.
Смотрим вариант решения...Свернуть )

Групповая обработка табличной части
Барс
russiandriver
При необходимости как либо сгруппировать данные в табличной части могут пригодиться запрос и временная таблица.
Условие: имеем Табличную часть документа (Товары) в которой есть реквизиты: Номенклатура, Количество.
Необходимо сделать так, что б номенклатура не повторялась. Решение: Свернуть )

Оформление в 8.2
Барс
russiandriver
После некоторых мытарств и консультаций у Максима Радченко (devtrainingforum.v8.1c.ru/forum/thread.jsp) была освоена тема оформления с помощью пиктограмм в 8.2.  Итак:Свернуть )

Как установить режим отладки на стороне сервера в клиент-серверном режиме работы
Барс
russiandriver
Возникла проблема следующего характера: при установки точек отладки в клиент-серверном режиме все что выполняется на стороне клиента - работает, а все точки останова, расположенные на стороне сервера, игнорируются.
Решение...Свернуть )

Получаем данные из запроса, содержащего одну строку
Барс
russiandriver
Имеем запрос, результатом выполнения которого будет всегда одна строка
Например:
ТекстЗапроса = "Выбрать таб.Имя, Таб.Фамилия из Спраочник.Пользователи как Таб, Где Справочник.Пользователь = &Пользователь";

' пока все как обычно
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("Пользователь",ПараметрыСеанса.ТекущийПользователь);
ВЗ = Запрос.Выполнить();
Если Не ВЗ.Пустой() Тогда
'проверим есть ли что-нибудь  в выполненном запросе
ТЗ = Вз.Выгрузить() ' В данном случае выборка нам не нужна, так как перебирать нечего
Имя           = ВЗ[0].Имя;
Фамилия  = ВЗ[0].Фамилия;
КонецЕсли;

Скрипты нам в помощь
Барс
russiandriver
Периодически сталкиваюсь с проблемой обновления платформы на клиентских машинах, + периодически пользователи удаляют, изменяют или добавляют какие-то новые информационные БД. В случае 8.2 новые релизы платформы стали штамповать чуть ли не каждый месяц, что меня повергло в уныние, разбираясь в этом вопросе понял: у кого есть домен могут легко реализовать с помощью доменных политик..Те же кто лишен домена и работает в рабочих группах, может прибегнуть к помощи кривоватого скрипта от 1С (текст скрипта приведен в руководстве администратора 8.2 стр. 185
Но как быть, если нужно одновременно снести старую платформу и поставить новую + что б еще у всех пользователей был одинаковый список информационных БД, Да и лучше, что б по ссылке вообще автоматом выбиралась нужна ИБ!
Для решения нам нужно какое-нибудь общедоступное сетевое пространство, куда мы кладем дистрибутивы платформ и нужный нам список баз (отредактированный файлик ibases.v8i)
Итак, пишем следующий скрипт...Свернуть )

?

Log in