gifts2017

1С:Предприятие Бухгалтерия переход с редакции 2.0 на 3.0. Практика перевода информационной базы для работы в управляемом приложении.

Опубликовал Константин - (Kosstikk) в раздел Программирование - Практика программирования

Из информационного выпуска 1С № 16872 от 08.07.2013г. стало известно об относительно скором необходимом переходе на редакцию 1С:Бухгалтерия 3.0. В данной публикации будут разобраны некоторые особенности перевода нетиповой конфигурации 1С:Бухгалтерия 2.0 на редакцию 3.0, которая работает в режиме "Управляемое приложение".
Публикация будет дополняться по мере подготовки нового материала. Публикация не является "универсальной инструкцией".

Update 3. Права доступа. 14.08.2013
Update 4. Добавлен раздел 0. Дополнен раздел 4. Добавлен раздел 7. Внесены поправки, актуализирована информация. 23.11.2013.

Информационный выпуск 1С № 16872 от 08.07.2013г. http://www.1c.ru/news/info.jsp?id=16872


Кому будет полезна данная публикация: ..об этом мы узнаем в комментариях =)

Итак, начнем..

Общий план перехода:

0. Когда можно/нужно переходить?

1. Перевод типового функционала.

2. Перевод добавленного функционала.

3. Права доступа.

4. Командный интерфейс.

5. Дополнительные отчеты и обработки.

6. Инструменты разработчика.

7. Настройки программы

 

0. Когда можно/нужно переходить?

По непонятной мне причине в 1С:Учебном центре №1 преподаватель, который читал курсы по 3.0 заверял обучающихся что переходить нужно с нового года, дискредитировать преподавателя просто не хотелось, но это уже другая история. Однозначного срока нет, есть оптимальный с учетом деятельности предприятия, не ведитесь на стериотипы людей с загустевшим мышлением. 

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

 

1. Перевод типового функционала.

Этот пункт достаточно прост, переход не требует переноса данных и выполняется как обновление конфигурации. Все что необходимо - это иметь нужные версии конфигурации, исходя из информационного выпуска 1С №16872 от 08.07.2013г. это версии 2.0.49 и 3.0.22

Выполняем обновление текущей конфигурации на версию 2.0.49 применяем обновление, запускаемся в режиме предприятия, подтверждаем легальность, ждем некоторое время пока выполняются необходимые действия, первый шаг пройден.

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

Важно понимать, что переход на версию 3.0 - это не просто обновление - фактически это переход на "Управляемое приложение", на управляемые формы, на реальное клиент-серверное взаимодействие, это значит что все доработки, которые прежде не были адаптированы к "Управляемому приложению" работать не будут. Имеющиеся роли теряют свою актуальность - в 3.0 они разделены на составные роли, из которых в дальнейшем формируются профили групп доступа. Интерфейсы в управляемом приложении не используются. Всвязи с этим основной задачей при переводе типового функционала является сохранность добавленных вами метаданных участвующих в храненнии информации, например добавленных объектов, реквизитов, табличных частей, движений документов, типов в уже существующих данных, возможно предопределенных элементов (их нельзя удалить, они станут не предопределенными но остануться в базе).

Подсистемы, роли, критерии отбора, общие формы, формы объектов, макеты, журналы, подписки (всю ветку общие, все формы, макеты документов и справочников, все отчеты, все обработки) можно помечать на обновление, при необходимости эти объекты конфигурации можно будет восстановить из копии конфигурации 2.0.

Выполняем объединение. Сохраняем основную конфигурацию. Добавляем пользователю под которым будет выполняться обновление роль  "Администратор системы (для перехода на ред. 3.0)". Применяем конфигурацию к информационной базе. Во время применеия изменений к конфигурации могут появится сообщение о дублирующихся именах метаданных, добавте префикс/суффикс к одному из объектов, такие объекты нужно проанализировать в режиме предприятия и выполнив необходимые действия удалить ненужные объекты. Ждем продолжительного обновления в режиме предприятие. На этом шаге могут возникнуть ошибки частного характера, которые можно обойти добавив "попытка/исключение" в нужные места.

