Начало внедрения БСП в новую конфигурацию

Программирование - Практика программирования

Библиотека стандартных подсистем 2.4.4.80 БСП 2.4.4.80 внедрение Первое внедрение БСП

7
Начало внедрения БСП 2.4.4.80. Первые "проблемы" и пути их решения. !!! UPD !!! Как подсказывают более умные коллеги в комментариях: необходимо использовать чистую конфигурацию БСП, которую можно найти в каталоге шаблонов конфигураций!!!

Добрый день, коллеги.

Возникла необходимость разработать свою конфигурацию. И, для упрощения жизни себе, и соблюдения каких-никаких, но стандартов решил начать с внедрения БСП 2.4.4.80.

Хочу поделиться своими первыми вопросами и их решением.

Вначале я попробовал использовать обработку "ПервоеВнедрениеБСП.epf".

Как и положено, я выбрал нужные мне подсистемы и сохранил настройки для конфигуратора:

В конфигураторе сравнил свою (пустую) конфигурацию с конфигурацией БСП.

Установил данные настройки.

Закомментировал модули управляемого приложения и сеанса - чтобы просто запустить окно и перейти к шагу 3 данной обработки:

Запустил... Мягко говоря, ошибок было очень и очень много.

Тогда я решил перенести все подсистемы, а ненужные постепенно выкинуть.

Залез в туже обработку, установил все флажки и думаю: "должно быть все Ок"

Но, не тут-то было. Было куча ошибок на то, что нет общих модулей. Т.е. подсистемы то он вроде как должен был перенести, но для обмена он не поотмечал кучу общих модулей. И хоть сами подсистемы мне особо не нужны, он их мало того, что не перенес ко мне, так еще и не удалил их на третьем шаге - ведь я отметил, что мне нужна эта подсистема.

Тогда я полез в конфигуратор и начал объединять вручную.

Выбрал пункт "Действия...->Отметить по подсистемам файла".

И снова выбрал все подсистемы:

Но тут я решил глазами пробежаться проверить - все ли он мне отметил. Наученный уже)

Хочу обратить ваше внимание - не поленитесь так сделать. Я нашел несколько "лишних" объектов, которые были отмечены к объединение с префиксом "_Демо". Так же были не отмечены некоторые обработки, которые мне были интересны на начальном этапе - их я тоже отметил.

После объединения (Напомню, это шаг 2 обработки) переходим к шагу 3.

И вот тут я столкнулся с тем, что у меня ничего не работает. И ругается он на отстутствие объектов с префиксами "_Демо".

Полез в код и нашел кучу вызовов наподобие:

// _Демо начало примера
     _ДемоСтандартныеПодсистемы.ПриОпределенииОбщихПараметровБазовойФункциональности(ОбщиеПараметры);
// _Демо конец примера

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

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

Для этого надо вставить буквально пару строк кода. Функция "СписокПодсистемДляУдаления" примет вид (добавленные строки выделены комментариями):

&НаСервере
Функция СписокПодсистемДляУдаления();
	
	СписокПодсистем = Подсистемы.Выгрузить(, "Имя").ВыгрузитьКолонку("Имя");
	СписокИспользуемыхПодсистем = СписокИспользуемыхПодсистем();
	
	ПодсистемыДляУдаления = Новый Массив;
	Для Каждого ИмяПодсистемы Из СписокПодсистем Цикл
		Если СписокИспользуемыхПодсистем.Найти(ИмяПодсистемы) = Неопределено Тогда 
			ПодсистемыДляУдаления.Добавить("СтандартныеПодсистемы." + ИмяПодсистемы);
		КонецЕсли;
	КонецЦикла;
	
	//Kim
	//BeginingChange
	ПодсистемыДляУдаления.Добавить("_Демо");
	//EndChange
	
	Возврат ПодсистемыДляУдаления;
	
КонецФункции

И в процедуре "Процедура ВырезатьФрагментыПодсистемыВТексте" примет следующий вид:

