Как настроить время засыпания пассивного сеанса и время завершения спящего сеанса?
В конфигураторе в «Параметрах информационной базы» в разделе «Администрирование».
Читать далееАвтоматизация бизнес-процессов
В конфигураторе в «Параметрах информационной базы» в разделе «Администрирование».
Читать далее\System\Processor Queue Length и \Processor(_Total)\% Processor Time
Читать далее
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
&НаКлиенте Процедура УстановитьОбщийПроцентСкидки(Команда) Оповещение = Новый ОписаниеОповещения("ЗавершениеВводаЧисла", ЭтотОбъект); Подсказка = "Введите процент скидки"; НовыйПроцент = 0; ПоказатьВводЧисла(Оповещение, НовыйПроцент, Подсказка, 10, 3); КонецПроцедуры &НаКлиенте Процедура ЗавершениеВводаЧисла(Процент, ДополнительныеПараметры) Экспорт Если Не Процент = Неопределено Тогда // обрабатываем ввод КонецЕсли; КонецПроцедуры |
Для того, чтобы отключить контроль заполнения цены в заказах клиентов в конфигурации управление торговлей 11.3 или 11.4 (разрешить продажу по нулевой цене) Включаем возможность изменения общего модуля «ПродажиСервер» В процедуре «ПроверитьКорректностьЗаполненияДокументаПродажи» в разделе «// ЗАКАЗ КЛИЕНТА» находим строку «МассивПроверок.Добавить(«КонтрольЗаполненияЦенСУчетомОтменнных»);» И комментируем ее Все…
Читать далее
1 2 3 4 5 6 |
Выборка = ПользователиИнформационнойБазы.ПолучитьПользователей(); Для Каждого ЭлементМассива Из Выборка Цикл Если Объект.аксСтатусСогласованияПоставщика = ПредопределенноеЗначение("Перечисление.аксСтатусыСогласованияПоставшика.ПолныеПрава") Тогда Сообщить(ЭлементМассива); КонецЕсли; КонецЦикла; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
&НаКлиенте Процедура ОтчетДвиженияНоменклатуры(Команда) ФормаОтчета = ПолучитьФорму("Отчет.ПеремещенияНоменклатуры.Форма"); КомпоновщикНастроек = ФормаОтчета.Отчет.КомпоновщикНастроек; Настройки = КомпоновщикНастроек.Настройки; ЭлементНастройки = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Номенклатура")); ЭлементНастройки.Значение = Элементы.Товары.ТекущиеДанные.Номенклатура; Если ЗначениеЗаполнено(ЭлементНастройки.ИдентификаторПользовательскойНастройки) Тогда ПользовательскийПараметр = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ЭлементНастройки.ИдентификаторПользовательскойНастройки); Если ТипЗнч(ПользовательскийПараметр) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда ПользовательскийПараметр.Значение = ЭлементНастройки.Значение; КонецЕсли; КонецЕсли; ФормаОтчета.Открыть(); ФормаОтчета.СкомпоноватьРезультат(); КонецПроцедуры |
ХранилищеЗначения (хранилище значений 1С) – это объект в языке 1С, который позволяет хранить в базе данных прочие значения, например картинки и файлы, структуры и таблицы значений. Сначала мы создаем значение, например:
1 |
Знч = Новый ТаблицаЗначений(); |
Потом помещаем его в хранилище значений 1С:
1 |
Хранилище = Новый ХранилищеЗначения(Знч, Новый СжатиеДанных(9)); |
Сжатие данных в хранилище значений 1С с параметром «9» означает, что данные будут храниться в архивированном виде, с максимальной степенью сжатия. Чтобы сохранить такое значение в базу данных, нужно создать объект конфигурации (справочник, документ и т.п.), у которого добавить реквизит с типом ХранилищеЗначения.
1 2 3 |
СправочникСсылка = Справочники.Хранилище.СоздатьЭлемент(); СправочникСсылка.ХранилищеЗначения = Хранилище; СправочникСсылка.Записать(); |
Кроме хранения таких значений в базе данных, с помощью хранилища значений 1С, мы также можем сохранить такое значение в файл, например:
Читать далееДля открытия внешних ссылок на объекты 1С e1c в тонком клиенте нужно в реестре прописать связь протокола «e1c» и стартера 1С. Пример для 32-битной системы с установкой 1С в стандартный каталог. Для 64-битной использовать путь “Program Files x86 ”
Читать далееКак подсчитать итоги динамического списка (медленный вариант при большом объеме данных)
Читать далееНеобходимо отключить безопасный режим работы расширения: Конфигурация — Расширения конфигурации — Снимаем флаг «Безопасный режим, имя профиля безопасности» Также проверьте режим совместимости конфигурации, должен быть не ниже 8.3.9 или в принципе отключен
Читать далееОдин из вариантов:
1 2 3 4 5 6 7 8 9 10 11 |
Соответствие = Новый Соответствие; Для каждого ЭлементМассива Из МассивНовый Цикл Соответствие.Вставить(ЭлементМассива); КонецЦикла; МассивНовый.Очистить(); Для каждого КлючИЗначение Из Соответствие Цикл МассивНовый.Добавить(КлючИЗначение.Ключ); КонецЦикла; |
1 |
ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") |
Реализации механизма Drag and Drop (или проще говоря “Перетаскивания”) для ДереваЗначений расположенного на управляемой форме управляемого приложения 1С 8.3 Основная сложность реализации механизма перетаскивания заключается в том, что у строки ДереваЗначений платформа не позволяет просто изменить родителя, т.е. переподчинить строку. Единственный способ это сделать – создать новую строку вместе со всеми подчиненными строками, т.е. полностью скопировать всю ветку дерева вместе со всей иерархией и подчинить ее требуемой строке-родителю, после чего удалить исходную ветку. Данная задача распадается на две подзадачи: 1). Перед перетаскиванием необходимо проверить корректность данной операции, узел дерева нельзя переносить в узлы подчиненные ему самому, т.е. родительский узел нельзя переносить в дочерние, т.к. это приведет к “бесконечной рекурсии” и “падению” платформы. Это реализуется с помощью обработчика события ЭлементДеревоПроверкаПеретаскивания(…) 2). Если перетаскивание возможно, то при помощи обработчика ЭлементДеревоПеретаскивание(…)запускается рекурсивная функция, которая создает новую ветку дерева, подчиненную требуемому родителю, а исходную удаляет. Обращаю особое внимание на то, что в платформе 8.3 реализован механизм множественного выбора элементов, поэтому вышеуказанные операции необходимо произвести для всех выбранных пользователем элементов.
Читать далее
1 2 |
П = Новый Структура("Владелец", Объект.Контр); П = Новый Структура("Владелец", Объект.Контр); тФорма = ПолучитьФорму("Справочник.ДоговорыКонтрагентов.Форма.ФормаВыбора", Новый Структура("Отбор",П)); НовыйДоговор = тФорма.ОткрытьМодально(); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
ГруппаОтбор = Список.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаОтбор.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ; Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); Отбор.Родитель = ГруппаОтбор; Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Наименование"); Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; Отбор.Использование = Истина; Отбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; ЭлементОтбора.ПравоеЗначение = "000000001"; Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); Отбор.Родитель = ГруппаОтбор; Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Наименование"); Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; Отбор.Использование = Истина; Отбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; ЭлементОтбора.ПравоеЗначение = "000000002"; |