Update 23.11.2013:

 В настоящее время переход с 2.0 на 3.0 несколько изменился. Для того чтобы перейти на актуальную версию необходимо скачать "Дистрибутив обновления для перехода с редакции 2.0". В описании дистрибутива будут указаны необходимые для возможости обновления версии 2.0, а так же приведена не сложная инструкция. 

После обновления конфигурации 2.0 до нужной версии, выполняем обновление конфигурации на редакцию 3.0. Все замечания описанные в п.1 не утратили актуальности.

 

2. Перевод добавленного функционала.

В зависимости от объема имеющихся изменений конфигурации будет зависеть сложность данного пункта.

По порядку:

2.1. Добавленные документы/справочники - необходимо адаптировать для работы в управляемом приложении: добавить в необходимые подсистемы, разработать управляемые формы, добавить необходимые команды, включить "Использовать стандартные команды", ознакомится с используемыми общими командами и новыми подписками на события.

2.2. Реализация изменений в типовых объектах с учетом работы в управляемом приложении.

2.3. Добавленные отчеты и обработки - есть особенности, об этом ниже.

2.4. Ветка "Общие" как в 2.0.

2.5. При переносе добавленного функционала следует обращать внимание на измененные типовые объекты: процедуры функции общих модулей, переименованные реквизиты/объекты (например ФизЛица/ФизическиеЛица, ДолжностиОрганизаций/Должности), принципиальные отличия в хранении информации (теперь контактная информация хранится непосредственно в табличных частях объектов)

 

Особенности:

В условиях достаточной срочности перехода и не принципиальности работы в тонком клиенте для пользователей есть возможность сделать переход более плавным, на моем примере повторная реализация порядка 60 отчетов и обработок на управляемых формах заняла бы достаточно долгое время. Есть вариант использования режима запуска "Толстый клиент (управляемое приложение), который настраивается отдельно для отладки и при подключении базы пользователю:

 

 

 

 

Также необходимо настроить режим открытия форм "В закладках" в режиме 1С:Предприятия (Сервис -> Параметры):

 

 Такой режим запуска позволит использовать старые отчеты/обработки добавленные в конфигурацию (внешние запускаться не будут) в управляемом приложении. Потребуется некоторая переработка отчетов/обработок связанная с п. 5. Так же есть особенности связанные с тем, что вызов из обычных форм серверных процедур/функций возможен только из общих модулей у которых установлен признак "Вызов сервера", поэтому возможно возникнет необходимость создать свой промежуточный модуль с установленным признаком "Вызов сервера" через который вызывать серверные процедуры и функции, например:

СчетФактура = РаботаСОбычнымиФормами.НайтиПодчиненныйСчетФактуруВыданныйНаРеализацию(ОбъектДокРеализации.Ссылка);

Промежуточный модуль:

Функция НайтиПодчиненныйСчетФактуруВыданныйНаРеализацию(ДокументОснование, ИсключаемыйСФ = Неопределено, ПометкаУдаления = Ложь, СтруктураОтбора = Неопределено) Экспорт  
 Возврат УчетНДСПереопределяемый.НайтиПодчиненныйСчетФактуруВыданныйНаРеализацию(ДокументОснование, ИсключаемыйСФ, ПометкаУдаления, СтруктураОтбора); 
КонецФункции 

Также при работе с обычными формами в упрвляемом приложении следует учитывать возможные подписки на события для типовых объектов, обработчики которых могут быть размещены в общих модулях без признака "Вызов сервера", например при создании в обработке объекта документа РеализацияТоваровУслуг появится ошибка "При подписке АвтономнаяРаботаЗарегистрироватьИзменениеДокумента на событие ПередЗаписью произошла ошибка. Обработчик события не найден." это связанно с тем что ваша обработка/отчет выполняется в контексте толстого клиента и не видит данную подписку в серверном модуле. В таком случае вам необходимо ставить признак "Вызов сервера" у типового модуля, подписок может быть очень много, также можно нарваться на передачу мутабельного значения, поэтому можно попробовать воспользоваться промежуточным обращением через модуль, с установленным признаком "Вызов сервера", например:

СчетФактураОбъект = РаботаСОбычнымиФормами.ВыполнитьНаСервере(Истина, "Документы.СчетФактураВыданный.СоздатьДокумент()"); 
РаботаСОбычнымиФормами.ВыполнитьНаСервере(Ложь, "Параметр1.УстановитьНовыйНомер(Параметр2)", СчетФактураОбъект , РеализацияТоваровУслугОбъект.Организация.Префикс); 

Промежуточный модуль:

Функция ВыполнитьНаСервере(ВернутьРезультат, Команда, Параметр1 = Неопределено, Параметр2 = Неопределено, Параметр3 = Неопределено, Параметр4 = Неопределено) Экспорт  
 Если ВернутьРезультат Тогда 
 Возврат Вычислить(Команда);
 Иначе 
 Выполнить(Команда); 
 Возврат Неопределено;
 КонецЕсли;
КонецФункции

Таже было выявлено, что при использовании методов объектов из толстого клиента напрямую, не обрабатываются стандартные процедуры из модуля объекта, например при использовании метода документа Заполнить() не вызывается процедура ОбработкаЗаполнения(), т.е. промежуточный модуль все-таки придется использовать если вы работаете с методами объекта.

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

&НаКлиенте 
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) 
 //Вставить содержимое обработчика.
 ПараметрыФормы = Новый Структура("",);
 ОткрытьФорму("Обработка.ГрупповоеФормирование.Форма", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно); 
КонецПроцедуры

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

 

3. Права доступа.

Система организации прав доступа используется из "Библиотеки стандартных подсистем" номер подсистемы 47, название "Управление доступом". Используется "Упрощенный интерфейс настройки прав доступа".

 

С точки зрения конфигурирования (как и должно было быть) организация доступа осталась на прежнем уровне.. т.е. пользователь информационной базы имеет доступ (программный и интерфейсный, +rls) согласно тем ролям которые ему добавлены по принципу если где-то разрешено, значит можно.

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

Справочник "Пользователи" связан по ИД со списком пользователей информационной базы (раньше вроде было по коду).

В программе есть функциональная опция "ИспользоватьГруппыПользователей" которая включает возможность использовать соответственно группы пользователей, но эти группы пользователей обеспечивают только функционал визуального разделения.

В программе есть функциональная опция "ОграничиватьДоступНаУровнеЗаписей" которая включает возможность использования разграничения доступа по организациям.

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

Справочник "Группы доступа" - обеспечивает организацию доступности набора ролей для пользователя, есть элементы с видом "Персональные группы доступа" которые создаются для каждого пользователя всегда и могут быть включены или выключены, есть элементы с видом "Произвольные участники" в которые добавляется список нужных пользователей. При использовании упрощенного интерфейса настройки прав доступа (по умолчанию, но можно отключить) при установке прав доступа пользователя (отметка необходимых профилей пользователя) пользователю создаются соответствующие группы доступа(для RLS), и проставляются соответствующие роли для связанного пользователя информационной базы.

В общем виде мы имеем некую зависимость: Пользователь -> Профиль доступа -> Группы доступа/Роли.

Сложности: при переходе только пользователь от которого выполнялся переход зарегистрировался в справочнике пользователей, остальные в справочнике пользователей не появились, хотя остались в списке пользователей информационной базы, для того чтобы избежать повторного создания пользователей (и генерации новых паролей =)) предлагаю воспользоваться прикрепленной обработкой (лучше сначала на копии) возможно в более новых релизах для перехода на 3.0 данная проблема не возникнет, но мало ли.