&НаСервере
Процедура ВырезатьФрагментыПодсистемыВТексте(ИмяФайлаМодуля, ИмяПодсистемы, СтрокаТекста, ЧислоЗамен, Ошибки)
	
	НачалоФрагмента = НайтиНачалоФрагмента(СтрокаТекста, ИмяПодсистемы);
	Пока НачалоФрагмента > 0 Цикл
		
		ПозицияКонцаФрагмента = НайтиКонецФрагмента(СтрокаТекста, ИмяПодсистемы);
		Если ПозицияКонцаФрагмента = 0 Тогда
			ТекстСообщения = НСтр("ru = '[ИмяФайлаМодуля]: для открывающей скобки [НачалоФрагмента] не обнаружена закрывающая скобка.'");
			ТекстСообщения = СтрЗаменить(ТекстСообщения, "[НачалоФрагмента]", "// " + ИмяПодсистемы);
			ТекстСообщения = СтрЗаменить(ТекстСообщения, "[ИмяФайлаМодуля]", ИмяФайлаМодуля);
			ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение,,, ТекстСообщения);
			Ошибки = Ошибки + Символы.ПС + ТекстСообщения;
			Возврат;
		КонецЕсли; 				
		
		Если ПозицияКонцаФрагмента < НачалоФрагмента Тогда
			ТекстСообщения = НСтр("ru = '[ИмяФайлаМодуля]: для открывающей скобки [НачалоФрагмента] закрывающая скобка расположена выше по тексту.'");
			ТекстСообщения = СтрЗаменить(ТекстСообщения, "[НачалоФрагмента]", "// " + ИмяПодсистемы);
			ТекстСообщения = СтрЗаменить(ТекстСообщения, "[ИмяФайлаМодуля]", ИмяФайлаМодуля);
			ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение,,, ТекстСообщения);
			Ошибки = Ошибки + Символы.ПС + ТекстСообщения;
			Возврат;
		КонецЕсли; 	

		ДлинаНачалаФрагмента = СтрДлина("// " + ИмяПодсистемы);
		ПромежуточнаяСтрока = Сред(СтрокаТекста, НачалоФрагмента + ДлинаНачалаФрагмента + 1, ПозицияКонцаФрагмента - (НачалоФрагмента + ДлинаНачалаФрагмента) + 1);
		Если НайтиНачалоФрагмента(ПромежуточнаяСтрока, ИмяПодсистемы) > 0 Тогда 
			ТекстСообщения = НСтр("ru = '[ИмяФайлаМодуля]: внутри открывающейся скобки [НачалоФрагмента] есть еще одна открывающаяся скобка, до закрывающейся.'");
			ТекстСообщения = СтрЗаменить(ТекстСообщения, "[НачалоФрагмента]", "// " + ИмяПодсистемы);
			ТекстСообщения = СтрЗаменить(ТекстСообщения, "[ИмяФайлаМодуля]", ИмяФайлаМодуля);
			ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение,,, ТекстСообщения);
			Ошибки = Ошибки + Символы.ПС + ТекстСообщения;
			Возврат;
		КонецЕсли;	
		
		ПозицияПоследнегоСимвола = ПозицияКонцаФрагмента + СтрДлина("// Конец " + ИмяПодсистемы);
		//Kim
		//BeginingChange
		Если ИмяПодсистемы = "_Демо" Тогда
			ПозицияПоследнегоСимвола = ПозицияКонцаФрагмента + СтрДлина("// Конец " + ИмяПодсистемы + " примера");
		КонецЕсли;
		//EndChange
		ВырезатьФрагмент(СтрокаТекста, НачалоФрагмента - 1, ПозицияПоследнегоСимвола);
		ЧислоЗамен = ЧислоЗамен + 1;
		
		НачалоФрагмента = НайтиНачалоФрагмента(СтрокаТекста, ИмяПодсистемы);
		
	КонецЦикла;
	
КонецПроцедуры

Далее можно раскомментировать модули управляемого приложения и сеансов и начать внедрение подсистем по инструкции с сайта its.1c.ru.

Буду описывать, если возникнут еще интересные проблемы и как я их решил.

P.S. Прикрепил отредактированную обработку для БСП 2.4.4.80

7

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

Наименование Файл Версия Размер
Первое внедрение БСП 2.4.4.80
.epf 24,90Kb
24.11.17
8
.epf 1.0.1 24,90Kb 8 Скачать

См. также

Лучшие комментарии
1. unichkin 1023 24.11.17 18:10 Сейчас в теме
cf надо использовать тот который в поставке, а не выгруженный из БСП
ImHunter; Bukaska; logarifm; Borey; zeegin; Nigelist; nytlenc; Kim1C; +8 Ответить
Остальные комментарии
Избранное Подписка Сортировка: Древо
1. unichkin 1023 24.11.17 18:10 Сейчас в теме
cf надо использовать тот который в поставке, а не выгруженный из БСП
ImHunter; Bukaska; logarifm; Borey; zeegin; Nigelist; nytlenc; Kim1C; +8 Ответить
2. nicxxx 192 25.11.17 19:13 Сейчас в теме
Что-то ты не то делал. Я тоже через "ПервоеВнедрениеБСП" начал внедрять и у меня все нормально прошло, без ошибок.
3. Kim1C 58 25.11.17 19:57 Сейчас в теме
(2)Да, я уже понял это. Роман подсказал и я нашел чистую конфигурацию. Отрицательный опыт - тоже опыт)
4. zeegin 29 07.12.17 11:58 Сейчас в теме
Сколько времени потрачено только из-за того, что не догадался, что надо сравнение объединение делать не с поставкой демо базы: 1Cv8_demo.cf а с поставкой БСП: 1Cv8.cf.

Если понимаешь что делаешь, то с "ПервоеВнедрениеБСП" создание новой базы занимает минут 5 от силы)

Читай документацию:
2. Выбрать файл 1Cv8.cf из поставки БСП.
https://its.1c.ru/db/bsp244doc#content:14:hdoc
5. Kim1C 58 07.12.17 13:57 Сейчас в теме
(4)Да, время было потрачено. Я не могу сказать, что зря. Все, кто что-то делает, совершают ошибки. Возможно, благодаря моей ошибке кто-то научится и не совершит ее. И, к тому же, я теперь действительно внимательнее читаю документацию)
Спасибо за ваше мнение и ваше время, которое вы потратили прочтя о моем опыте
6. zeegin 29 03.03.18 11:11 Сейчас в теме
(5) См. помощник внедрения в 3.0.1 https://releases.1c.ru/version_files?nick=SSL30&ver=3.0.1.53
Не благодари, твой опыт пошел на пользу ;)
7. logarifm 1015 17.05.18 20:23 Сейчас в теме
Прежде чем учить людей и писать статьи на этот ресурс - разберитесь с концепцией до конца. О и ГЛАВНОЕ БСП - это не метод научного тыка. А к ней еще предоставляется очень мощная документация по всем разделам внедрения.

На сегодняшний день это верси БСП 3. https://its.1c.ru/db/bsp301doc
8. ураниум 6 06.07.18 11:45 Сейчас в теме
Конфигурация.МодульВнешнегоСоединения.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
Обработка.ПанельАдминистрированияБСП.Форма.НастройкиПользователейИПрав.Форма.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
Обработка.ПанельАдминистрированияБСП.Форма.СинхронизацияДанных.Форма.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
Обработка.ПроверкаБСППередСборкой.Форма.Форма.Форма.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль._ДемоСтандартныеПодсистемы.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.БизнесПроцессыИЗадачиПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ВариантыОтчетовПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ВерсионированиеОбъектовПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ВзаимодействияКлиентСерверПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ВзаимодействияПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ГрупповоеИзменениеОбъектовПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ДатыЗапретаИзмененияПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ДополнительныеОтчетыИОбработкиКлиентПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ДополнительныеОтчетыИОбработкиПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ЗагрузкаДанныхИзФайлаПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ЗаполнениеОбъектовПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ЗапретРедактированияРеквизитовОбъектовПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ЗащитаПерсональныхДанныхПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.КонтрольВеденияУчетаПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.НастройкиПрограммыПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ОбменДаннымиПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ОбменСообщениямиПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ОбновлениеИнформационнойБазыКлиентПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ОбщегоНазначенияКлиентПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ОбщегоНазначенияПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ОтправкаSMSКлиентПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ОтправкаSMSПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ОтчетыКлиентПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ОтчетыПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ПодключаемыеКомандыПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ПодсистемыКонфигурацииПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ПоискИУдалениеДублейПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ПолнотекстовыйПоискСерверПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ПользователиПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ПользователиСлужебный.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ПрефиксацияОбъектовПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ПрефиксацияОбъектовСобытия.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.РаботаВМоделиСервисаПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.РаботаСПочтовымиСообщениямиПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.РаботаСФайламиПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.РассылкаОтчетовПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.СтруктураПодчиненностиПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ТекущиеДелаПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.УправлениеДоступомПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.УправлениеДоступомСлужебныйПовтИсп.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.УправлениеПечатьюПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.УправлениеСвойствамиПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ЦентрМониторингаПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ШаблоныСообщенийПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ЭлектроннаяПодписьКлиентПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
ОбщийМодуль.ЭлектроннаяПодписьПереопределяемый.Модуль.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
Отчет.ЗависимостиПодсистем.МодульОбъекта.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
Справочник.НаборыДополнительныхРеквизитовИСведений.МодульМенеджера.txt: для открывающей скобки // _Демо не обнаружена закрывающая скобка.
9. ураниум 6 06.07.18 11:52 Сейчас в теме
пробую обработку запустить в демоБСП))
Оставьте свое сообщение