Открытие управляемой формы 1С 8.3 с измененным несохраненным объектом

Публикация № 1263893

Разработка - Практика программирования

форма документ загрузка

Как загрузить в управляемую форму программно изменённый несохранённый документ (или элемент справочника).

В обработках часто встречается следующая логика: загрузить объект (документ или элемент справочника), изменить его программно в соответствие с логикой обработки, и открыть форму с получившимся документом пользователю, который может сохранить изменения, добавить свои либо отвергнуть изменения, вернуть «как было». В 1С8.3 (Управляемое приложение) осуществить данную логику оказалось неожиданно сложно.

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

В итоге (в частности по советам в обсуждениях) сделал несколько по-другому:

поместить данные объекта во временное хранилище,

ОткрытьФорму, в параметрах передать адрес во временном хранилище,

Изменения в код формы вносить пришлось: В форме, перед ПриЧтенииНаСервере (у меня - через расширение) загрузить данные объекта.

Такого в Сети не нашёл, поэтому выкладываю:

 

//в общем модуле
&НаСервереБезКонтекста
Функция СохранитьОбъектВХранилище(знач Док) Экспорт
	СтруктРеквизиты = Новый Структура;
	Мтд = Док.Метаданные();
	Для каждого Рекв из Мтд.Реквизиты цикл
		СтруктРеквизиты.Вставить(Рекв.Имя);
	КонецЦикла;
	Для каждого Рекв из Мтд.СтандартныеРеквизиты цикл
		СтруктРеквизиты.Вставить(Рекв.Имя);
	КонецЦикла;
	ЗаполнитьЗначенияСвойств(СтруктРеквизиты, Док);
	
	ДанныеДок = Новый Структура;
	ДанныеДок.Вставить("Реквизиты", СтруктРеквизиты);
	ТабЧ = Новый Структура;
	Для каждого Рекв из Мтд.ТабличныеЧасти цикл
		ТабЧ.Вставить(Рекв.Имя, Док[Рекв.Имя].Выгрузить());	
	КонецЦикла;
	ДанныеДок.Вставить("ТабличныеЧасти",ТабЧ);
	Возврат ПоместитьВоВременноеХранилище(ДанныеДок);
КонецФункции

Процедура ВзятьОбъектИзХранилища(Объект, знач Хран) Экспорт
	ДанныеДок = ПолучитьИзВременногоХранилища(Хран);
	Рекв = ДанныеДок.Реквизиты;
	ЗаполнитьЗначенияСвойств(Объект, Рекв);
	Для каждого Стр из ДанныеДок.ТабличныеЧасти Цикл
		Объект[Стр.Ключ].Загрузить(Стр.Значение);
	КонецЦикла;
КонецПроцедуры

//в расширении в форме объекта
&НаСервере
Процедура Расш1_ПриЧтенииНаСервереПеред(ТекущийОбъект)
	Если Параметры.Свойство("НесохраненныйДокумент") Тогда
		МойМодуль.ВзятьОбъектИзХранилища(Объект, Параметры.НесохраненныйДокумент);
		Модифицированность = Истина;
	КонецЕсли;
КонецПроцедуры

//в обработке
&НаСервереБезКонтекста
Функция ОформитьНаСервере(Ссылка)
	Док = Ссылка.ПолучитьОбъект();
	//Изменить документ
	//в соответствие с логикой обработки
	Возврат МойМодуль.СохранитьОбъектВХранилище(Док);
КонецФункции

&НаКлиенте
Процедура ВашеНазвание(Команда)
	//...
	ИзмДок = ОформитьНаСервере(Ссылка);
	П = Новый Структура;
	П.Вставить("НесохраненныйДокумент", ИзмДок);
	П.Вставить("Ключ", Ссылка);
	Форма = ОткрытьФорму("Документ.ВАШДОКУМЕНТ.ФормаОбъекта", П );
	//если справочник - аналогично
КонецПроцедуры

Ну и сходная чуть другая задача - открыть несохранённый вновь созданный документ. Его загружать в форму можно аналогично, в событии формы ПриСозданииНаСервере, но, по-моему, лучше через Обработку заполнения объекта:

//в расширении в модуле объекта
&Вместо("ОбработкаЗаполнения")
Процедура Расш1_ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
	Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") 
			И ДанныеЗаполнения.Свойство("НесохраненныйДокумент") Тогда
		МойМодуль.ВзятьОбъектИзХранилища(ЭтотОбъект, Параметры.НесохраненныйДокумент);
	Иначе
		ПродолжитьВызов(ДанныеЗаполнения, СтандартнаяОбработка);
	КонецЕсли;
КонецПроцедуры

//в обработке
&НаСервереБезКонтекста
Функция ОформитьНаСервере()
	Док = Документы.ВАШДОКУМЕНТ.СоздатьДокумент();
	//Изменить документ
	//в соответствие с логикой обработки
	Возврат МойМодуль.СохранитьОбъектВХранилище(Док);
КонецФункции

&НаКлиенте
Процедура ВашеНазвание(Команда)
	//...
	ИзмДок = ОформитьНаСервере(Ссылка);
	ЗЗ = Новый Структура;
	ЗЗ.Вставить("НесохраненныйДокумент", ИзмДок);
	П = Новый Структура;
	П.Вставить("ЗначенияЗаполнения",ЗЗ);
	Форма = ОткрытьФорму("Документ.ВАШДОКУМЕНТ.ФормаОбъекта", П );
	//если справочник - аналогично
КонецПроцедуры

 

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. ltfriend 515 13.07.20 22:39 Сейчас в теме
Так и не понял, чем такой вариант не устроил?
Изменение документа
&НаКлиенте
Процедура ИзменитьДокументИОткрыть(ДокументСсылка)
	
	ПараметрыФормы = Новый Структура("Ключ", ДокументСсылка);
	ФормаДокумента = ПолучитьФорму("Документ.ПриобретениеТоваровУслуг.ФормаОбъекта", ПараметрыФормы);
	
	ОбъектФормы = ФормаДокумента.Объект;
	
	ИзменитьДокументНаСервере(ОбъектФормы);
	
	КопироватьДанныеФормы(ОбъектФормы, ФормаДокумента.Объект);
	
	ФормаДокумента.Открыть();
	
КонецПроцедуры

&НаСервере
Процедура ИзменитьДокументНаСервере(ОбъектФормы)
	
	// Изменяем нужны нам реквизиты.
	ОбъектФормы.Согласован = Истина;
	ОбъектФормы.Комментарий = "#Документ изменен программно";
	// ... и т.д.
	
КонецПроцедуры
Показать


Создание нового документа
&НаКлиенте
Процедура СоздатьДокументИОткрыть()
	
	ФормаДокумента = ПолучитьФорму("Документ.ПриобретениеТоваровУслуг.ФормаОбъекта");
	
	ОбъектФормы = ФормаДокумента.Объект;
	
	ЗаполнитьНовыйДокументНаСервере(ОбъектФормы);
	
	КопироватьДанныеФормы(ОбъектФормы, ФормаДокумента.Объект);
	
	ФормаДокумента.Открыть();
	
КонецПроцедуры 

&НаСервере
Процедура ЗаполнитьНовыйДокументНаСервере(ОбъектФормы)
	
	// Заполняем реквизиты документа.
	ОбъектФормы.Дата = ТекущаяДата();
	ОбъектФормы.Комментарий = "#Документ создан программно";
	//ОбъектФормы.Организация = ...
	//ОбъектФормы.Склад = ...
	//... и т. д.
	
КонецПроцедуры
Показать

Сколько пользуюсь данным методом, проблем ни когда не было.
Dzenn; bulpi; Gorus; vvp117; plainer; +5 Ответить
2. plainer 15 14.07.20 14:23 Сейчас в теме
(1) Проверил, в моём случае работает, в большинстве других, думаю, тоже. И, несомненно, проще.
Тонкость, как я понял, в том, что здесь на сервере вы работаете с ОбъектФормы типа ДанныеФормыСтруктура, который хотя и дублирует по свойствам ДокументОбъект, но не полностью и не по методам. Поэтому если в обработке где-то требуется именно ДокументОбъект, то там будет ошибка.
(Например, у меня первоначально выдало ошибку на
Если ОбъектФормы.Модифицированность()
правда оно в моей обработке и не особо нужно)

