Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Расширения: добавление реквизита

Если добавил в расширении реквизит, а потом однажды оно отвалилось, что с реквизитом на уровне таблиц БД? Не будет потери данных? Насколько это вообще беопасный маневр?
Ответ: Потери не будет, но пока не возобновишь работу расширения то никто не сможет в расширенный объект МД (куда ты там добавил реквизит - справочник или документ) записывать ничего
Вопрос: Расширение работы с файлами

Уделите минутку драгоценного времени!
Кончились идеи, нарыть ничего похожего не могу...
8.3.6.1517
Web
Конфигурация - когда-то была Торговля трехлетней давности...
Перед началом работы системы стартует предложение обновить Расширение работы с файлами.
Во всех модулях процедуры типа УстановитьРасширениеРаботыСФайлами и НачатьУстановкуРасширенияРаботыСФайлами отключены.
Тем не менее установка начинается перед началом работы системы.
Еще до аутентификации... поэтому отладчиком уловить не могу.
Какие темные силы вызывают эту процедуру?
Она у меня осталась только в модулях форм обработок и вызывается по нажатию кнопки..
Ответ: нет, это именно что делает 1ска... пытается скачать файл с сайта где она развернута. с любого компьютера и с любого браузера вызывается это обновление расширения. может я чего-то не знаю? может любая 1ска делает это по умолчанию в web клиенте?
Вопрос: Изменения работы Безопасного режима в 8.3.10

Добрый день.
После перехода с 8.3.9 на 8.3.10 по-другому ведет себя БезопасныйРежим в конфигурации. Есть объединенная конфигурация БП3 + УАТ 2.0.8.1, на которую навешаны расширения. После обновления форма документа Путевого листа зависает на открытии в защищенной функции (ЗФ) при создании на сервере. При этом в 8.3.9 она выполнялась успешно и очень быстро. Заметили особенность - в 8.3.9 функция БезопасныйРежим() перед вызовом процедуры из ЗФ возвращает Ложь. В 8.2.10 она возвращает Истина. Отключение Безопасного режима в расширении не помогло - БезопасныйРежим - истина. Но стоит удалить это расширение - БезопасныйРежим становится Ложь. Что же изменилось?
Ответ: Попробовали создать для бух документа расширение. Аналогичное поведение. Без расширения БезопасныйРежим() - Ложь, с расширением - Истина. Хотя на форме поменяли всего-лишь местами колонки...
Плюс нашли Расширение с формой документа для Заказ грузоотправителя, он проходит на ура (открывается без зависания на этой процедуре), хотя так же стоит БезопасныйРежим() - Истина...
Вопрос: Открыть форму объекта из расширения конфигурации

Добрый день!
Добавил расширение.
Добавил в расширение справочник "Контрагенты", хочу из формы расширения открыть форму из основной конфигурации. Открывается форма из расширения.

Код:
ОткрытьФорму("Справочник.Контрагенты.ФормаОбъекта", Новый Структура("Ключ", Объект.Ссылка), ЭтаФорма, УникальныйИдентификатор)
Как открыть нужную форму? Подскажите кто знает, плиз.
Ответ:
Почему-то очень уверен, что при заимствовании в расширение -- будет создана копия, а не "ссылка". Да, и кстати, форма расширения тоже нужна...
--- Объединение сообщений, 19 мар 2018 ---
32.5.3. Управляемая форма
После того, как форма добавлена в расширение, визуально она выглядит точно так, как эта же форма выглядит в расширяемой конфигурации в момент добавления ее в расширение. При этом модуль расширяющей формы пустой. В момент добавления конфигуратор «запоминает» добавляемую форму в расширении. В дальнейшем такая форма будет называться сохраненной. Расширяемая форма автоматически не синхронизируется с расширением. Как следствие, изменение расширяемой формы никак не отражается в расширяющей форме (в режиме Конфигуратора). В том случае, если прикладному разработчику необходимо обновить форму в расширении, ему следует использовать команду Расширения – Обновить расширение формы редактора формы. Обновление может потребоваться в том случае, если необходимо перенести в расширения изменения и дополнения, которые выполнены в расширяемой конфигурации после создания расширения формы.
Вопрос: Расширения. Где размещать описание?

Всем доброго дня.

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

Как документируют расширения многоуважаемые Мистчане?
Ответ: 1. Справочная информация есть у конкретных объектов.
А если расширение затрагивает несколько объектов?

2. По принципам использования расширений. Расширения используются для упрощения дальнейших обновлений. В "моей" картине мира это выглядит так:

====

