Приветствую Вас ГостьСуббота, 04.05.2024, 11:52

Каталог статей

В категории материалов: 40
Показано материалов: 31-40
Страницы: « 1 2 3 4


Можно почитать здесь https://forum.infostart.ru/forum9/topic114111/

У меня не получилось ни удаление настроек из ХранилищеСистемныхНастроек, ни отключение свойства "РастягиватьПоВертикали" у элементов.

Пришлось смириться с одинаковым размером самой формы, и менять только видимость элементов. Чтобы форма не разъезжалась пришлось жестко задать размеры формы.

Формы | Просмотров: 306 | Добавил: leshic | Дата: 11.03.2020 | Комментарии (0)

Для того, чтобы программно в таблице выделить нужную строку надо &НаКлиенте у элемента формы Таблица установить реквизит ТекущаяСтрока. Это числовой реквизит, но он не равен номеру строки в таблице. Чтобы его получить, надо использовать метод ПолучитьИдентификатор() для нужной строки.

Пример:

ТД = Элементы.ТаблицаИсполнителей.ТекущиеДанные;
ТекущийИсполнитель = ТД.Исполнитель;

// Обновляем таблицу

МассивСтрок = ТаблицаИсполнителей.НайтиСтроки(Новый Структура("Исполнитель", ТекущийИСполнитель));
Если МассивСтрок.Количество() > 0 Тогда
    Элементы.ТаблицаИсполнителей.ТекущаяСтрока = МассивСтрок[0].ПолучитьИДентификатор();
КонецЕсли;
 

Формы | Просмотров: 631 | Добавил: leshic | Дата: 30.01.2020 | Комментарии (0)

Для обновления динамического списка после добавления объекта, который должен попасть в этот список, можно выполнить процедуру ОповеститьОбИзменении(<Ссылка>) или ОповеститьОбИзменении(<ИзмененныйТип>). В первом случае создается оповещение для динамического списка для обновления по объекту, во втором по типу объектов

Например ОповеститьОбИзменении(Тип("ДокументСсылка.ИнвентаризацияРасчетовСАбонентами"));

Формы | Просмотров: 1061 | Добавил: leshic | Дата: 04.12.2019 | Комментарии (0)

Принцип такой:

Формируем файл на сервере. Имя генерируем  ПолучитьИмяВременногоФайла();. Потом передаем временный файл в хранилище и удаляем его на сервере.

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

 

Формы | Просмотров: 1074 | Добавил: leshic | Дата: 10.07.2019 | Комментарии (0)

Задача делится на 2 подзадачи:

1) сначала открываем диалог выбора файла немодально и присваиваем реквизиту формы ФайлДанных значение выбранного файла. Для строкового реквизита ФайлДанных устанавливаем свойство "Кнопка выбора" = Да, и пишем обработчик события "Начало выбора".

2) передаем файл на сервер после чего обрабатываем его. (можно почитать здесь: https://its.1c.ru/db/v8std#content:542:hdoc)

Для передачи используем процедуру НачатьПомещениеФайла(ОписаниеОповещения,   ,  ФайлДанных,  Ложь, УникальныйИдентификатор);. 

Здесь УникальныйИдентификатор - это УИД формы (можно было написать ЭтаФорма.УникальныйИдентификатор)

На входе процедуры в описании оповещения вторым параметром идет Адрес. Его можно задать принудительно при вызове процедуры НачатьПомещениеФайла. Если он не задан, то создается новый файл и в адрес будет занесен путь файла во временном хранилище. У этой процедуры есть параметр "Интерактивно". Если он равен Истина, то можно не писать обработку выбора файла. Система сама вызовет такой диалог и передаст файл во временное хранилище.

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

Формы | Просмотров: 1193 | Добавил: leshic | Дата: 26.06.2019 | Комментарии (0)

Источник https://infostart.ru/public/181336/

В конфигураторе условное оформление существует на уровне самой формы (как в формах объекта, так и списка):

В формах списка условное оформление существует и на уровне самого динамического списка:

Программная работа с условным оформлением (УО).

Начнем с того, что работа с УО доступна только:

&НаСервере

Для Добавления элемента УО в списке нужно обратится к списку и добавить элемент УО:

ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить();

Для УО формы добавление происходит через прикладной объект УсловноеОформление:

ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();

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

// Создаем условие отбора
ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля); // имя поля
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; // либо задаем свой
//**** Значение для отбора
ЭлементОтбора.ПравоеЗначение = ЗначениеДляОтбора;
// следует заметить что правым значением может выступать ПолеКомпоновкиДанных формы или списка
ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля);
//****
ЭлементОтбора.Использование = Истина;

