Приветствую Вас ГостьПятница, 29.03.2024, 13:53

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

Всего материалов в каталоге: 241
Показано материалов: 31-40
Страницы: « 1 2 3 4 5 6 ... 24 25 »

Бывает что в интерфейсе 1С не доступна команда "Изменить масштаб". Если разработчиком предусмотрен такой функционал, то проблема скорее всего в персональной настройке пользователя "Вариант масштаба форм". Если эта настройка = "Компактный", то доступ к изменению масштаба пропадает. Если изменить для другого пользователя эту настройку не удается, то можно просто скопировать настройку от другого пользователя, у которого она установлена так как надо.

Администрирование | Просмотров: 185 | Добавил: leshic | Дата: 09.02.2023 | Комментарии (0)

Чтобы при переносе вместе с данными документа переносились движения документа можно поступить двумя способами:

1. В событии "Перед выгрузкой" ПКО пишем код: 

Если Источник.Проведен Тогда

     РежимЗаписи = "Проведение";

КонецЕсли;

2. При выгрузке структуры базы ставим галки "Выгружать движения документов" и настраиваем наборы движений регистров в ПКС. Но тут есть один нюанс: движения в приемнике могут не появиться. Для того, чтобы они все-таки появились надо в событии конвертации "После выгрузки объекта" добавить код:

ТипОбъектаСтрокой = Строка(ТипЗнч(Объект));
Если Лев(ТипОбъектаСтрокой, 8) = "Документ" Тогда
    
   Для каждого СтрокаДвижения из Объект.Движения Цикл  
      СтрокаДвижения.Записывать = Истина;    
   КонецЦикла;
    
КонецЕсли;

 


При формировании варианта в виде таблицы иногда нужно убрать заголовки ресурсов. Делается это настройкой макета группировки.

Источник знаний: https://forum.infostart.ru/forum9/topic169988/

СКД | Просмотров: 474 | Добавил: leshic | Дата: 02.02.2023 | Комментарии (0)

Виртуальные таблицы регистра бухгалтерии

Регистры | Просмотров: 2556 | Добавил: leshic | Дата: 20.01.2023

Начиная с платформы 8.3.22 в запросах можно использовать новые функции и операторы:

УНИКАЛЬНЫЙИДЕНТИФИКАТОР(Ссылка) - Возвращает значение типа УникальныйИдентификатор. Если NULL, то возвращает NULL
Строка(String) – преобразует значение в примитивного типа в строку с учетом национальных установок.
Тригонометрические функции Sin, Cos, Tan, ASin, ACos, ATan (все вычисления производятся в радианах)
Exp - вычисляет результат возведения основания натурального логарифма (числа e) в степень
Log - вычисляет натуральный логарифм числа.
Log10 - вычисляет десятичный логарифм числа.
Pow -  вычисляет возведение в степень.
Sqrt – вычисляет квадратный корень.
Окр(Round) - округляет исходное число до нужной разрядности
Цел(Int) - вычисляет целую часть переданного числа, полностью отсекая дробную часть.
ДлинаСтроки(StringLength) – вычисляет длину строки.
СокрЛ(TrimL) – отбрасывает незначащие пробелы слева.
СокрП(TrimR) – отбрасывает незначащие пробелы справа.
СокрЛП(TrimAll) – отбрасывает незначащие пробелы слева и справа.
Лев(Left) – получает первые слева символы строки.
Прав(Right) – получает первые справа символы строки.
СтрНайти(StrFind) – находит первую позицию подстроки в строке (без учета регистра).
ВРег(Upper) – преобразует все символы строки в верхний регистр.
НРег(Lower) – преобразует все символы строки в нижний регистр.
СтрЗаменить(StrReplace) – заменяет все вхождения подстроки на другую подстроку (без учета регистра).
РазмерХранимыхДанных(StoredDataSize) – возвращает размер данных в байтах, которые занимают данные параметра.
АВТОНОМЕРЗАПИСИ() - возвращает номер записи в запросе. Работает только в временных таблицах.

Запросы | Просмотров: 752 | Добавил: leshic | Дата: 19.01.2023

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

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


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

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

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

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

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

 


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

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

Если в приемнике свойство справочник, то в ПКО, которое используется для конвертации этого свойства надо, в свойствах можно поставить галку  "Получить значения из входящих данных" и заполнить структуру "ИсходящиеДанные", которое будут использованы в качестве входящих данных при выполнении ПКО. В этом случае для переменной "Значение" лучше присвоить какое-нибудь значение, например 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) 
    + "" КАК ЧислоСтрокой
ИЗ
    втЧисло КАК втЧисло

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

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

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


Вход на сайт
Поиск
Категории раздела
Материалы по 1С [202]
Программирование под Android [16]
То, что касается программирования под Android
Заметки из книг [20]
Заметки из книг
Редакторы языка QPILE [3]
Текстовые редакторы в которых удобно создавать портфели на языке QPILE
Программы для MetaTrader4 [0]
Эксперты, индикаторы и т.д.
Статистика

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