2.1 данные ВСЕГДА  добавляются в конфигурацию. Расширение данных не хранит (за исключением тиражируемых решений). Для нетиражируемых решений - хранение данных в расширениях на текущий момент считаю ересью.

2.2 формы, которые вряд ли изменятся в типовой - допустимо поправить в расширении "мышкой"

2.2 формы, которые вероятно изменятся в типовой - желательно править в расширении кодом 

2.3 если функциональность хорошо обособляется - расширение предпочтительнее встроенного кода 

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

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

2.6 если предыдущаие пункты безумно увеличивают сложность - забываем про них и делаем как проще

2.7 если предыдущие пункты существенно меняют производительность - забываем про них и делаем как быстрее работает

===

По существу вопроса.
Пока у меня есть 2 пути
1) сделать общий текстовый макет ИмяРасширения_Описание
2) добавить комментарии в модуль приложения 

3) ????
Вопрос: Расширение vs Поставка для длительного сопровождения

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


Начал поддавшись моде прикидывать, что мне дают расширения:
1. Конфигурация остается на замке, скорость обновления раза в 2-3 выше, чем со снятым замком.
2. функции в режиме "после" или "перед" обновляются не глядя в модуль
3. ??? фантазия кончилась, а ситуации остались

А. Я менял форму, скажем добавлял туда пару кнопок. А 1С добавила вызов чего-нибудь (изменение формы без изменения данных)

В поставке я бы почитал сравнение объектов, поиграл в "найди 2 отличия" и что-нибудь собрал.

А с расширением что будет?
- отвалится
- останется, но новых кнопок "от 1С" не будет
- интеллектуально все объединит

Б. Я менял форму, скажем добавлял туда пару кнопок. А 1С добавила в объект реквизитов и вынесла их на форму
с расширением что будет?
- отвалится
- останется, но новых кнопок "от 1С" не будет
- интеллектуально все объединит

В. Я менял функцию модуля в режиме "вместо", 1С тоже поменяла эту функцию
с расширением что будет?
- отвалится
- останется, и функция будет работать не правильно (не зря же 1С ее меняли)


Ну и есть ли возможность трехстороннего обновления функций в режиме "вместо"? (ну как обычно, текущая 1С, новая 1С, мое расширение текущее и результат в мое расширение новое)

Так же приветствуются все точки зрения, как стоит использовать расширения, до которых я не дошёл в виду узости кругозора.
Ответ: () я не настоящий сварщик, но во всех последних версиях (8.3.8, 8.3.9, 8.3.10) механизм расширений активно колбасился и доделывался.
Вопрос: Расширения 1с. Форма обработки из расширения появляется только один раз или через раз

Нужно было в стандартной БП 3.0 (платформа 8.3.10), сделать изменения в обработке подбора номенклатуры. Нужно добавить еще одну колонку с ценой для сравнения двух цен.Так как все остальное-не меняется
я создал расширение , подключил в него форму обработки подбора номенклатуры, вставил в запрос динамического списка пустышку с полем Цена2, вытащил в расширение 3 модуля в которых идет определение типа цен и заполнения поля пустышки данными. На первый взгляд все в порядке, но при тестировании оказалось следующее: в момент вызова подбора-может открыться форма не расширения, а основной конфигурации -в ней поля "Цена2" нет. Причем если закрыть документ и открыть другой тип документа(вместо "Чек" открыть "Поступление товаров), в нем открыть подбор (откроется форма Основной конфигурации),затем снова открыть документ "Чек" -в нем откроется уже форма из расширения. Если форму подбора открыть- закрыть-снова открыть (не закрывая документа)-форма откроется та же что и в первый раз была (либо из расширения либо из основной конф.). Логики открытия той или иной формы вообще не вижу-как получится так и откроется. Пробовал изменять  свойства назаначения самого расширения("Адаптация", "Дополнение" или "Исправление")-первый раз после перезапуса открывается форма расширения-потом опять как захочет так и откроет. В модули , которые я перенес в расширения, отладчик заходит нормально-т.е. модули выполняются но форма отражается-как захочет(из расширения или из основной конфигурации).
Надеюсь понятно изложил проблему-может кто знает что это такое происходит?
Ответ: Все ,разобрался. Забыл еще одну процедуру в расширение перенести. Сам запрос динам. списка -поправил, процедуру заполнения динамич. списка поправил, а процедуру которая создает программно запрос динамич. списка -проглядел. Поэтому при смене реквизитов формы-не происходило корректное формирование списка номенклатуры.
Всем спасибо!
Вопрос: Расширение конфигурации: как перехватить событие модуля формы без её заимствования?

Пример: в типовой конфигурации есть документ РеализацияТоваровУслуг. Я хочу с помощью расширения в табличную часть Товары основной формы документа программно добавить колонку с остатками. Создал расширение, добавил (заимствовал) из типовой конфигурации форму документа и в модуль формы прописал такой код:


// перехватчики событий формы
&НаКлиенте
Процедура Расш1_ПриОткрытииПосле(Отказ)
    ЗаполнитьОстаткиНаСкладе();
КонецПроцедуры

&НаКлиенте
Процедура Расш1_ТоварыНоменклатураПриИзмененииПосле(Элемент)
    ЗаполнитьОстаткиНаСкладе();
КонецПроцедуры

&НаСервере
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
    
    // добавляем реквизит для колонки остатков

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

    НовыйЭлементФормы = Элементы.Добавить("ТоварыОстатки", Тип("ПолеФормы"), Элементы.Товары);             
    НовыйЭлементФормы.Вид = ВидПоляФормы.ПолеВвода; 
    НовыйЭлементФормы.ТолькоПросмотр = Истина;
    НовыйЭлементФормы.ПутьКДанным = "Объект.Товары.Остатки"; 

КонецПроцедуры


// вспомогательная процедура заполнения колонки остатков 

// используется запрос к соответствующему регистру накопления остатков

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

    // полный код не привожу, потому что суть вопроса сейчас не в этом

    
КонецПроцедуры

Расширение работает как нужно, колонка добавляется, остатки заполняются.

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

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

В общем, после каждого обновления типовой конфигурации я хочу всегда видеть новую форму документа, но с перехватчиками событий из старого расширения.
Возможно ли такое реализовать в принципе?
Ответ: + ()
>>Вот если изначально что-то делалось с типовой в конфигураторе и эту измененную заимствовали в расширение,

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

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

//
а нельзя же разные модули объекта написать, в каждом расширении свой?
т.е.расширение - это как бы не полноценная копия куска конфигурации, а только визуальная часть?
это верно?

Добавлено через 4 минуты
карочи вопрос в одну строчку получается.
разное содержание одного модуля в расширения не запихать?

Добавлено через 4 минуты
спс.
нашел ответ.
"
Можно изменять управляемые формы, существующие в типовой конфигурации;
Можно добавлять новые подсистемы. Можно изменять состав подсистем, имеющихся в типовой конфигурации;
Можно изменять роли типовой конфигурации, добавляя в них объекты, созданные в расширении;
Можно изменять командный интерфейс типовой конфигурации (основного раздела, подсистем);
Можно добавлять новые отчёты и обработки.
"
Вопрос: Расширение данных (8.3.11). Продолжаю «наблюдения»

Если почему-либо отключить расширение, то будут потеряны все данные, добавленные в расширение. Например, пока расширение приходится отключать при обновлении конфигурации. Проверял, как предотвратить их утрату.
1. Из расширенной конфигурации обработкой MD83Exp выгрузил метаданные и на них подготовил правила обмена только на дополнения (в моём случае это добавленные реквизиты в справочники, документы и табличные части, добавленные справочники и регистры сведений).
2. Перед обновлением конфигурации выгрузил добавленные данные по подготовленным правилам обмена, получил статистику.
3. Отключил расширение и вернул прежний режим совместимости (пока его приходилось устанавливать в «Не использовать»)
4. Обновил конфигурацию (в моём случае с БП 3.0.54.20 на 3.0.55.16). Установил режим совместимости в «Не использовать» и убрал из её модулей функции ПобитовоеНЕ и ПобитовоеИ (они предусмотрены уже в БСП).
5. Подключил расширение.
6. Загрузил данные, полученные в п.2. Получил по ним статистику после загрузки и сверил с той, которая была получена до отключения расширения. Всё совпало. (Статистику получал программой, работающей в обычном режиме).
Надеюсь, что 1С для сохранения и восстановления расширенных данных что-нибудь предложит.
Кроме того, проверил работоспособность Консоли запросов и Консоли СКД с ИТС. Консоль запросов не видит виртуальных таблиц периодических регистров сведений, а Консоль СКД их видит, но при запуске выдает ошибку об отсутствии такой таблицы. Подобная ошибка выдавалась и при выполнении запросов в расширении, о ней я сообщал 1С (зарегистрирована ошибка 10186928)
Ответ: Ошибка 10186928 в 8.3.11.2924 исправлена. Консоль запросов и Консоль СКД с виртуальными таблицами добавленных в расширение регистров сведений начали работать