Установка сервера хранилища конфигураций «1С:Предприятия» 8.3


Logo_1c_8Для групповой разработки конфигурации в системе «1С:Предприятия» 8.3 используется хранилище конфигурации.  Доступ разработчиков к хранилищу конфигурации может осуществляться по локальной сети (файлы базы данных располагаются на общем сетевом ресурсе), по протоколу tcp илиhttp. Для последних двух вариантов необходима установка сервера хранилища конфигураций. Сервер хранилища конфигураций в свою очередь представляет собой сетевую службу, по умолчанию «слушающую» порт 1542 и обеспечивающую взаимодействие клиентских приложений (конфигуратора) с базой данных хранилища конфигурации. Одна служба может обслуживать несколько хранилищ конфигураций. Об установке сервера хранилища конфигураций системы «1С:Предприятия» 8.3 (справедливо и для версии 8.2) в ОС семейства Windows (в текущем примере — Microsoft Windows Server 2012 R2) и пойдет речь в данной статье.

0. Оглавление

  1. Настройка каталога баз данных хранилища конфигураций
  2. Установка файлов сервера хранилища конфигураций
  3. Регистрация и запуск службы сервера хранилища конфигураций
  4. Добавление правила в брандмауэр Windows
  5. Создание нового хранилища конфигурации
  6. Публикация хранилища конфигурации на веб-сервере IIS

1. Настройка каталога баз данных хранилища конфигураций

Сервер хранилища конфигураций следует устанавливать на том же компьютере, где будут располагаться файлы баз данных хранилища. Поэтому прежде всего определим центральный каталог сервера, в котором будут храниться файлы всех хранилищ, которых будет обслуживать данный сервер. Пусть в рамках данной статьи это будет каталог C:\1C_BASE\repository\. Также следует определить учетную запись Windows, из под которой будет происходить запуск соответствующей службы. Можно создать нового пользователя, или использовать существующую учетную запись Windows. В данном примере будем использовать локального пользователя USR1CV8 с паролем UsrPass8. Необходимо установить полные права для данного пользователя на центральный каталог сервера хранилища конфигураций.
ustanovka-servera-xranilishha-konfiguracii-1s_01

2. Установка файлов сервера хранилища конфигураций

На момент написания статьи сервер хранилища конфигураций существовал только как 32-разрядное приложение. Поэтому для установки файлов сервера необходим 32-разрядный дистрибутив системы «1С:Предприятия» 8.3 для Windows. Запускаем файл 1CEnterprise 8.msiиз дистрибутива поставки 1С. На странице выбора компонент выбираем компоненту «Сервер хранилища конфигураций 1С:Предприятия» (1C:Enterprise configuration repository server), а также запоминаем путь установки компоненты.
ustanovka-servera-xranilishha-konfiguracii-1s_02

3. Регистрация и запуск службы сервера хранилища конфигураций

Программа установки лишь копирует файлы сервера хранилища конфигураций в указанный каталог. Регистрацию соответствующей службы необходимо произвести вручную выполнив команду вида:
crserver.exe -instsrvc | -rmsrvc -usr <пользователь> -pwd <пароль>
      -start | -stop
      -port <порт> -d <каталог>
Параметры запуска сервера хранилища конфигураций crserver.exe сходны с параметрами запуска агента сервера «1С:Предприятия»:
Параметры запуска сервера хранилища конфигураций «1С:Предприятия»
ПараметрОписание
  -port <порт>Рабочий порт сервера хранилища. По умолчанию используется порт 1542.
  -d <каталог>Корневой каталог для хранилищ конфигурации. По умолчанию используется каталог %APPDATA%\1C\1Cv8\.
  -instsrvcРегистрация сервера хранилища как сервиса.
  -rmsrvcУдаление регистрации сервера хранилища как сервиса.
  -usr <имя>