УПД. Сейчас проверил внимательней. В вашем варианте у меня в форме не переустанавливается по умолчанию видимость одной из страниц (табличных частей).
8. soulner 141 24.07.20 16:58 Сейчас в теме
Единственно верным способом создать объект (справочник, документ и т.д.) и открыть его форму, является использование обработчика заполнения.
(1) так не правильно, потому, что обработчик формы ПриСозданииНаСервере оперирует пустым объектом, а потом вы перезаполняете объект, а форма уже создана и видимость элементов установлена. Попробуйте свой метод на сложной форме из тиражного решения и убедитесь насколько всё плохо.
Правильно будет создать структуру для заполнения и открыть форму передав в неё параметр ЗначениеЗаполнения с вашей структурой. Тогда будет создан объект, заполнен, как надо и уже из него создана и открыта форма с адекватной настройкой элементов.
10. ltfriend 515 25.07.20 10:04 Сейчас в теме
(8) То, что нужно заполнять документ в обработчике заполнения - это и так понятно. Но это в идеале. А что, если нужно, например, из внешней обработки создать типовой документ, находящийся на поддержке и реквизиты, которые не заполняются в обработчике? Единственное, что я не упомянул, то, что при таком способе заполнения документа необходимо самостоятельно заполнять и реквизиты самой формы (т.е. продублировать код ПриСоздании/ЧтенииНаСервере). Тогда всё корректно работает и со сложными формами.
В идеале да, нужно создавать как-то так:
ЗначенияЗаполнения = Новый Структура;
ЗначенияЗаполнения.Вставить("Организация", НашаОрганизация);
ЗначенияЗаполнения.Вставить("Склад", ГлавныйСклад);
ПараметрыФормы = Новый Структура("ЗначенияЗаполнения", ЗначенияЗаполнения);
ОткрытьФорму("Документы.НашДокумент.Форма.ФормаДокумента", ПараметрыФормы);

Но так не заполнить реквизиты, у которых не установлен флаг "Заполнять из данных заполнения". Без модификации документа не обойтись.
9. Dzenn 409 24.07.20 18:37 Сейчас в теме
(1) спасибо, добрый человек :-) Сколько программирую в 1С и в управляемых формах, а тут пробел был :-)
3. Hla 64 16.07.20 09:15 Сейчас в теме
Добрый день! А можно в этом куске
//в обработке
&НаСервереБезКонтекста
Функция ОформитьНаСервере(Ссылка)
	Док = Ссылка.ПолучитьОбъект();
	//Изменить документ
	//в соответствие с логикой обработки
	Возврат МойМодуль.СохранитьОбъектВХранилище(Док);
КонецФункции

добавить код, как изменить строки в одной из табличных частей.
6. plainer 15 16.07.20 16:52 Сейчас в теме
(3) Табличные части? Как обычно:
//в обработке
&НаСервереБезКонтекста
Функция ОформитьНаСервере(Ссылка)
	Док = Ссылка.ПолучитьОбъект();
	//Изменить документ
	//в соответствие с логикой обработки
	//Ну, к примеру
	Для каждого Стр из Док.Товары цикл
		Стр.Количество = Стр.Количество *2;
	КонецЦикла;

	НоваяСтрока = Док.Товары.Добавить;
	СтараяСтрока = Док.Товары[ВзятыйОткудатоНомерСтроки -1];
	ЗаполнитьЗначениеСвойств(НоваяСтрока, СтараяСтрока);
	НоваяСтрока.Количество = 1;
	СтараяСтрока.Количество = СтараяСтрока.Количество -1;

	Док.Товары.Удалить(ЕщеКакойтоНомерСтроки);
	//и т. п.
Возврат МойМодуль.СохранитьОбъектВХранилище(Док);
КонецФункции
Показать
4. Hla 64 16.07.20 09:52 Сейчас в теме
Сделала проверку во все ли добавленные функции и процедуры попадаю. Оказывается в
&НаСервере
Процедура Расш1_ПриЧтенииНаСервереПеред(ТекущийОбъект)
	Если Параметры.Свойство("НесохраненныйДокумент") Тогда
		МойМодуль.ВзятьОбъектИзХранилища(Объект, Параметры.НесохраненныйДокумент);
		Модифицированность = Истина;
	КонецЕсли;
