Приветствую Вас ГостьСуббота, 18.05.2024, 13:00

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

В разделе материалов: 206
Показано материалов: 41-50
Страницы: « 1 2 3 4 5 6 7 ... 20 21 »

Для передачи таблицы значений через HTTP и WEB сервисы надо преобразовать её в строку, либо заранее описать структуру передаваемых данных, что бывает утомительно.

Есть несколько вариантов:

1. Устаревший метод:  ТЗСтрокой = ЗначениеВСтрокуВнутр(ТЗ);  ТЗ = ЗначениеИзСтрокиВнутр(ТЗСтрокой);

2. Сериализовать в XML

3. Преобразовать в JSON

 

Взаимодействие с другими базами, приложениями и источниками данных | Просмотров: 852 | Добавил: leshic | Дата: 27.12.2022 | Комментарии (0)

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

Если это перечисление, то можно прописать формирование значения в событии "ПередВыгрузкой": Значение = "значение_перечисления_в_приемнике";

Если в приемнике свойство справочник, то в ПКО, которое используется для конвертации этого свойства надо, в свойствах можно поставить галку  "Получить значения из входящих данных" и заполнить структуру "ИсходящиеДанные", которое будут использованы в качестве входящих данных при выполнении ПКО. В этом случае для переменной "Значение" лучше присвоить какое-нибудь значение, например 1. Это надо для того, чтобы система поняла, что в этом свойстве что-то есть  и его надо перенести. В противном случае система может посчитать что значение пустое и перенос не требуется.

В качестве альтернативы можно переменную Значение задать как Структуру, поля которой соответствуют свойствам приемника. В этом случае мы получим как-бы объект переноса с нужными свойствами, но без УИД. Поиск по УИД надо отключит для данного ПКО, так как выйдет ошибка.

 


Если очень надо преобразовать число в строку в запросе, то можно воспользоваться таким извращенным методом:

ВЫБРАТЬ
    568093.567 КАК число
ПОМЕСТИТЬ втЧисло
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    //исходное число
    втЧисло.число КАК число,
    
    //разбор по символам для наглядности
    ВЫРАЗИТЬ(втЧисло.число / 100000 - 0.5 КАК ЧИСЛО(10, 0)) КАК Поле1,
    (ВЫРАЗИТЬ(втЧисло.число / 10000 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число / 100000 - 0.5 КАК ЧИСЛО(10, 0))) * 10 КАК Поле2,
    (ВЫРАЗИТЬ(втЧисло.число / 1000 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число / 10000 - 0.5 КАК ЧИСЛО(10, 0))) * 10 КАК Поле3,
    (ВЫРАЗИТЬ(втЧисло.число / 100 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число / 1000 - 0.5 КАК ЧИСЛО(10, 0))) * 10 КАК Поле4,
    (ВЫРАЗИТЬ(втЧисло.число / 10 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число / 100 - 0.5 КАК ЧИСЛО(10, 0))) * 10 КАК Поле5,
    (ВЫРАЗИТЬ(втЧисло.число / 1 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число / 10 - 0.5 КАК ЧИСЛО(10, 0))) * 10 КАК Поле6,
    "." КАК Поле7,
    (ВЫРАЗИТЬ(втЧисло.число * 10 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число * 1 - 0.5 КАК ЧИСЛО(10, 0))) * 10 КАК Поле8,
    (ВЫРАЗИТЬ(втЧисло.число * 100 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число * 10 - 0.5 КАК ЧИСЛО(10, 0))) * 10 КАК Поле9,
    (ВЫРАЗИТЬ(втЧисло.число * 1000 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число * 100 - 0.5 КАК ЧИСЛО(10, 0))) * 10 КАК Поле10,
    
    //преобразование в строку
    ПОДСТРОКА("0123456789", (ВЫРАЗИТЬ(втЧисло.число / 100000 - 0.5 КАК ЧИСЛО(10, 0))) + 1, 1) 
    + ПОДСТРОКА("0123456789", (ВЫРАЗИТЬ(втЧисло.число / 10000 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число / 100000 - 0.5 КАК ЧИСЛО(10, 0))) * 10 + 1, 1) 
    + ПОДСТРОКА("0123456789", (ВЫРАЗИТЬ(втЧисло.число / 1000 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число / 10000 - 0.5 КАК ЧИСЛО(10, 0))) * 10 + 1, 1) 
    + ПОДСТРОКА("0123456789", (ВЫРАЗИТЬ(втЧисло.число / 100 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число / 1000 - 0.5 КАК ЧИСЛО(10, 0))) * 10 + 1, 1) 
    + ПОДСТРОКА("0123456789", (ВЫРАЗИТЬ(втЧисло.число / 10 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число / 100 - 0.5 КАК ЧИСЛО(10, 0))) * 10 + 1, 1) 
    + ПОДСТРОКА("0123456789", (ВЫРАЗИТЬ(втЧисло.число / 1 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число / 10 - 0.5 КАК ЧИСЛО(10, 0))) * 10 + 1, 1) 
    + "." 
    + ПОДСТРОКА("0123456789", (ВЫРАЗИТЬ(втЧисло.число * 10 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число * 1 - 0.5 КАК ЧИСЛО(10, 0))) * 10 + 1, 1) 
    + ПОДСТРОКА("0123456789", (ВЫРАЗИТЬ(втЧисло.число * 100 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число * 10 - 0.5 КАК ЧИСЛО(10, 0))) * 10 + 1, 1) 
    + ПОДСТРОКА("0123456789", (ВЫРАЗИТЬ(втЧисло.число * 1000 - 0.5 КАК ЧИСЛО(10, 0))) - (ВЫРАЗИТЬ(втЧисло.число * 100 - 0.5 КАК ЧИСЛО(10, 0))) * 10 + 1, 1) 
    + "" КАК ЧислоСтрокой