-pwd <пароль>
Имя пользователя, от имени которого будет зарегистрирован сервис. Этот пользователь должен обладать правом Вход в систему как сервис (Log on as a service). Кроме этого, он должен обладать правами на чтение каталога исполняемых файлов соответствующей версии системы «1С:Предприятие» и полными правами на корневой каталог хранилища конфигурации (каталог%APPDATA%\1C\1Cv8\ или тот каталог, который указан в параметре -d) и пароль для данного пользователя.
  -startЗапуск сервиса сервера хранилища.
  -stopОстановка сервиса сервера хранилища.
Зарегистрируем новый сервис с помощью программы Windows PowerShell, запустить которую можно выполнив команду powershell (для этого необходимо нажать комбинацию клавиш Win + R, в появившемся окне «Выполнить» (Run) ввести имя команды в поле «Открыть» (Open) и нажать «ОК») или кликнув по соответствующему ярлыку в панели задач.
zapusk-neskolkix-serverov-1spredpriyatiya-raznyx-versij_04
В открывшейся консоли Windows PowerShell, для удобства ввода дальнейших команд перейдем в каталог bin каталога с установленными файлами «1С:Предприятия» выполнив команду
cd "C:\Program Files (x86)\1cv8\8.3.5.1088\bin"
Затем, в рамках данного примера, выполним команду
.\crserver.exe -instsrvc -d C:\1C_BASE\repository -usr .\USR1CV8 -pwd UsrPass8
и запустим службу выполнив
.\crserver.exe -start
ustanovka-servera-xranilishha-konfiguracii-1s_03
Перейдем в оснастку службы (запустить которую можно выполнив команду services.msc) и убедимся что служба с именем 1C:Enterprise 8 Configuration Repository Serverзарегистрирована и запущена.
ustanovka-servera-xranilishha-konfiguracii-1s_04

4. Добавление правила в брандмауэр Windows

Для того чтобы сервер хранилища конфигураций был доступен другим компьютерам в сети, необходимо добавить используемый сервером порт 1542 в исключения Брандмауэра Windows (Windows Firewall). Подробно об этом читайте в статье «Добавление правила в Брандмауэр Windows Server 2012 R2».

5. Создание нового хранилища конфигурации

Как я уже говорил ранее, один сервер может обслуживать несколько хранилищ конфигурации. Файлы баз данных каждого из хранилищ должны располагаться в отдельном каталоге центрального каталога сервера хранилища конфигураций. Таким образом для создания нового хранилища, создадим в каталоге C:\1C_BASE\repository\ папку Accounting в которой будет располагаться файлы нового хранилища конфигурации.
ustanovka-servera-xranilishha-konfiguracii-1s_05
Тогда для создания и подключения к данному хранилищу необходимо будет использовать строку tcp://WIN2012/accounting, где WIN2012 — сетевое имя компьютера, на котором установлена служба, либо строку tcp://192.168.0.10/accounting, где 192.168.0.10, соответственно, IP-адрес данного компьютера. Подробно про создание нового хранилища можно прочитать в статье «Создание хранилища конфигурации «1С:Предприятия» 8.3».
К созданному таким образом хранилищу также возможно будет подключаться и в обход сервера, например по пути C:\1C_BASE\repository\Accounting на текущем компьютере или по пути \\WIN2012\repository\Accounting если настроить общий доступ к каталогу C:\1C_BASE\repository на данном сервере.

6. Публикация хранилища конфигурации на веб-сервере IIS

Для обращения к хранилищу конфигураций по протоколу http необходимо выполнить публикацию хранилища конфигурации на веб-сервере. Об этом читайте в статье «Публикация хранилища конфигурации на веб-сервере IIS».

Книги, которые должен прочитать Java программист: от новичка до профессионала

Книги, которые должен прочитать Java программист: от новичка до профессионала


[Примечание переводчика: термины градации «профессионализма» оставлены англоязычные в связи с трудностью их адекватного перевода на русский и несовпадением с привычными Junior-Middle-Senior-Lead. Перевод достаточно вольный — если знаний языка хватает, то лучше читать оригинал, как и советует автор. Оба языка для меня не родные, так что про ошибки сообщайте в личку — исправим. Здесь и далее в квадратных скобках примечания переводчика]