Во время создания собственных ролей наткнулся на очень неприятный нюанс, когда роли "зависают" и изменения не применяются при перезапусках отладки. Проблема заключалась в том, что в 1С используются механизмы кэширования и сохранения настроек, которые просто так не чистятся, необходимо использовать обработку из "инструментов разработчика" (есть в шаблоне конфигурации SSL/Библиотека стандратных подсистем), файл кому нужно прикрепил, обработка типовая.


4. Командный интерфейс.

В конфигурации есть команды: стандартные, которые нужно не забывать включать для объектов ,устанавливая признак "использовать стандартные команды", к ним относятся команды открытия форм, форм списка, выбора, добавления изменения и т.д. И есть прочие команды: общие команды, команды печати, добавленные пользователем команды.

Для того чтобы команда отображалась в интерфейсе она должна быть включена в подсистему, для подсистемы должен быть включен признак "включать в командный интерфейс" и для команды в командном интерфейсе подсистемы (масло маслянное)) должна быть установлена видимость. 

Далее накладываются доступность команды по ролям - если у пользователя есть нужная роль на объект/команду - команда доступна в интерфейсе.

Далее накладываются возможные функциональные опции команды.

Далее накладываются возможные настройки отображения команды для пользователя.

Т.е. все достаточно просто =)) если что-то не отображается, а должно, скорее всего забыли включить "использовать стандартные команды" или работает какая-либо функциональная опция, которая как правило связана с константой. В 3.0 столкнулся с достаточно большим объемом скрытых настроек.


5. Дополнительные отчеты/обработки.

Необходимо переделать для работы в управляемом приложении (примеры на инфостарте). 

 

6. Инструменты разрабочтика.

Есть небольшая особенность, о которой многие забывают, многое из того что вы используете сейчас в обычном приложении (консоли запросов, обработки по поиску дублей и управлению объектами) уже работают под 8.2, не обязательно искать нужную обработку под управляемое приложение если ее использование не имеет постоянного (несколько раз в день) характера. При необходимости вы можете запуститься в толстом клиенте обычном приложении (или запустить соответствующую отладку) и воспользоваться имеющейся обработкой, данную тему я пытался раскрыть в публикации http://infostart.ru/public/188602/

 

7. Настройки программы

По данному разделу хотелось бы озвучить следующие вещи:

В целом при переходе на новую редакцию очень порадовало, что настройку клиент-банка, загрузку данных из ЗУП не нужно было производить повторно (у нас были доработки по правилам обмена, поэтому были свои нюансы).

Повторно прошлись по настройкам параметра учета и настройкам учетной политики, загрузить адресный классификато.

В редакции 3.0 очень много плюшечек из библиотеки стандартных подсистем, скрытых функциональными опциями, к которым не было доступа из интерфейса, например уже реализована подсистема "Присоединенные файлы" и есть возможность "Хранить файлы в томах на диске". Мы использовали подсистемы БСП уже достаточно давно и при переходе я был приятно удивлен, что теперь сопровождать подсистему нет необходимости =). Скорее всего вопрос возможных настроек программы - это только вопрос времени, а возможно просто не хотят перенагружать интерфейс. В моем случае я позаимствовал из БСП общие формы настроек и добавил их в новую подсистему.

Скачать файлы

