При попытке удалить запись из регистра сведений - получаю ошибку: она заблокирована, ошибка блокировок и т.д.
Отключил всех пользователей, перезапустил сервер, пробую удалить - опять ошибка блокировки
Путем тестов было вяснено, что проблема не в коде, а происходит это на этапе обращения платформы к SQL серверу... после долгих поисков решений, в интернете была найдена статья, которая помогла в решении данной проблемы:
Кто что блокирует, MS SQL + 1C
В повседневной работе достаточно задействовать только первый блок "/*кто кого*/". Открываем MS SQL Server Management Studio, правой на корень - "new query" - вставляем код запроса (только верхнюю часть до "Кто что блокирует", остальное - для детального анализа), выполняем запрос (вверху есть кнопочка выполнения запроса).
Выполнив запрос, запоминаем "ID виновника", быстренько идем в консоль сервера 1С, заходим в ветку "Сеансы" нашей базы. Видим все соединения с 1С-сервером, ищем там колонку "Соединение с СУБД", чтобы увидеть соединения 1С-сервера с MSSQL-сервером. В колонке будет всего несколько заполненных значений, среди них и будет "ID виновника".
Что делать если его там нет, тут 3 варианта:
1. Вернитесь в MSSQL и сделайте запрос еще несколько раз подряд, если значения меняются или таблица вообще пуста - постоянной блокировки нет, у вас (уже) все в порядке.
2. Сеанс который блокирует MSSQL находится в другой базе т.е. блокировка не в той базе (можно попробовать задействовать ветку всех сеансов в консоли 1С-сервера) - вернитесь в MSSQL и внимательно посмотрите в колонку DB в ней находится название базы.
3. Бывает что ID процесса в 1С-консоли вообще отсутствует, такое тоже бывает если у вас есть какие-то внешние программы подключенные напрямую в базу 1С, если пускаете кого-то в MSSQL напрямую, то вариант не исключен.
На одном проекте - клиент попросил отображать в программе данные, которые выдаю специализированные сайта в формате RSS - Что делать !?
Писать парсер rss для 1С
Первым делом, взглянув на ссылки, подумал что - обычный XML, сейчас его разложу и быстренько загружу в базу, но:
Выяснилось что сайты имеют разные форматы ввода RSS и главное они не валидные(
таким образом, написав небольшой код, который получает ссылку, далее XMLФайл.Прочитать() на одном сайте проходил на ура (этот пример я описывал в статье: Чтение данных с сайта в формате XML и загрузка в 1С), а вот второй сайт, и третий тоже, при попытке прочитать() выдавали:
{ОбщийМодуль.РегЗадания.Модуль(79)}: Ошибка при вызове метода контекста (Прочитать)
Пока XMLФайл.Прочитать() Цикл
по причине:
Ошибка разбора XML: - [1,1]
Фатальная ошибка:
Extra content at the end of the document
SystemId url rss
решил попробовать на rss других известных сайтов - 80% из проверяемых выдавали ошибку
Пришлось написать прямой построчный парсер RSS:
Структура конфигурации
ИсточникиRSS - URL на RSS, ДанныеRSS - сюда записываются загруженные данные новостей
Код получился таким(в принципе код универсальный, но возможно что-то придется подпилить):
Недавно, мой постоянный клиент решил проводить маркетинговые исследования по изменению цен на товары у конкурентов... и эти данные захотел использовать в 1С в связке с его прайс-листом + куча отчетов с графиками и процентным отклонением от цен основного конкурента
В результате этого, была написана обработка собирающая данные со страниц разных сайтов. Из целей конфиденциальности - сайты раскрывать не буду...
Вид обработки загрузки данных с сайта в 1С
Ниже код загрузки данных со страницы сайта, смысл такой :
в функция передается адрес страницы сайта
полученный текст страницы обрабатывается, удаляются теги
из полученного текста формируется ТЗ с данными
По названию ищется поставщик из вспомогательного справочника Справочники.Pr_Поставщики.НайтиПоНаименованию(, если нет - создается
на выходе ТЗ с данными
В коде используется вспомогательная функция ПолучитьМассивИзСтрокиСРазделителем
Конечно, перед тем как мы начали это делать - прошерстили интернет и нашли несколько решений , вот они:
В данной статье описан пример реализации загрузки данных накладных из PDF файлов для одного крупного Ритейла...
И так у Нас есть несколько файлов в формате pdf, которые нам необходимо загрузить в 1С.
Чтение PDF файлов из 1С
Первым дело я стал искать, как напрямую можно прочитать данные из 1С в PDF файлах - было найдено много информации и вариантов решений, но к сожалению большинство из них не правильно работали с кодировкой В результате банальный текст вида Красный стул превращался в страшную кракозябру.
Далее после долгих поисков был найден конвертер PDF в TXT - pdf2txt
Во многих организациях сформированные отчеты заверяют подписями.
В данном примере я покажу как можно вывести подписи для типового отчета ЗУП Свод начислений.
Для начала создадим макет в котором и разместим подписи, макет я создам общий, т.к. он будет использоваться и в других отчетах.
Макет такой:
Открываем Отчет СводНачисленнойЗарплатыОрганизаций, открываем Форму и ищем процедуру ОбновитьОтчет()
После
В конфигурации 1C 8.2. УТ 11 все печатные формы по умолчанию доступны только на просмотр. В дополнение, Управление УТ 11 переписана на управляемых формах и метод редактирования печатных форм отличается от "Бухгалтерия 2.0" и других стандартных конфигураций 1C 8.2.
Проблему редактирования текста в документе перед печатью решается следующим образом:
Заходим в раздел "Администрирование" в пользовательском режиме Печатные формы, отчеты и обработки. Выбираем пункт меню "Макеты печатных форм".
В открывшемся списке ищем нужную нам печатную форму. Все печатные формы сгруппированы по документам, к которым они относятся. Если не находим нужную форму у выбранного документа, смотрим внизу списка "Общие макеты".
Выбрав нужный макет позиционируемся на нем и нажимаем сверху на командной панели кнопку "Редактировать".
Откроется непосредственно макет печатной формы.
Выделяем полностью его (Ctrl+A, либо стандартными средствами как в Excel).
Жмем на поле правой кнопкой мыши, откроется контекстное меню. В нем выбираем пункт "Свойства".
В открывшемся окне свойств снимаем флаг "Защита". После этого закрываем макет формы.
Система предложит сохранить изменения, Нажимаем "ОК".
После выполненных действий в таблице макетов у выбранного макета появится галка "Есть пользовательский макет".
Я думаю каждый хоть раз, но сталкивался с ошибкой 1С Соединение с сервером баз данных разорвано администратором Microsoft SQL Server Native Client 10.0: Неопознанная ошибка HRESULT=80004005
Вот некоторые способы, которые помогут решить данную проблему:
1. Проверить конфигурацию на наличие некорректной информации (мусора). Для этого следует выполнить команду “Проверка конфигурации” с установленным флажком “Проверка логической целостности конфигурации”. При выявлении проблем будет выдано сообщение. Некорректная информация при этом будет удалена автоматически, однако следует обеспечить доступность для изменения корневого объекта конфигурации (напимер, при работе с хранилищем его следует захватить).
2. Если Ваша конфигурация находится на поддержке, следует подобным образом проверить конфигурацию поставщика. Для этого в настройке поддержки следует сохранить конфигурацию поставщика в cf файл, загрузить его в новую базу и выполнить описанную в пункте 1 процедуру. В случае, если было получено сообщение об исправлении, значит конфигурация поставщика содержит некорректную информацию. В этом случае следует снять Вашу конфигурацию с поддержки и заново поставить путем объединения со свежим релизом конфигурации поставщика. В настоящее время все релизы выпускаемые 1С проходят проверку и выпускаются без данной проблемы.
3. Также с этой ситуацией пересекается следующая ситуация:
10007066 Запись данных, содержащих колонки типа ХранилищеЗначения
Проблема:
При использовании СУБД MS SQL SERVER при записи объекта базы данных, содержащего несколько колонок типа ХранилищеЗначения, данные для которых получены из файлов, может происходить ошибка
Ошибка СУБД:Microsoft OLE DB Provider for SQL Server: String data length mismatchHRESULT=80004005и аварийное завершение работы программы.
Включив технологический журнал на время загрузки, можно определить таблицу, в которой содержатся такие хранилища. Найдите средствами MS SQL Server Query Analizer в этой таблице колонки типа image. Для каждой колонки типа image выполните запрос вида:
S_elect top 10 DATALENGTH(_Fld4044)
from _InfoReg4038
order by DATALENGTH(_Fld4044) desc
Нюансы: обратите внимание, что ”Стандартные проверки” платформой (chdbfl, в конфигураторе) упорно говорят, что с базой все ОК.
Суть проблемы: важно, что под это сообщение об ошибке могут подпадать разные причины, но у них есть общая часть для 1С – это не достаточно оперативной памяти. А еще точнее неэффектиное использование ресурсов памяти. Отсюда косвенные способы победить проблему: путем рестарта сервера (на некотрое время становиться больше доступной памяти) или перейти на 64-разрядный сервер приложений.
1С:Предприятие 8.2. Лицензия на сервер (x86-64)
По опыту проблема связана с хранением данных в реквизите хранилище значений либо наличием в таблице config двоичных данных БОЛЬШЕ 120 mb.
Обобщенные рекомендации, если рекомендации от 1С не помогли (проделать следующие действия в указанном порядке):
1. Выключить все фоновый задачи у всех баз
В 8.1.11 появился переключатель “запрет на фоновые задания” в
момент создания базы.
Готов пояснить, фоновые задания сами по себе не зло, но регламентные процедуры
с полнотекстовым поиском – вещь в себе – и память она может через какое время
съедать ресурсы rphost.exe, что на другие операции не останеться, и просто
базу блокировать
т.е. другими словами, после первого шага уже можно проверять – возможно проблема “уйдет”.
2. Перезапустить сервер
Второй шаг является частным случаем для вашего случая и после него тоже
есть смысл проверять работоспособность. Однако поскольку существуют утечки памяти http://www.gilev.ru/1c/memleak, то через некоторое время после рестарта пролема может вернуться.
3) делаем бэкап средствами sql
Делать резервное копирование рекомендую при любых действиях, когда может потребоваться “возврат” к предыдущему состоянию данных
4) снимаем базу с поддержки, выгружаем cf
убиваем в менеджмент консоли базе данных в таблице config запись более 120Мб, делаем “загрузить конфигурацию” (не объединение) убиваем в менеджмент консоли базе данных в таблице config запись более 120Мб, делаем “загрузить конфигурацию” (не объединение)
вот пример работоспособности этого приема
http://partners.v8.1c.ru/forum/thread.jsp?id=543293
или
1. Открыть конфигратор;
2. Снял конфигурацию с поддержки, ПРИ ЭТОМ КОНФИГУРАЦИЮ НЕ СОХРАНЯЛ!
3. Далее Сохранить конфигурацию в файл (не сохраняя измененной конфигурации);
4. В SQL для требуемой базы выполнил следующую команду:
DELETE FROM dbo.Config WHERE DataSize > 125829120
5. Загрузить сохраненную конфигурацию обратно.
Взято с http://www.forum.mista.ru/topic.php?id=465608
можно попробовать и более радикальный шаг здесь:
удаляем (в менеджмент консоли) в базе данных таблицу “config”
D_rop TABLE [dbo].[Config]
5) делаем “загрузить конфигурацию” (не объединение) из cf
после этого проверяем, проблема уходит.
6) Ошибка :"Соединение с сервером баз данных разорвано администратором
Microsoft OLE DB Provider for SQL Server: Неопознанная ошибка
HRESULT=80004005"
Имеем : 1C 8.1.13.41 УПП 1.2.19.21 на MS SQL 2005 SP3 на Win2003 Server Enterprise на компе 4Gb физ. памяти (SQL настроен на Max Memory 2Gb)
Решение в моем случае:
Виндовс по-умолчанию 2Гб берет себе, а 2 отдает нам. SQL почти всю остальную память поедал (в настройках стоит 2Gb) и оставлял для всех остальных только 128Мб физ. памяти(как и положено SQL- он не должен забирать ВСЁ, должен 128 оставить). Ошибка 1С начала проявляться после перехода на релиз 1.2.21.1. Да, действительно, в релизе 1.2.19.1 в файле dbo.Config не было записей больше 120Мб. А вот после обновления на 1.2.21.1 такая запись (примерно 135мб )появляется. При снятии с поддержки запись исчезает сама, и ничего удалять не приходится. При постановке на поддержку -снова появляется... Я так понял, что это и есть конфигурация поставщика.
Если SQL оставляет всего 128, а надо целых 135, то вывод- надо дать рабочим процессам живую физическую память. Moжно урезать SQL. А можно винды. Установив в boot.ini ключ /3GB я тем самым отдал виндам 1Gb, а всему остальному 3Gb, а не 2/2 как по умолчанию. После перезагрузки - все ОК.
У Вас есть свое решение!? оставьте его в комментариях)
Хранилище конфигурации предназначено для коллективной разработки конфигурации. В хранилище сохраняется история разрабатываемой конфигурации, а также информация о том, когда и кто вносил изменения в конфигурацию. Разработка конфигурации с использованием хранилища может вестись неограниченным числом пользователей.
Принцип работы
Хранилище конфигурации представляет собой базу данных, в которой сохраняются все изменения конфигурации, сделанные в процессе её разработки. После подключения информационной базы к хранилищу из него в информационную базу загружается последняя версия конфигурации, и все объекты метаданных конфигурации становятся недоступными для редактирования.
Гранулой редактирования - объектами разработки - являются все основные объекты метаданных (такие как справочники, документы, регистры сведений), а также формы и макеты. Объекты разработки могут редактироваться независимо друг от друга разными пользователями. Реквизиты, табличные часть и т.д. не являются отдельными объектами с логической точки зрения, поэтому они не были включены в состав объектов разработки. Данные объекты метаданных редактируются в составе своих родительских объектов, являющихся объектами разработки.
Для получения возможности редактирования объекта необходимо произвести его захват в хранилище. При выполнении захвата из хранилища будет получена (в случае наличия) новая версия объекта разработки. После внесения изменений объект необходимо поместить в хранилище, после этого обновленная версия объекта становится доступной для других пользователей, участвующих в процессе разработки конфигурации. Если же изменения не должны быть помещены в хранилище, то предусмотрена процедура отмены захвата, при которой из хранилища получается старая версия объекта разработки. Таким образом, можно выделить четыре простейшие операции работы с хранилищем: захват объекта в хранилище;
помещение объекта в хранилище;
получение объекта из хранилища;
отмена захвата в хранилище.
Для параллельной разработки конфигурации в хранилище используется стратегия пессимистической блокировки: в то время, пока объект разработки редактируется одним пользователем, другие пользователи не имеют возможности его редактировать.
Стоит обратить внимание на тот факт, что при подключении информационной базы к хранилищу конфигурации происходит полная замена текущей редактируемой конфигурации конфигурацией хранилища . Это необходимо для обеспечения полного соответствия идентификаторов объектов метаданных. Если все же имеется информационная база, часть объектов метаданных конфигурации которой необходимо перенести в конфигурацию хранилища, то необходимо: выгрузить конфигурацию из информационной базы в файл,
подключить информационную базу к хранилищу конфигурации,
выполнить захват объектов, которые необходимо заместить,
произвести объединение с требуемой конфигурацией.
Важно понимать, что предметом разработки является конфигурация, а не отдельные объекты. Хранилище ведет историю развития конфигурации. При помещении объектов разработки в хранилище создается новая версия конфигурации, для которой записываются: дата создания версии, пользователь, создавший версию, а также списки объектов разработки, которые были добавлены, изменены, удалены в процессе получения данной версии конфигурации. История объектов разработки не ведется. Несмотря на то, что имеется возможность просмотра истории объекта разработки, отдельно загрузить из хранилища объект разработки какой-либо версии конфигурации невозможно, возможна лишь загрузка из хранилища версии конфигурации целиком. Однако все же имеется возможность получения объекта определенной версии конфигурации: необходимо захватить объект и выполнить объединение с версией конфигурации, в которой данный объект имеет требуемое состояние.
При создании новой версии конфигурации хранилища имеется возможность записать комментарий к этой версии. Рекомендуется комментировать версии конфигурации, для того чтобы впоследствии можно было понять, что именно было изменено в данной версии конфигурации. Для наиболее значимых версий (например: выпуск релиза) рекомендуется также устанавливать метку - строку, кратко описывающую версию конфигурации хранилища.
В процессе разработки конфигурации с использованием хранилища рекомендуется периодически получать актуальное состояние объектов разработки. Это позволяет избежать возможных трудностей при помещении объектов в хранилище (например при удалении объектов метаданных из конфигурации).
Средства работы с хранилищем конфигурации позволяют просматривать историю версий конфигурации хранилища, сохранять конфигурацию определенной версии в файл, сравнивать с другими версиями конфигурации данного хранилища или же сравнивать с другой конфигурацией из файла.
Если по каким-либо причинам хранилище конфигурации недоступно, то имеется возможность продолжать работу с объектами разработки, захваченными ранее в хранилище. Таким образом, можно вести разработку, не имея постоянной непосредственной связи с хранилищем конфигурации.
Режимы использования
Для работы с хранилищем конфигурации предусмотрено несколько способов: с подключением информационной базы к хранилищу;
без подключения информационной базы к хранилищу.
Данные режимы отличаются друг от друга как набором функциональности, предоставляемой платформой 1С:Предприятия, так и своим предназначением.
Работа с подключением информационной базы к хранилищу
Этот режим является основным режимом работы с хранилищем. Он используется для групповой разработки конфигурации несколькими пользователями.
Работа в данном режиме начинается с процедуры подключения информационной базы к хранилищу. К одному хранилищу может быть одновременно подключена одна информационная база от имени одного пользователя. Если пользователь, у которого уже имеется информационная база, подключенная к данному хранилищу, произведет попытку подключения другой информационной базы, то ему будет выдано соответствующее предупреждение. Если же подключение все же будет осуществлено, то прежняя информационная база уже не сможет работать с данным хранилищем конфигурации без предварительного отключения от него. Аутентификация в хранилище от имени пользователя, не подключавшего данную информационную базу к хранилищу, невозможна.
При подключении информационной базы к хранилищу в нем регистрируется строка соединения с информационной базой. Если при последующих соединениях с хранилищем данная строка будет изменена (по каким-либо причинам информационная база была перемещена на другой ресурс), то платформой будет выдано соответствующе предупреждение, и, в случае подтверждения соединения, строка соединения будет обновлена. Если соединение происходило копией информационной базы, то работа оригинала с данным хранилищем будет невозможна без предварительного отключения от него.
Работа без подключения информационной базы к хранилищу
Режим обеспечивает возможность просмотра и администрирования хранилища без подключения к нему, т.е. без замены редактируемой конфигурации конфигурацией хранилища. В данном режиме пользователь может получить конфигурацию определенной версии хранилища, посмотреть историю конфигурации или отдельных объектов разработки, произвести действия по редактированию прав пользователей или изменению их состава.
Работа в данном режиме начинается с открытия хранилища конфигурации, данная процедура заключается в аутентификации пользователя в хранилище, которая будет автоматически предложена при выполнении любого первого действия с хранилищем в данной сессии работы Конфигуратора. Для открытия другого хранилища в данной сессии Конфигуратора необходимо закрыть текущее хранилище конфигурации, выполнив соответствующий пункт меню.
Предполагается, что данный режим будет использоваться для подготовки дистрибутивов конфигураций на основе файлов выгрузки информационных баз. Данная процедура может выглядеть следующим образом:
Создать новую информационную базу.
Открыть хранилище конфигурации.
Из хранилища конфигурации загрузить конфигурацию нужной версии.
Произвести заполнение информационной базы необходимыми данными.
Произвести подготовку дистрибутива конфигурации.
В процессе модернизации конфигурации хранилища для выпуска новых дистрибутивов необходимо повторить процедуру, начиная с пункта 2, и, если новых данных вводить не требуется, сразу выполнить подготовку дистрибутива.
Контроль ссылочной целостности
Стандартные механизмы контроля ссылочной целостности конфигурации обеспечивают контроль на уровне объектов метаданных: нельзя, например, удалить из конфигурации справочник, если на него ссылается реквизит документа и т.д. На уровне интерфейсов, форм и макетов такой контроль не ведется.
Пример: удаление справочника Склады из демонстрационной конфигурации ":
происходит проверка имеющихся на этот объект ссылок в других объектах:
"Справочник.Склады" использован в: Документ.ПриходнаяНакладная.Реквизит.Склад.Тип
Документ.РасходнаяНакладная.Реквизит.Склад.Тип
РегистрНакопления.УчетНоменклатуры.Измерение.Склад.Тип
после удаления обнаруженных ссылок справочник Склады успешно удаляется из конфигурации, хотя ссылка не него по-прежнему имеется в интерфейсе Основной (кнопка Склады из подменю Справочники содержит действие "Склады: Открыть справочник") и формах документов ПриходнаяНакладная, РасходнаяНакладная (поля ввода, предназначенные для редактирования реквизитов Склад по-прежнему имеют тип СправочникСсылка.Склады).
При разработке конфигурации без использования хранилища этого вполне хватает. Однако для параллельной разработки конфигурации такой контроль ссылочной целостности недостаточен.
Хранилище конфигурации обеспечивает более строгий контроль ссылочной целостности конфигурации. Производится полный контроль ссылок между объектами метаданных как на уровне самих объектов, так и на уровне содержимого их форм и макетов, а также содержимого интерфейсов.
Следствием этого факта является необходимость получения из хранилища (помещения в хранилище) объектов, так или иначе связанных с объектом, над которым непосредственно производится действие. Однако хранилище конфигурации производит анализ ссылок объекта и требует получения (помещения) дополнительных объектов только в случае необходимости.
Анализ ссылок производится рекурсивно: сначала производится анализ объекта, с которым производится действие в хранилище; затем при обнаружении необходимости выполнения операции над дополнительными объектами аналогичный анализ производится для них, и так до тех пор, пока ссылки всех требуемых объектов не будут проанализированы.
Особенности конфигурирования
Разработка конфигурации в информационной базе, подключенной к хранилищу конфигурации, имеет некоторые особенности.
Как уже говорилось ранее, для получения возможности редактирования объекта необходимо произвести его захват в хранилище конфигурации. Если необходимо внести изменения в объект метаданных, не являющийся объектом разработки (реквизиты, табличные части), то необходимо произвести захват того объекта разработки, который содержит данные объекты метаданных.
Для добавления нового объекта метаданных или же для изменения порядка следования существующих объектов необходимо произвести захват родительского объекта разработки.
Удаление объектов конфигурации
Особое внимание стоит уделить процедуре удаления объектов метаданных из конфигурации. Для удаления объекта метаданных из конфигурации необходимо захватить в хранилище сам удаляемый объект, его родительский объект, а также все подчиненные объекты удаляемого. После чего появится возможность удалить объект из конфигурации.
Однако при помещении в хранилище, если на удаленный объект имеются ссылки в других объектах, средства работы с хранилищем потребуют помещение этих объектов в хранилище с очищенными ссылками на удаленный объект.
Рекомендуется перед удалением объекта из конфигурации производить поиск ссылок на данный объект. Произвести захват в хранилище всех обнаруженных объектов и вычистить из них все ссылки на удаляемый объект. После этого необходимо удалить все ссылки на удаляемый объект из форм, интерфейсов и макетов. После чего удалить объект из конфигурации и произвести попытку помещения изменений в хранилище. Если помещение в хранилище завершится неудачей из-за обнаружения ссылок на удаленный объект, то необходимо захватить указанные объекты и произвести повторную попытку помещения изменений в хранилище.
Пример: удаление справочника Склады из демонстрационной конфигурации:
Производим поиск ссылок на удаляемый объект:
"Справочник.Склады" использован в: Документ.ПриходнаяНакладная.Реквизит.Склад.Тип
Документ.РасходнаяНакладная.Реквизит.Склад.Тип
РегистрНакопления.УчетНоменклатуры.Измерение.Склад.Тип
Захватываем данные объекты и удаляем из них реквизиты, ссылающиеся на справочник Склады.
Захватываем интерфейс "Основной" и удаляем из него кнопку Склады из подменю Справочники с действием "Склады: Открыть справочник".
Захватываем корневой объект конфигурации и справочник Склады.
Удаляем справочник Склады из конфигурации.
Производим попытку помещения корневого объекта конфигурации в хранилище
Параметры командной строки для работы с хранилищем конфигурации
Параметры командной строки режима работы с хранилищем конфигурации
/ConfigurationRepositoryF <каталог хранилища> — указание имени каталога хранилища.
/ConfigurationRepositoryN <имя> — указание имени пользователя хранилища.
/ConfigurationRepositoryDumpCfg <имя cf файла> [-v <номер версии хранилища>] — сохранить конфигурацию из хранилища в файл (пакетный режим запуска).
-v <номер версии хранилища> v — номер версии, если номер версии не указан, или равен -1, будет сохранена последняя версия.
/ConfigurationRepositoryUpdateCfg [-v <номер версии хранилища>] [-revised] — обновить конфигурацию хранилища из хранилища (пакетный режим запуска).
-v<номер версии хранилища> — номер версии, если номер версии не указан, или равен -1, будет сохранена последняя версия, если конфигурация не подключена к хранилищу, то параметр игнорируется;
-revised — получать захваченные объекты, если потребуется. Если конфигурация не подключена к хранилищу, то параметр игнорируется;
-force — если при пакетном обновлении конфигурации из хранилища должны быть получены новые объекты конфигурации или удалиться существующие, указание этого параметра свидетельствует о подтверждении пользователем описанных выше операций. Если параметр не указан — действмия выполнены не будут.
/ConfigurationRepositoryUnbindCfg [-force] — отключение конфигурации от хранилища конфигурации (у пользователя должны быть административные права в данной информационной базе). Если пользователь аутентифицируется в хранилище (интерактивно или через параметры командной строки), то отключение конфигурации от хранилища также отражается в самом хранилище конфигурации (информация о подключении удаляется), если же пользователь не аутентифицировался в хранилище, то производится только локальное отключение конфигурации от хранилища.
В случае, если в конфигурации имеются захваченные объекты, которые были изменены относительно хранилища, то будет выдано соответствующее сообщение и отключения не выполнится.
–force — ключ для форсирования отключения от хранилища (пропуск диалога аутентификации, если не указаны параметры пользователя хранилища, игнорирование наличия захваченных и измененных объектов).
/ConfigurationRepositoryReport <имя файла> [-NBegin <номер версии>] [-NEnd <номер версии>] [-GroupByObject] [-GroupByComment] — построение отчета по истории хранилища. Если параметры группировки не указаны и режим совместимости указан "Не используется", то отчет формируется с группировкой по версиям. В режимах совместимости "Версия 8.1" и "Версия 8.2.13" отчет формируется с группировкой по объектам. Если конфигурация базы данных отличается от редактируемой по свойству совместимости, при обработке командной строки учитывается значение режима совместимости конфигурации базы данных.
<имя файла> — имя файла, в который выводится отчет;
NBegin — номер сохраненной версии, от которой начинается строиться отчет;
NEnd — номер сохраненной версии, по которую строится отчет;
GroupByObject — признак формирования отчета по версиям с группировкой по объектам;
GroupByComment — признак формирования отчета по версиям с группировкой по комментарию.
Примеры: для конфигурации, не присоединенной к текущему хранилищу:
для присоединенной к хранилищу конфигурации, информация для отчетов берется из текущего хранилища:
Создаем хранилище
Выбираем в меню "Конфигурация"->"Хранилище конфигурации"->"Создать хранилище..."
Указываем путь к каталогу хранилища. (Каталог должен быть доступен для всех разработчиков!)
После того как хранилище создано, заходим в пункт меню "Конфигурация"->"Хранилище конфигурации"->"Администрирование" для того чтобы создать пользователей для разработчиков
В открывшемся окне создаем пользователей.
Подключаем конфигурации разработчиков к хранилищу конфигурации
выбираем пункт меню "Конфигурация"->"Хранилище конфигурации"->"Подключиться к хранилищу..."
Далее конфигуратор нас спросит: "При подключении к хранилищу конфигурации, данная конфигурация будет заменена конфигурацией из хранилища. Продолжить подключение?"
Нажимаем кнопку "Да" и указываем:
- путь к хранилищу
- имя пользователя
- пароль
Ждём, пока произойдет сравнение конфигурации с хранилищем.
Если всё прошло успешно, то справа от объектов конфигурации в дереве объектов должна появиться пиктограмма замка.
Работа с хранилищем конфигурации
По умолчанию все объекты конфигурации имеют пиктограмму "замок". Для того чтобы изменить объект конфигурации нужно его захватить, то есть выбрать в контекстном меню объекта пункт "Захватить в хранилище"
указать настройки захвата
Выполнять рекурсивно - указывает, что помимо тех объектов, которые перечислены в списке, следует также захватить и все их подчиненные объекты, которые могут быть загружены независимо (подчиненные объекты, которые не могут быть загружены независимо от родительского объекта, всегда будут получены вместе с родительским объектом). Например, если при захвате справочника не выполнять загрузку рекурсивно, то из подчиненных объектов будут захвачены только реквизиты и табличные части справочника.
Если же выполнить захват рекурсивно, то также будут захвачены и те объекты, подчиненные справочнику, которые могут быть захвачены отдельно от него: формы и макеты.
Флажок Разрешать получать захваченные позволяет при загрузке получить и те объекты, которые захвачены данным пользователем. Такая возможность может потребоваться, например, когда нужно вернуться к состоянию хранилища, не отменяя захват объекта, а продолжая его редактирование.
После того, как нужные изменения внесены, следует объект поместить снова в хранилище со сделанными изменениями. Выбираем в контекстном меню объекта конфигурации пункт "Поместить в хранилище..."
Если требуется отменить сделанные изменения и освободить объект от захвата, то выбираем в контекстном меню объекта пункт "Отменить захват"
Если требуется восстановить объект из хранилища, то то выбираем в контекстном меню объекта пункт "Получить из хранилища...". При этом внесенные изменения в то время, как объект был захвачен, теряются.
Так же можно просмотреть историю версий и сравнить захваченный и измененный объект с объектом в хранилище.
После того, как работа в копиях завершена(или завершен какой-то промежуточный этап), можно обновить конфигурацию основной базы для этого нужно выбрать пункт в меню "Конфигурация"->"Хранилище конфигурации"->"Обновить конфигурацию из хранилища" или "Конфигурация"->"Хранилище конфигурации"->"Сравнить/объединить конфигурацию с хранилищем".
Во втором случае произойдет более "мягкое" обновление конфигурации, то есть, можно будет посмотреть отчет по различиям объектов исходной конфигурации и хранилища.
Иногда требуется разобрать данные из Excel в 1С.
Я считаю что легче и быстрей поместить все данные в ТаблицуЗначений и уже там ими манипулировать. Пример 2-х функций которые я использую:
ИзExcelВТаблицу – Читает Excel в ТаблицуЗначений
ЭлементСправочника – Создает или находит элемент справочника.
Теперь сам код:
Пример вызова:
или
Теперь функция которой я использую когда надо создать элемент справочника из полученных данных.
ВНИМАНИЕ! При использовании кодов описанных ниже, уберите символ _
Давайте рассмотрим на примерах как это делается! =) Мне известно 2 способа:
1. Путем замены шаблонного текста в макете Wordа.
2. Путем вставки текста с помощью закладок в Wordе,
В первом случае сразу скажу, что длина строки передаваемая в функцию замены, довольно небольшая 255 символов, да и расстановка шаблонных выражений в макете Word занимает довольно много времени. Через процедуру Content.Find.Execute.
Во втором случае длина, насколько мне известно неограниченна, также воськаться с закладками намного быстрее и удобнее, чем расставлять шаблонный текст. Используя Bookmarks().S_elect(). Поэтому давайте на коде рассмотрим второй пример.
И так, для начала необходимо добавить Word макет к документу. Добавляем макет с помощью конструктора макетов указав Active document и выбрав соответствующий макет.
Называем его Акт. Открываем макет в 1Ске, ставим курсор в нужном месте, переходим в меню Вставка закладка нажимаем добавить закладку к примеру у меня это НарушенияТекст
Теперь кидаем на форму документа кнопку Сформировать и по нажатию на нее пишем код который открывает наш макет Word ищем закладку по имени и вставляет туда текст:
Это пример вывода множества строчек из табличной части одной строкой, если нужно просто выгрузить какой-то реквизит то можно пропустить часть 2 и перейти к части 3.
Для выгрузки табличной части в форме таблицы можно использовать функцию автоформата, примеру код выгрузки табличной части документа Предписание:
Ну вот и все =) Автор: saylolpls
Еще способ Active document
В Конфигураторе Макеты - правый клик - Добавить
Тип макета: Active document
Создать новый - Документ Microsoft Word
Меню Вставка - Поле - Автоматизация - DocVariable
Написать имя поля в графе "Новое имя:" ДатаПриказа
В модуле формы документа создаем кнопку, и в ее обработчике пишем:
2) добавляем не поле, а Закладку
Меню Вставка - Закладка и далее указываем ее имя ("ИмяЗакл")