Я заметил, что в последние месяцы я рекомендую одни и те же книги как новичкам, так и опытным разработчикам. Поэтому я решил составить список этих книг. Они составили мне неплохую компанию в процессе моего роста от новичка до сегодняшнего уровня (какой-бы он не был :) ) Составить список мне помогали друзья и коллеги. Особая благодарнастьFrank AppelRüdiger HerrmannBenjamin Muskalla и Ralf Sternberg

Порядок книг в списке отражает мой персональный выбор. Меняйте его, как вам угодно :) Одна важная вещь — если вы покупаете книгу из этого списка, то всегда выбирайте англоязычный вариант. Даже если есть перевод на ваш родной язык, оригинальная версия почти всегда лучший выбор.

Beginner


Если вы только начали знакомство с Java, то для начала нужно познакомиться с синтаксисом языка. Существует большое количество книг для этого. Практически всегда содержание этих книг очень похоже, но вот стиль написания отличается кардинально.
Head First JavaJava. A Beginner s Guide 5th EditionTDD

Есть две книги, которые стоит порекомендовать. Head First Java нестандартная, но легкочитаемая. Как и вся серия, вы можете любить её или нет (я обожаю их). Java, A Beginner's Guide более традиционная книга, которая отлично объясняет Java. После того, как вы сполна ознакомились с синтаксисом и базовыми конструкциями, я рекомендую прочитать еще одну книгу перед тем, как переходить к следующему этапу (это справедливо и для других языков программирования).Test Driven Development (автор Kent Beck) описывает технику программирования, который мы используем в EclipseSource. ИМХО TDD должна входить в курс обучения каждого программиста.

Journeyman


Journeyman — программист, которые уже знает язык, сделал несколько небольших проектов, но которому еще предстоит развиться до профессионала. Конечно, я уверен, что вы не согласны с этим утверждением (я не был согласен, например). Но после пяти лет в этом статусе вы согласитесь :)

Effective JavaPragmatic ProgrammerDesign Patterns


Простых знаний языка недостаточно — вам необходимо углублять их. Для этих целей практически любой профессионал Java порекомендует книгу Effective Java, автор Joshua Bloch. Другая книга — The Pragmatic Programmer — похожа на сборник заметок. Она подробна раскрывает те темы, с которыми вы столкнетесь как программист, поэтому ее также обязательно надо прочитать. Но знание языка не научит вас хорошо писать программы. С моей точки зрения одна из долгосрочных задач программиста — научиться правильно создавать архитектуру приложений. Для этих целей Design Patterns Book, написаная Бандой Четырех [нет, это не те, которые левые в КПК, а распространённое название группы авторов (Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес)] — хорошее начало.
RefactoringClean CodeOSGI in ActionThe Clean Coder

Согласно книге TDD (автор Beck) золотое правило — это: красный, зеленый, рефактор. Martin Fowler объясняет последний пункт в своей книге Refactoring Book. После того, как все тесты прошли успешно и вы основательно переработали код, необходимо прочитать книгу Clean Code (Robert C. Martin) (минимум два раза). После первого раза я более чем уверен, что вы начнете думать про свой код по-другому [и вряд ли в лучшую сторону]. OSGi in Action смотриться странно в этом списке. Я добавил ее сюда, потому что я думаю, что модульность один из самых важных принципов дизайна приложений. Java-программисту просто необходимо знать OSGI. Помните, я упомянул, что вы не будете соглашаться со мной, что вы не станете Professional, пока не побудете в статусе Journeyman по крайней мере несколько лет? Я уверен, что после прочтения The Clean Coder я вас убедил. Robert C. Martin пишет про себя и свой путь развития от новичка до профессионала. Это действительно самое настоящее откровение!

Professional


Я использую слово «Professional», потому что в этом контексте его используют многие авторы. Но я не люблю использовать это слово для описания уровня программиста. «Professional» звучит так, как будто вы уже достигли вершины. Но это просто-напросто неправда. Программист никогда не может закончить свое обучение [впрочем, это справедливо для 83% профессий]. Книги, которые я поместил в эту категорию — просто более продвинутые. Они углубляются в детали или тренируют вас на роль лидера команды.
Java ConcurrencyWorking Eggectively with Legacy CodeProductive Projects TeamsPatterns of Enterprise Application Architecture