ИЗ
    втЧисло КАК втЧисло

Запросы | Просмотров: 366 | Добавил: leshic | Дата: 06.12.2022 | Комментарии (0)

У элемента динамического списка есть свойство "ИзменятьСоставСтрок". Если поставить его равным Ложь, то в форме нельзя создать ни элемент ни группу. Внешне это похоже на то, что у пользователя нет прав на создание, но на самом деле ограничение устанавливается свойством

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

Источник: https://infostart.ru/1c/articles/980323/

Предложенная автором форма запроса по его словам сокращает время выполнения запроса на 25 процентов

Запросы | Просмотров: 249 | Добавил: leshic | Дата: 29.11.2022 | Комментарии (0)

Когда выгружается Ссылка и если не стоит в ПКО свойство "Не Запоминать Выгруженные Объекты", то выгруженный объект загружается в структуру выгруженных объектов (тип Соответствие). В этом случае, если встречается ссылка на данный объект, то он не выгружается повторно, а подставляется значение из этой структуры. В файле выгрузки это выглядит так: <Ссылка Нпп="3"><Свойство Имя="Наименование" Тип="Строка"> <Значение>Пересечения</Значение>...</Ссылка>. Здесь Нпп - это ключ в соответствии ЗагруженныеОбъекты, из которого определяется ссылка на ранее созданный объект при загрузке, без дополнительного поиска.

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

  • КлючВыгружаемыхДанных  = уникальному значению для данного объекта
  • ЗапоминатьВыгруженные = Истина

 


Прогресс-бар в управляемых формах можно вывести с помощью метода Состояние()

Пример использования:

Состояние(СтрокаДоговор, КоличествоОбработанных/КоличествоВсего*100,"формирование печатной формы",БиблиотекаКартинок.ВывестиСписок);

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

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

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

Информация о формате и особенностях применения маски

Объекты конфигурации и типы данных | Просмотров: 293 | Добавил: leshic | Дата: 15.09.2022 | Комментарии (0)

Блокировки при записи регистров и других объектов

Программирование | Просмотров: 512 | Добавил: leshic | Дата: 12.09.2022 | Комментарии (0)


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

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