Значение свойства УО:

// Установка значения элемента УО
// Возможно обращение как по индексу так и установка через метод
//1.
Элемент = ЭлементОформления.Оформление.Элементы[0];
Элемент.Значение = Цвет;
//2.
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СеребристоСерый);

Элемент.Использование = Истина;

Добавим поля оформления, если ничего не добавлять, то система применит оформления ко всей строке:

// Создаем поля оформления
ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(ПолеДляОформления);
ПолеОформления.Использование = Истина;

В качестве ИменПолей нужно передавать строковое представление ИМЕНИ реквизита.

Формы | Просмотров: 622 | Добавил: leshic | Дата: 29.04.2019 | Комментарии (0)

Для вставки из буфера на клиенте нужно использовать ком-объект "htmlfile".

clipboard = Новый COMОбъект("htmlfile");
СодержимоеБуфера = clipboard.ParentWindow.ClipboardData.GetData("Text");

Если копируем из Excel, то в буфере будет многострочный текст с разделителем Tab. Для обработки содержимого буфера можно использовать цикл:

Для н = 1 По СтрЧислоСтрок(СодержимоеБуфера) Цикл
        СтрокаБуфера = СтрПолучитьСтроку(СодержимоеБуфера, н);
        СтрокаБуфера = СтрЗаменить(СтрокаБуфера,Символы.Таб, Символы.ПС);

        ПервоеПолеСтроки = СокрЛП(СтрПолучитьСтроку(СтрокаБуфера, 1));
        ...
КонецЦикла;

 

Формы | Просмотров: 334 | Добавил: leshic | Дата: 18.04.2019 | Комментарии (0)

Для того, чтобы получить предопределенное значение на клиенте используется функция ПредопределенноеЗначение(<ИмяПредопределенногоЗначения>)

где <ИмяПредопределенногоЗначения> 

содержит полный путь до предопределенного значения, включая имя самого значения. Например, "ПланСчетов.Основной.Счет41".
Синтаксис описания предопределенного значения совпадает с синтаксисом оператора ЗНАЧЕНИЕ языка запросов.

Например:

ЮрФизЛицо = ПредопределенноеЗначение("Перечисление.ЮридическоеФизическоеЛицо.ЮридическоеЛицо");

Объект.Статус = ПредопределенноеЗначение("Перечисление.СтатусыЗаказовКлиентов.КОбеспечению");

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

Формы | Просмотров: 584 | Добавил: leshic | Дата: 10.04.2019 | Комментарии (0)

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

1. Ввод значений без предварительного отбора

Справку по методам ввода значений можно найти в разделе "Функции для вызова диалога ввода данных".

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

В описании оповещения указывается экспортная процедура, которая должна иметь 2 параметра: РезультатЗакрытия, ДопПараметры.

РезультатЗакрытия может быть массивом при множественном выборе.

Для модальных окон самый простой способ через ВвестиЗначение()

Для не модальных окон его аналог ПоказатьВводЗначения()

2. Через параметры формы / отбор (Структура). При использовании этого способа можно задать только соответствие типа "равно" 

3. Через отбор настройки компоновки данных. При этом способе условия могут принимать значение "в списке", "не равно" и т.д.

Формы | Просмотров: 5812 | Добавил: leshic | Дата: 03.04.2019

Используем свойство управляемой формы Модифицированность или универсальную функцию

Формы | Просмотров: 2853 | Добавил: leshic | Дата: 01.04.2019 | Комментарии (0)


Вход на сайт
Поиск
Категории раздела
СКД [48]
Регистры [7]
Формы [40]
Администрирование [34]
Запросы [10]
Объекты конфигурации и типы данных [20]
Взаимодействие с другими базами, приложениями и источниками данных [16]
Программирование [29]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0