Совсем немного можно сделать в Java, не используя многопоточность. Пока вы в статусе Journeyman, скорее всего у вас в команде будет человек [ну-да, ну-да], который сможет вам помочь с этой темой. Но рано или поздно настанет момент, когда вам нужно будет научиться многопоточности самому. Brian Goetz проделал огромную работу в своей книге Java Concurrency in Practice. Быть профессионалом — значит брать ответственность. А так как вы программист — это еще значить нести ответственность за устаревший код. Micheal Feathers описал эту скучную тему немного веселее в книгеWoking Effectively with Legacy Code. Также вы должны уметь брать ответственность за свою команду. Tom DeMarco и Timothy Lister постарались раскрыть эту тему в Peopleware, где описали, как работают эфективные команды и важные характеристики таких команд. Просто объяснить трудную тему — очень тяжелая задача. Немноге авторы способны на это. Martin Fowler проделал огромную работу в книге Patterns of Enterprise Application Architecture, где подробно описал процесс проектирования ПО.

Не обнаружен ключ защиты программы. 1С Предприятие 8.

Что делать если 1С не запускается и выдает такую ошибку:

Не обнаружен ключ защиты программы. 1С Предприятие 8.
Эта ошибка может появляться по нескольким причинам:
Не найден ключ. 1С не смогла найти ключ из-за его отсутствия или Вы используете ключ от другого продукта. При использовании сетевого ключа нужно проверить работоспособность сети, запущен ли менеджер лицензий на компьютере с ключом, установлен ли именно сетевой ключ, открыт ли 457 порт.
Ключ не содержит лицензии.При установке двух ключей 1С будет использовать только один из них. Если на этом ключе нет нужной лицензии 1С выдаст ошибку. При использовании сетевого ключа, в случае работы в сети двух менеджеров лицензий с одинаковыми именами и ключами одной серии 1С может обратится к ключу не содержащему нужную лицензию, что вызовет ошибку.
Обнаружена служба терминалов. Нельзя использовать локальный ключ на сервере терминалов. Сетевой ключ так-же следует устанавливать на отдельный компьютер.
Превышено число лицензий. Если число пользователей больше количества лицензий в ключе, то возникнет ошибка. Так-же ошибка может возникнуть если используется два менеджера лицензий с одинаковыми именами и на одном из них кончились лицензии.

Как правильно устанавливать ключи

На один компьютер следует устанавливать только один ключ одной серии. Не следует устанавливать на одном компьютере локальный и сетевой ключ. Найдя локальный ключ от другого продукта 1С не будет искать сетевой ключ, а выдаст ошибку.
Не следует устанавливать ключ на сервер терминалов. 1С установленная на сервер терминалов, может работать только с сетевым ключом, установленным на другой компьютер.
При использовании двух и более ключей необходимо задать имя менеджера лицензий на каждом из компьютеров в файлеnhsrv.ini следующим образом:
[NHS_SERVER]
NHS_SERVERNAMES = SERVER1
Имя сервера должно состоять из латинских букв и цифр. Длинна не более 7 символов.
На клиентских машинах следует отредактировать файл nethasp.ini, задав имена менеджеров лицензий и их ip адреса:
[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.0.10, 192.168.0.11
NH_SERVER_NAME =server1, server2
При использовании сервера терминалов так-же рекомендуется явно указать имя сервера лицензий и прописать его вnethasp.ini на сервере терминалов.

Какие бывают ключи

Тип ключа легко определить по цвету.
Синий – локальный однопользовательский. Поставляется с продуктами лицензируемыми на одно рабочее место. Это самый простой ключ. Он не имеет встроенной памяти и не содержит никаких настроек. Маркировка ключа H4 M1 ORGL8.
Красный – сетевой клиентский ключ. Этот ключ имеет память и содержит в себе лицензии на 5, 10, 20, 50 или 100 пользователей. Маркировка ключа NETXX ORGL8, где ХX - количество лицензий (например NET5 ORGL8). Существуют также ключи на 300 и 500 пользователей которые имеют маркировку NET250+ ORG8A и NET250+ ORG8B. Этот ключ можно купить отдельно, в качестве дополнительных клиентских лицензий.
Фиолетовый - ключи для 32-битного сервера 1С Предприятие. Маркировка ключа ENSR8.
Зеленый – ключ для 64-битного сервера 1С Предприятие. Им поддерживается и 32-битная версия сервера 1С Предприятия. Имея лицензию на 64-битный сервер можно, использовать 32-битную версию, но не наоборот Маркировка ключа EN8SA.

1С Автообмен

В этой статье я опишу пару вариантов как настроить автоматический обмен, и как это можно реализовать в зависимости от количества розничных точек .
Чего я только не перепробовал, а начинал я с «Обмена через файловый ресурс», на тот момент у меня было на вооружение 10 розничных точек находившихся в разных частях города. Из 10 точек в 8 был интернет, и там я установил чудесную программу «Dropbox», ее устанавливаем на сервер и на компьютер клиента, тогда мне очень помог планировщик 1с.
Что для этого нужно? А нужно нам зайти в сервис→ прочий обмен данными→ выполнить обмен данными → затем выбрать настройку обмена

рис.1
Затем нужно перейти в вкладку "Интерактивный обмен", поставить галочку "Выполнить обмен данными под полными правами"



рис.2
Затем  переходим в вкладку Автоматический обмен



рис.3
Здесь выбираем свою настройку или добавляем



рис.4
десь ставим галочку  «Использовать расписание для выполнения обмена»
Чтобы не потерялся каждый день, в появившимся окне "Расписание",  ставим 1Повторять каждый день"



рис.5
Переходим на закладку "Дневной",  там я поставил 7200 секунд. Это означает, что обмен будет запускаться каждый день, каждые 2 часа. После этого нажимаем "Ок".



рис.6
Следуем дальше.  Переходим на закладку "Обмен по событиям"



рис.7
Выбираем пользователя, который создан для "Автообмена", и проставляем галки "При запуске, при завершении"(если бы мы использовали обмен через каталог, а не почтой, тогда можно было бы установить галку "при появлении файла" и выбрать название файла, в этом случае обмен будет происходить тогда, когда в каталоге появится файл с одноименным названием).
Ну вот  и разобрали мы первый вариант

 

Вариант номер 2

Для варианта номер 2 нам уже не обойтись стандартным планировщиком 1с,  прибегнем за помощью к нашей операционке.
Потому что, при реализации автообмена для 30 и выше точек,  при выполнение задачи  стандартным планировщиком 1с, он повисает(((
1)Для начала  надо убрать галочку использовать расписание для выполнения обмена



рис.8
Затем,  нам понадобиться  программа, при помощи которой, мы с легкостью сможем создать службу.  Называется она так  
"anyserv".  Хочу заметить, что программа открывается под правами Администратора, иначе могут возникнуть сложности на  Win7, windows server. При открытие она выглядит так:



рис.9
В первом поле вводим полный путь к исполнительному файлу приложения, которое будет запускаться как служба. В графе "Имя службы" указываем как будет называться наша служба. В "Описание службы" — любое понятное вам описание нового сервиса. Далее можно проставить нужные галочки:
Взаимодействие с рабочим столом — отметьте, если приложение имеет иконку в системном лотке;
Автозапуск службы — отметьте, если хотите, чтобы сервис запускался автоматически
Запустить сразу после создания — отметьте, если хотите, чтобы служба запустилась сразу после ее создания;
Но для нашей ситуации галочки ставить не надо!
Как пример работы утилиты, попробуем запустить в виде системной службы 1с



рис.10
После заполнения всех необходимых полей, нажимаем кнопку "Создать



рис.11
Все, новая служба создана и готова к работе. Можно посмотреть на результат своих действий, воспользовавшись кнопкой "Службы", которая открывает групповую оснастку.



рис.12
Для реализации авто-обмена, я создавал службы по названию точек.  Пойдем дальше, а дальше нам надо прописать в реестре путь к нашей базе с нашим пользователем и паролем. Для этого  заходим в пуск и в строке поиска прописываем команду “REGEDIT” 



рис.13
Дальше нам нужно будет проследовать HKEY_LOCAL_MACHINE →SYSTEM→CurrentControlSet→services→ здесь мы ищем название своей службы →Parameters→ Application



рис.14
В появившимся окне вставляем путь к вашей базе и  передаем параметры, точнее  название пользователя и пароль. Вот варианты  для файловой  базы:
Файловый→"C:\Program Files\1cv82\8.2.17.153\bin\1cv8.exe" ENTERPRISE /F"путь к файловой базе\" /N"пользователь" /P"пароль"
SQL→  "C:\Program Files (x86)\1cv82\8.2.17.153\bin\1cv8.exe" ENTERPRISE /s"имя сервера\имя базы"\" /N"пользователь" /P"пароль"

После того, как мы добавили путь в реестр, нам нужно создать батник,  который будет запускаться в планировщике операционной системы.  Я советую  всего лишь  создать один батник, и в нем уже прописать  очень простые команды в блокноте, и сохраняются в расширение . bat
net start имя службы
timeout 240
net stop имя службы
exit
где net start *это запуск службы
 timeout 240 * таймаут (Можете увеличить или уменьшить количество секунд, в зависимости от надобности, но мне вполне хватает)
net stop * остановить службу
exit * выход


Так как у меня розничных точек свыше 30 прикладываю наглядный пример и прикрепляю батник



рис.15
После этого, заходим в пуск,  и в окне поиска прописываем команду: cmd для вызова командной строки. В командной строке, прописываем такую команду:  Schtasks /Create /tn "Запуск cmd" /tr cmd.exe /sc daily /st 08:00 /ri 60 /du 24:00  и нажимаем enter
Обозначение:
schtasks /create /tn -  имя задания, /tr -  выполнение задания, /sc ежеминутно [/mo {1 — 1439}] ,[/st -  время запуска, /sd -  дата запуска, /ed -  дата окончания, /s компьютер, /u - домен, пользователь /p -  пароль, /ru {[домен\]пользователь | "System"} [/rp пароль]]
Затем заходим в  планировщик операционной системы: пуск →все программы → стандартные→ служебные→ планировщик заданий 
Нам нужно найти наше задание. Открываем  его.

Показываю на примере:


рис.16
 Ставим галочку "Выполнять с наивысшими  правами", затем переходим на вкладку
Действие→Нажимаем кнопку создать →обзор и указываем путь на наш батник, затем жмем "ок", должно получится вот так: 



рис.17
Жмем "ок ",  затем в планировщике нажимаем кнопку выполнить. Заходим в сервис  "активные пользователи", и видим, что наш обмен идет по истечению установленного времени.  Служба закроется, и проверить прошел ли обмен, мы можем через монитор обмена. Надеюсь, вам моя статья пригодиться!

1С Скд и разрыв страницы

Столкнувшись с достаточно типовой проблемой при разработке отчетов на системе компоновки данных(СКД), вставка разрыва страницы после в конце группировки, на форумах и в документации не нашел простого решения этой задачи. Пост-обработкой табличного документа заниматься не хотелось, хотя совсем этого избежать пока не удалось :) , поэтому было найдено не сложное решение которым я хочу с вами поделиться.
Отчет будем формировать программно переопределив событие "ПриКомпоновкеРезультата"

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка=ЛОжь;

Настройки = КомпоновщикНастроек.ПолучитьНастройки();

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки);

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);

ПроцессорВывода.НачатьВывод();

ЭлементРезультата = ПроцессорКомпоновки.Следующий();
Пока ЭлементРезультата  Неопределено Цикл
    Если ЭлементРезультата.ЗначенияПараметров.Количество()=1 Тогда
            Если ЭлементРезультата.ЗначенияПараметров[0].Значение = "Разорвать" Тогда
            ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
    КонецЕсли;
    ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
    ЭлементРезультата = ПроцессорКомпоновки.Следующий();
КонецЦикла;
ПроцессорВывода.ЗакончитьВывод();

Как вы видите здесь все шаблонно, весь фокус находится в анализе ЭлементРезультата, в нем нужно определить когда собсвенно резать. Как я это решил для себя:
В СКД был добавлен Параметр РазрывСтраницы с типом строка и заданным значением "Разорвать"
Изображение


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

Изображение

В настройка этой группировки я убрал Авто поля и вставил свой парметр РазрывСтраницы.

 Изображение

Далее для этой группировки сделал свой макет:

 Изображение
Чтобы сделать группировку не видимой я в настройках, для этой группировки установил условное оформление: цвета текста, фона, линий - белые.
На закладке Другие настройки установил: Тип макета - вертикально, Выводить отбор - не выводить.
Для чего все это было сделано, напомню кусочек кода:

    Если ЭлементРезультата.ЗначенияПараметров.Количество()=1 Тогда
            Если ЭлементРезультата.ЗначенияПараметров[0].Значение = "Разорвать" Тогда
            ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
    КонецЕсли;

Для группировки ГруппировкаРазрыв у нас количество в коллекции ЗначенияПараметров будет равно 1. Всегда будет 1 параметр и его значение будет всегда равно нашей строке "Разорвать"  Благодаря этому и появляется выловить его при обходе результата. В пост обработки табличного документа придется удалить 2 последние строки, иначе у нас будет печататься пустая страница.

1С и ftp

Первым делом создал вот такую вот обработку с именем "Выгрузка на сайт"
 
Сделал форму
 
На форме видно две команды, первая формирует список для выгрузки, вторая делает ее, в закладке настройки прописаны настройки для соединения с фтп сервером:
 
А теперь про сам код:
 
 
&НаСервере
Процедура ВыгрузитьНаСервере()
АдресФайла = "D:\Выгрузка.csv";
Текст = Новый ТекстовыйДокумент;
ТЧ = Объект.Выгрузка;
Для каждого Стр из ТЧ Цикл
Имей = Строка(Стр.Имей);
Статус = Строка(Стр.Статус);
Текст.ДобавитьСтроку(Имей + ";" + Статус);
КонецЦикла;
Текст.Записать(АдресФайла, "cp-1251");
Попытка 
FTPСоединение=Новый FTPСоединение(Объект.АдресФТПСервера,Объект.Порт,Объект.Логин,Объект.Пароль);
Каталог = "/www/***.ru";
Попытка
FTPСоединение.УстановитьТекущийКаталог(Каталог);
Попытка 
FTPСоединение.Записать(АдресФайла,"file_upload.csv");
Сообщить("Выгрузка успешно завершена");
Исключение
Сообщить("Не удалось записать файл на сервер");
КонецПопытки;
Исключение
Сообщить("Не удалось перейти в каталог");
КонецПопытки;
Исключение
Сообщить("Не удалось соединиться с фтп сервером");
КонецПопытки;
КонецПроцедуры

 

Расскажем всю обработку построчно, 
АдресФайла = Это место на диске, ведь прежде, чем выгрузить что то на сервер, мы должны изначально создать файл на самом диске компьютера. Далее идет работа с текстовым документом, ее рассмотрим позже и отдельно.
 
ФТПСоединение = Создаем коннект с серваком, где есть адрес, порт, логин и пароль
 
ФТПСоединение.УстановитьТекущийКаталог = Переходим в нужную папку на сервере чтобы именно туда и залить наш файлик.
 
ФТПСоединение.Записать = АдресФайла, это откуда мы берем файл, а вторым параметром передаем, имя файла как он сохраниться на сервере.
 
Ну и все это дело у нас в обработке ошибок, ПОПЫТКА,ИСКЛЮЧЕНИЕ,КОНЕЦПОПЫТКИ.
 
Все понятно и как видно ничего трудного! Спасибо))