1С: Еще раз о создании файла DOCX по шаблону без Word на сервере

Подобная статья уже была где-то на сайте, но вот еще одна, но решил актуализировать.

Итак, задача: при нажатии кнопки «В Word», сформировать на сервере файл по шаблону, сохранить его на клиент и открыть любым зарегистрированным приложением. Работать должно кроссплатформенно Linux/Windows

Создадим docx файл вида:

Решение:

{v8 Область.Тушка}

какойто текст, текст, текст. Бла-бла-бла..

{v8 АрбитражныйСудНаименование}

{/v8 Область.Тушка}

Загрузим его в макет как бинарные данные.

Далее код кнопки:

Код формирования файла на сервере:

Нарушена целостность структуры конфигурации 1С

Уже ранее была статья на эту тему, но в этом случае все советы не помогли. Помогли другие:

  1. Найти не битую cf этой версии конфигурации
  2. Зайти битую конфигурацию, снять её с поддержки
  3. Объединить битую конфигурацию с не битой cf. В время объединения 1С предложит снова поставить её на поддержку
  4. После этой манипуляции, битая становится не битой и позволяет далее нормально штатно обновлятся

1C : нахождение самого верхнего родителя иерархического справочника

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

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

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

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

Воплощение:

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

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

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

1 5 6 7 8 9 33