Наименование Файл Версия Размер
Обновление справочника пользователи 48
.epf 5,94Kb
14.08.13
48
.epf 5,94Kb Скачать
ИнструментыРазработчикаОбновлениеВспомогательныхДанных.epf 86
.epf 17,05Kb
23.11.13
86
.epf 17,05Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. Alister (Alister) 31.07.13 22:47
Первый коммент :)
Спасибо автору, получил клиента на 3.0, у которого нет даже завалящего материального отчета, а мой в УФ не работает конечно, вот эта статья помогла пока выкрутиться.
2. Владимир кренев (krenefff) 02.09.13 15:02
НЕ представляю что делать - конфы все нетиповые у клиентов. Визгу будет. Сижу уже сейчас в поте лица и готовлю 3.0.
Лишь бы не появилась какой -нибудь 3.1
3. Инна Суханова (in_nochka) 05.09.13 13:10
спасибо, теперь не так страшно. Клиенты все равно будут в шоке.
4. Serge Popoff (WildFire) 26.09.13 12:38
А что делать с доп. печатными формами? То же самое, что и с обработками? Но как их тогда подключать?
5. Serge Popoff (WildFire) 26.09.13 14:53
Ни у кого не вылезала следующая ошибка:
{ОбщийМодуль.ОбменСообщениямиВнутренний.Модуль(424)}: Ошибка при вызове метода контекста (ПолучитьОбъект)
ЭтаКонечнаяТочка = ЭтотУзел().ПолучитьОбъект();
?
6. Константин - (Kosstikk) 27.09.13 21:06
(5) WildFire, была такая ошибка, добавлял попытку/исключение. Не помню причину, но ЭтотУзел() возвращал Неопределено.

//2013-07-16 НАЧАЛО
Попытка
//2013-07-16 КОНЕЦ
Если ПустаяСтрока(КодЭтогоУзла()) Тогда

ЭтаКонечнаяТочка = ЭтотУзел().ПолучитьОбъект();
ЭтаКонечнаяТочка.Код = Строка(Новый УникальныйИдентификатор());
ЭтаКонечнаяТочка.Записать();

КонецЕсли;
//2013-07-16 НАЧАЛО
Исключение
КонецПопытки;
//2013-07-16 КОНЕЦ
7. Serge Popoff (WildFire) 30.09.13 09:26
Я кстати сделал то же самое, только еще добавил "Сообщить" в исключения, чтобы посмотреть, что там за фигня такая вылезает. Так вот, в строке сообщений не было ничего, даже самой панели сообщений не вылезло! 8-О то ли эта строка в УФ выглядит как-то иначе, то ли я чего-то не понимаю.
8. Елена Пименова (Bukaska) 09.10.13 11:00
(2) krenefff, Скоро появится,, токо для платформы 8.3, а не 8.2))) Но пока последнее не стоит на него кидаться))) Иначе все бетаТестерами будем)
9. Лейла Филгуд (Lejlka) 06.11.13 23:26
(8) Bukaska, Хотелось бы по-подробнее узнать про 3.1, где можно найти такую информация? А то может пока что не стоит сильно доработанные 2.0 на 3.0 переводить?
10. Елена Пименова (Bukaska) 07.11.13 00:01
(9) Lejlka, Дело в том, что если переводить на бух3.1, то и платформу ставить 8.3
Так что всё равно пока что на 2.0 или 3.0 придётся сидеть.. мы так всех будем переводить на треху.. у кого платформы 8.2 стоят)))
11. Екатерина * * (ekaterinaeon) 25.11.13 06:36
(9) Lejlka, бух 3.1? :D это не та ли что дурманила мозги прогерам лет так 14 назад? http://1c.ru/news/info.jsp?id=528

где вообще такая инфа появилась про новую бух 3.1?
12. Данил Новиков (danil157) 26.11.13 14:48
Добрый День! Не нашел информации по этому пункту в интернете. Ткните носом плиз.


5. Дополнительные отчеты/обработки.