КонецПроцедуры
сюда не попадаю. Можно в картинках показать как вы добавили это в расширение. Прикладываю свой скрин.
Прикрепленные файлы:
5. plainer 15 16.07.20 15:59 Сейчас в теме
(4) В зависимости от выбора на 2-й картинке у вас будет или 4я, или 5я. И далее вставить туда текст.
Прикрепленные файлы:
7. Hla 64 17.07.20 06:14 Сейчас в теме
11. German_Tagil 20 27.07.20 07:02 Сейчас в теме
Жаль - недели две назад делал запуск отчета из формы документа и запись данных из отчета
в документ - одним из вариантов была мысль о хранилище но не пошло...
сделал по другому
Но в заметки себе поставил - тема интересная ....
Оставьте свое сообщение

См. также

Использование программных перечислений, ч.1: строковые константы Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    36821    unichkin    46    

Использование флажков в динамических списках

Практика программирования Работа с интерфейсом v8::УФ Бесплатно (free)

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

04.08.2020    1855    nekit_rdx    22    

Использование ПоказатьВопрос() в событии НачалоВыбора()

Практика программирования v8 v8::УФ Бесплатно (free)

На ИТС описано, как избегать использования модальности в событиях ПередЗаписью() и ПередЗакрытием() (можно ознакомиться по ссылке http://its.1c.ru/docs/v8nonmodal/). А что делать, если нужно задать вопрос пользователю в событии НачалоВыбора(). В данной статье приведу пример реализации с использованием асинхронного вызова ПоказатьВопрос(). Статья предназначена в основном для начинающих программистов, недавно столкнувшихся с управляемыми формами.

20.07.2020    1248    biimmap    2    

Серверные вызовы, которые нельзя вызывать

Практика программирования v8 v8::УФ 1cv8.cf Бесплатно (free)

Не баян, а классика. Рассмотрим особенность платформы настолько же древнюю, как сами УФ.

12.05.2020    5742    SeiOkami    28    

Вспомогательные инструкции в коде 1С Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    29347    tormozit    100    

Форма выбора (подбор) в управляемых формах

Практика программирования v8 v8::УФ 1cv8.cf Россия Бесплатно (free)

Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.

08.05.2020    13897    user5300    15    

Как ограничить поля отбора в динамическом списке и ничего не сломать

Практика программирования v8::УФ 1cv8.cf Бесплатно (free)

С чем разработчик может столкнуться при попытке установки ограничений в динамическом списке.

06.05.2020    4328    SeiOkami    3    

5 шагов по изменению резервирования товаров в УТ 11.4

Оптовая торговля Практика программирования v8::ОУ v8::УФ УТ11 Россия УУ Бесплатно (free)

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

19.03.2020    4382    Igorro82IT    16    

Оформление и рефакторинг сложных логических выражений Промо

Практика программирования v8 Россия Бесплатно (free)

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

20.09.2012    77227    tormozit    131    

Об обновлениях

Практика программирования v8 v8::УФ Бесплатно (free)

Рассматриваются вопросы комментирования доработок стандартных конфигураций, необходимых для облегчения работы при обновлении конфигурации.

12.02.2020    2544    ipoloskov    27    

Детектор завершения согласования для 1С: Документооборот КОРП

Практика программирования Документооборот и делопроизводство v8::УФ ДО УУ Бесплатно (free)

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

04.02.2020    2859    shiaju    3    

Программная работа с настройками СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

27.01.2020    22299    ids79    26    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

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

11.07.2007    47522    tormozit    40    

Как вывести итоговый вес и объем на форму документа Заказ клиента. УТ 11.4

Практика программирования v8::УФ УТ11 Россия УУ Бесплатно (free)

Всем привет, долго ломал голову, но с помощью тыка и подсказок более опытных программистов, вот что мне удалось достичь и как это я сделал. Открываем конфигуратор - заходим в Документы-Заказ-Клиенту-Формы-ФормаДокумента, все будем делать только здесь, снизу формы две вкладки, в общем сама форма и модуль (как открыть, смотри рисунок - открыть форму).

16.01.2020    3616    VID1234    4    

[СКД] Программное создание схемы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020    20764    John_d    22    

Как работают управляемые формы и тонкий клиент 1С – взгляд "из-под капота"

Практика программирования Инструментарий разработчика v8::УФ Бесплатно (free)

Переход на управляемые формы перевернул процесс разработки на 1С, заставив программистов менять привычные подходы к описанию логики работы интерфейса. Руководитель компании «Цифровой Кот» Юрий Лазаренко в своем докладе на конференции Infostart Event 2019 Inception рассказал о том, как устроены управляемые формы и как правильно работать с тонким клиентом платформы 1С:Предприятие.

23.12.2019    12095    TitanLuchs    23    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017    43888    tormozit    74    

Изменение макета в карточке номенклатуры(УТ 11, КА 2)

Практика программирования Работа с интерфейсом v8::УФ ERP2 УТ11 КА2 Бесплатно (free)

Краткая памятка по выведению добавленного реквизита в справочнике Номенклатура в стандартную карточку номенклатуры в УТ 11, КА 2, ERP 2.

24.10.2019    4262    darkultro37    4    

Таблица значений. Нюансы

Практика программирования v8 Бесплатно (free)

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019    30400    Yashazz    50    

СКД. Отчеты с картинками

Практика программирования Работа с интерфейсом v8::СКД 1cv8.cf Бесплатно (free)

Решение популярных кейсов с картинками в отчетах на СКД.

25.09.2019    19484    YPermitin    35    

Выгрузка документа по условию Промо

Практика программирования Разработка v8 Бесплатно (free)

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

25.04.2019    15862    m-rv    2    

"Вы всё сломали!". Разбираемся, кто прав, кто виноват

Практика программирования v8::УФ ИТ-компания Россия Бесплатно (free)

О том, как "всё испортил" программист, а на самом деле виноват заказчик.

20.09.2019    5886    RomanCrow13    27    

Оповещения боту из 1С за 31 минуту

Практика программирования Интеграция v8::УФ 1cv8.cf Бесплатно (free)

Поделюсь опытом, как быстро сделать бота с оповещениями в Телеграмм из 1С без лишних затрат.

18.09.2019    16653    feva    39    

[Шпаргалка] Программное создание элементов формы

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Программное создание практически всех популярных элементов формы.

06.09.2019    44062    rpgshnik    63    

Как прикрутить ГУИД к регистру сведений Промо

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 Бесплатно (free)

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

16.04.2019    19880    m-rv    17    

Агрегатные функции СКД, о которых мало кто знает

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    45605    ids79    54    

EnterpriseData – часть 3. Загрузка данных, идентификация объектов

Практика программирования Математика и алгоритмы Перенос данных из 1C8 в 1C8 Разработка v8 v8::УФ 1cv8.cf Бесплатно (free)

Основные этапы загрузки данных через EnterpriseData. Идентификация объектов загружаемых полностью и по ссылке. Приведены схемы процессов загрузки данных. Описание основных операций и обработчиков. Перечень процедур БСП, используемых при загрузке данных, структура «КомпонентыОбмена».

22.08.2019    14349    ids79    8    

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    72681    ids79    49    

Как сделать запрос на изменение данных Промо

Практика программирования v8 v8::Запросы 1cv8.cf Бесплатно (free)

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    30014    m-rv    21    

Кодовое создание документа на 8.3, управляемые формы (на примере)

Практика программирования Разработка v8::УФ 1cv8.cf Бесплатно (free)

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

07.08.2019    5747    Nefilimus    16    

"Меньше копипаста!", или как Вася универсальную процедуру писал

Практика программирования Разработка v8 v8::СКД 1cv8.cf Бесплатно (free)

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    19308    SeiOkami    50    

Создание отчетов с помощью СКД - основные понятия и элементы

Практика программирования Математика и алгоритмы v8 v8::СКД Бесплатно (free)

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    49093    ids79    25    

Метод формирования движений в типовых регистрах нетиповыми регистраторами Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

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

05.12.2017    28001    itriot11    34    

Вставка гиперссылки в форматированный документ

Практика программирования Разработка v8::УФ Бесплатно (free)

Да, форматированный документ это умеет и сам, но возможности можно расширить!

03.06.2019    6168    Yashazz    0    

Добавление внешних отчетов / обработок в собственные подсистемы

Практика программирования Разработка v8::УФ Россия Бесплатно (free)

Краткая инструкция по добавлению функционала доп обработок/отчетов в собственную подсистему.

24.05.2019    9859    login1020    7    

Расшифровка отчета на СКД с детализацией по выбранному полю на основе БСП

Практика программирования Работа с интерфейсом Разработка v8 v8::УФ v8::СКД 1cv8.cf Россия Бесплатно (free)

В данной статье рассмотрим механизм работы с расшифровкой отчета, созданного при помощи системы компоновки данных, в управляемом приложении. Показывать буду на примере реальной задачи. Условие: использовать имеющиеся в конфигурации механизмы БСП, с минимальными и "правильными" изменениями. Расшифровка должны быть двух видов на каждом поле: 1. Открывать ссылочный объект 2. Открывать новую форму с детализацией табличной части документа. Собственно ради второго пункта и писалась статья, в основном для себя, чтобы не забыть.

14.05.2019    18677    Viktor_Ermakov    8    

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    75541    Serginio    108    

Оперативная доработка отчетов без обновления конфигурации или расширения

Практика программирования Разработка v8::УФ 1cv8.cf Россия Бесплатно (free)

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

12.05.2019    4521    samvani    0    

Автоматизация печатной формы (автоформирование табличного документа на основе любой таблицы значений)

Практика программирования Разработка v8 v8::УФ 1cv8.cf Бесплатно (free)

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

18.04.2019    3603    NeSPEC    0    

Этюды по программированию. Хитрости создания расширений для конфигураций на БСП. Часть 2

Практика программирования Разработка v8::УФ Бесплатно (free)

Некоторые нюансы, если вы захотите создавать свои расширения. Продолжение первой части.

16.04.2019    10924    milkers    9    

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С Промо

Математика и алгоритмы Практика программирования v8 v8::blocking 1cv8.cf Бесплатно (free)

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    33756    ids79    40    

О расширениях замолвите слово...

Практика программирования Разработка v8 Бесплатно (free)

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    34343    ellavs    126    

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

Практика программирования v8 Бесплатно (free)

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    26604    ellavs    88    

Выбор периода на управляемой форме почти как на обычных формах

Практика программирования Разработка v8 v8::УФ 1cv8.cf Бесплатно (free)

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

26.03.2019    8102    independ    8    

Тестер: частые вопросы Промо

Практика программирования v8 Бесплатно (free)

Ошибкам бой - тесты норма жизни!

25.07.2018    28897    grumagargler    28    

Доработка проведения типовых документов в УТ 11.4, КА 2.4, ЕРП 2.4

Практика программирования Универсальные функции Разработка v8 v8::УФ ERP2 УТ11 КА2 Россия УУ Бесплатно (free)

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

22.03.2019    17280    ids79    16    

Иерархия групп и элементов в форме списка справочника как в проводнике. УФ

Практика программирования Разработка v8 v8::УФ 1cv8.cf Россия Бесплатно (free)

Если в форме списке надо выводить группы и элементы в разных таблицах, так как, например, в проводнике - слева группы, справа элементы, то для тех кто не знал или забыл, представлена инструкция, как это сделать.

20.03.2019    11158    rebuzx    12    

Добавление отчетов в типовые конфигурации 1С

Практика программирования Универсальные функции БСП (Библиотека стандартных подсистем) v8::УФ v8::СКД 1cv8.cf Бесплатно (free)

Описание различных способов добавления общих и контекстных отчетов в конфигурации 1С, построенные на базе БСП. Основные моменты и нюансы.

07.03.2019    51100    ids79    45    

Ускоряем 1С: модули с повторным использованием возвращаемых значений Промо

Практика программирования v8 Бесплатно (free)

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

04.09.2017    51834    m-rv    61    

Программное изменение управляемых форм

Практика программирования Разработка v8::УФ Бесплатно (free)

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

05.03.2019    9500    user759624    10    

Функциональные опции 1С 8.3 – все возможные варианты использования

Практика программирования Разработка v8::УФ 1cv8.cf Бесплатно (free)

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

22.02.2019    32772    ids79    14