1С СКД: маленькие хитрости

  1. Группировка колонок в шапке отчета. Например, если необходимо получить шапку вида:

То в СКД во вкладке Ресурсы, нужно добавить поля для вывода в колонки:

Затем в настройках отчета эти поля добавить к колонке «Период»

2. Объединение однотипных колонок единой шапкой, вида:

Для этого в наборе данных, в путь необходимо добавить общий разделитель. Например было: КоличествоОбращений, стало Количество.Обращений. Заголовок необходимо переименовать

3. Добавление в СКД кнопки выбора периода

Для этого во вкладке параметры необходимо добавить реквизит «Период» с типом «Стандартный период», а выражения дат начала и конца стандартные выражения «&Период.ДатаОкончания» и «&Период.ДатаНачала». Так-же необходимо ставить галочки «Ограничение», что бы на форму не выводились лишние поля.

Доступ к другой БД 1С через V83.COMConnector

Задача: перенести содержимое регистра из одной БД в другую.

Решение: одним из способов (помимо обработки ВыгрузкаЗагрузкаДанныхXML.epf) является прямая загрузка через COM подключение. Вышло примерно так:

1С: проверка пароля пользователя

Задача: проверить соответствие имени пользователю, введённый им пароль. Пользователи хранятся в стандартном справочнике «Пользователи»

Решение: в 1С нет штатных методов проверки пароля, т.к. пароль как таковой не хранится, а хранится его хэш. Следовательно для того чтобы проверить введенный пароль, необходимо сравнить «старый» хэш с хэшэм введеного пароля. Но есть нюанс — никто не знает по какому алгоритму генерируется хэш при сохранении пароля. Следовательно подходит лишь один алгоритм:

  1. Получаем хэш текущего пароля
  2. Начинаем транзакцию
  3. Сохраняем введеный пароль пароль у пользователя
  4. Получаем хэш введенного пароля
  5. Отменяем транзакцию (тем самым отменяем изменения у пользователя)
  6. Сравниваем первый хэш со вторым. Если равны — значит пароль соответствует.

Воплощение:

1С: Узнать позицию в цикле

Задача: узнать текущую позицию для цикла вида

Решение: учить матчасть (с)

1С: Скачать файл через http сервис

Задача: в веб интерфейс сайта вывести кнопку получения файла со стороны 1С

Решение:

На стороне 1с оформим сервис по примеру:

На стороне сайта, можно оформить в виде:

1 5 6 7 8 9 40