Необходимо переделать для работы в управляемом приложении (примеры на инфостарте).
13. Елена Пименова (Bukaska) 26.11.13 14:53
(9) Lejlka, Думаю можно ещё подождать.. Тем более что 2.0 оставили поддержку.
зачем двойная нагрузка клиенту, сначала с 2.0 на 3.0, А ПОТОМ С 3.0 НА 3.1.. По сути и 3.0 недолго проживет.. в середине года 3.1 должна выйти.. она пока что ещё наверняка бетка.. доступная токо для партнеров.
ЗУП 3.х я уже видала.. бух 3.1 - пока что нет, но знаю что будет)))
14. Артём Шарипов (borodatii) 27.11.13 13:00
(13) Bukaska, скорее уж 4.0, чем 3.1 =)
15. Leo Po (webresurs) 30.11.13 20:34
Из-за чего может возникать такой глюк см фото?
Прикрепленные файлы:
16. Дмитрий Мухин (Maxion123) 02.12.13 09:50
(15) webresurs, возможно из-за разрешения экрана...
17. Константин - (Kosstikk) 02.12.13 11:52
(15) webresurs, размер текста и элементов в системе увеличен. В windows 7 эта настройка делается тут:
Прикрепленные файлы:
18. Leo Po (webresurs) 03.12.13 06:28
19. Алексей Гришков (asg1975) 10.12.13 21:55
(13) Bukaska, подскажите где подтвердить инфу о том, что поддержку 2.0 оставили?
21. Andrew Skotarev (Skotarev) 26.12.13 10:57
22. Andrew Skotarev (Skotarev) 26.12.13 10:58
23. Михаил Голубев (magolubev) 27.12.13 13:20
Даже страшно думать, как будем переходить на БП3. Много доработанных внешних форм, которые необходимо переделывать для УФ, некоторые изменения типового функционала...
24. Сергей Иванов (xten) 10.01.14 10:27
Подскажите, пожалуйста, у Вас в статье написано, как я понял, что при переходе с версии 2 на 3 , если БП 3 запускать в режиме Толстого клиента, то все обработки и отчеты из БП 2 сохранятся, кроме внешних. А если все внешние отчеты и обработки поместить непосредственно через Конфигуратор в ветвь метаданных, то из БП 3 через меню можно будет их открыть? Спасибо
25. Наталья (bahcha8) 30.01.14 16:58
Спасибо огромное, очень подробно описаны многие проблемы. Интересно было-бы узнать подводные камни при настройке обмена УТ10,3 - БП30. Правила конвертации и регистрации существуют, но наверняка необходимы определенные настройки.
26. Елена Ситникова (lesenoklenok) 10.02.14 12:43
Спасибо за информацию, переход на БП 3.0 перенесли на следующий год (2015) что дает время переписать все нужные отчеты и обработки.
27. Надежда (WEBBY) 10.02.14 22:45
В нашей организации РИБ и куча внешних обработок, поэтому переход мне снится в кошмарах. Пробовала на тестовой, итог -все обработки переделывать.....
28. Александр Злобин (elian) 28.04.14 14:38
И ни у кого не возникло ошибки "Неразрешимые ссылки" при обновлении?
29. Елена Пименова (Bukaska) 28.04.14 14:49
(28) elian, Ну дай бог одно предупреждение.. и усё
30. Елена Пименова (Bukaska) 28.04.14 14:50
(27) WEBBY, Конечно есть разница.. обычное приложение или управляемое приложение.. по любому переделывать)))
31. Алексей Ермилов (Alex_E) 28.04.14 14:51
(25) bahcha8, Самая главная проблема это, если уже был настроен обмен с БП 2.0, обеспечить синхронизацию справочников и документов при обмене. Для обмена с 3.0 в УТ 10.3 и БП 3.0 используется другой регистр соответствия объектов при обмене, и он будет пустым :-(
32. Сергей Иванов (1Service2) 08.12.14 19:10
Кстати, с 01.01.15 1С прекращает поддержку "1С:Бухгалтерии" версии 2.0.
Помогаем решить вопрос перевода с 2.0 на 3.0 с любой степенью доработки имеющейся у Вас конфигурации - http://www.1service.ru/news/perehod-buhgalterija-2_0-3_0.php
33. Алексей Ермилов (Alex_E) 08.12.14 19:16
(32) 1Service2,
Кстати, с 01.01.15 1С прекращает поддержку "1С:Бухгалтерии" версии 2.0.
- устарело...
35. Сергей Иванов (1Service2) 19.12.14 15:05
36. Алексей Ермилов (Alex_E) 19.12.14 15:51
(35) 1Service2, Не понял? Что не поздно?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа