Главное правило программирования 1С:
если Объект не работает, удалить Объект и создать заново.
В постах автор приводит вырезки из кода, поэтому Copy-Paste в 1С:Конфигуратор не всегда работает. Предварительно надо определить необходимые переменные и т.д.
Данные посты сделаны в виде заметок, они охватывают моменты, которые, по моему мнению, слабо описаны в документации и вызвали некоторую потерю времени на поиски.
Управляемые Формы:
- на клиенте доступны только данные форм в универсальных структурах;
- на сервере доступны данные БД и есть возможность преобразования этих данных в универсальные структуры форм;
- управлять элементами форм можно и на клиенте и на сервере.
Дополнительные преобразования:
- Форма -> Объект прикладного типа - ДанныеФормыВЗначение / РеквизитФормыВЗначение("ИмяРеквизита");
- Объект прикладного типа -> Форма - ЗначениеВДанныеФормы(Знач, "Объект") / ЗначениеВРеквизитФормы(Знач, "ИмяРеквизита");
Типы данных Управляемой формы:
- ДанныеФормыСтруктура;
- ДанныеФормыКоллекция;
- ДанныеФормыДерево;
- ДанныеФормыСтруктураСКоллекцией.
Сохранение/восстановление переменной в форме документа пользователя
&НаСервере
Процедура СохрНастр(имя,зн)
УстановитьПривилегированныйРежим(Истина);
ХранилищеОбщихНастроек.Сохранить("РасходнаяНакладная",
имя,
зн,
,
Строка(ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор) );
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
&НаСервере
Функция ВостНаст(имя)
УстановитьПривилегированныйРежим(Истина);
зн = ХранилищеОбщихНастроек.Загрузить("РасходнаяНакладная",
Имя,
,
Строка(ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор) );
УстановитьПривилегированныйРежим(Ложь);
Возврат зн;
КонецФункции
&НаКлиенте
Процедура сохр(Команда)
СохрНастр("Имя1",123);
Сообщить(ВостНаст("Имя1"));
КонецПроцедуры
Документ Сторнирование (идея взята из УПП 1.3)
Создать документ Сторнирование по записям в любом регистре и любого документа. Данный пример сторнирует регистры Накопления.
1.Создать Документы.Сторнирование:
Движения -> Проведение = Запрещено;
Добавить сторнируемые регистры; Данные -> Сторнируемый Документ.
2.Код в МодулеОбъекта:
Функция ПринКлассуМД(Класс,Объект)
Для каждого мдОб Из Метаданные[Класс] Цикл
Если мдОб = Объект Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецФункции
Процедура ЗаполнитьЗаписьСторно(дв, сДВ, рег)
Для каждого мдОб Из рег.Измерения Цикл
дв[мдОб.Имя] = сДВ[мдОб.Имя];
КонецЦикла;
Для каждого мдОб Из рег.Ресурсы Цикл
дв[мдОб.Имя] = -сДВ[мдОб.Имя];
КонецЦикла;
Для каждого мдОб Из рег.Реквизиты Цикл
дв[мдОб.Имя] = сДВ[мдОб.Имя];
КонецЦикла;
КонецПроцедуры
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СторнируемыйДокумент.Ссылка
|ИЗ
| Документ."+СторнируемыйДокумент.Метаданные().Имя+" КАК СторнируемыйДокумент
|ГДЕ
| СторнируемыйДокумент.Ссылка = &Ссылка
| И СторнируемыйДокумент.МоментВремени < &МоментВремени";
Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
Запрос.УстановитьПараметр("Ссылка", СторнируемыйДокумент);
Если Запрос.Выполнить().Пустой() Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Несторнируемый документ!";
Сообщение.Сообщить();
отказ = Истина;
Возврат;
КонецЕсли;
Для каждого сРег Из СторнируемыйДокумент.Метаданные().Движения Цикл
Если Не Метаданные().Движения.Содержит(сРег) Тогда
Продолжить;
КонецЕсли;
этоРР = Ложь; этоРН = Ложь; этоРБ = Ложь;
Если ПринКлассуМД("РегистрыРасчета",сРег) Тогда
этоРР = Истина;
нз = РегистрыРасчета[сРег.Имя].СоздатьНаборЗаписей();
ИначеЕсли ПринКлассуМД("РегистрыНакопления",сРег) Тогда
этоРН = Истина;
нз = РегистрыНакопления[сРег.Имя].СоздатьНаборЗаписей();
ИначеЕсли ПринКлассуМД("РегистрыБухгалтерии",сРег) Тогда
этоРБ = Истина;
нз = РегистрыБухгалтерии[сРег.Имя].СоздатьНаборЗаписей();
КонецЕсли;
нз.Отбор.Регистратор.Значение = СторнируемыйДокумент;
нз.Прочитать();
Для каждого сДВ Из нз Цикл
дв = Движения[сРег.Имя].Добавить();
ЗаполнитьЗаписьСторно(дв,сДВ,сРег);
Если этоРН Тогда
дв.Период = Дата;
Если сРег.ВидРегистра = Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки Тогда
дв.ВидДвижения = сДВ.ВидДвижения;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Запись в РегистрСведений
Записать одну запись в РегистрСведений.Штрихкоды Конфигурация УТ 10.3
1-й Способ
зап = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
2-й Способ
нб = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();
нб.Отбор.Штрихкод.Установить(шк);
нб.Отбор.Владелец.Установить(нмСсылка);
нб.Отбор.ЕдиницаИзмерения.Установить(еиСсылка);
нб.Отбор.ТипШтрихкода.Установить(вшкСсылка);
нб.Отбор.Качество.Установить(качествоТовара);
зап = нб.Добавить();
Далее общий код:
зап.Штрихкод = шк;
зап.Владелец = нмСсылка;
зап.ЕдиницаИзмерения = еиСсылка;
зап.ТипШтрихкода = вшкСсылка;
зап.Качество = качествоТовара;
зап.ПредставлениеШтрихкода = шк;
Попытка
зап.Записать();
Исключение
КонецПопытки;
Easy OS Tricks & Programs
- How to automatically logon to Windows 7 - run netplwiz or control userpasswords2 (Advanced User Accounts)
- slmgr /rearm - restart Widows 7 test period
- msconfig- Microsoft configuration utility
- winrs /? - remote windows administration in cmd
- mmc devmgmt.msc - to start Device Manager
- Windows codecs
- If you want more people to visit your website
- Monitor your bandwidth from the Linux shell (bmon nload speedometer)
- GNU 'make'
- .dmrc - initialization file. (cat >> ./.dmrc <EOT export LANG=en_US.UTF-8 EOT)
- http://www.w3schools.com/
- IptablesHowTo
- Help Desk Software HESK - a free PHP help desk
- Accounting & Business Software | Free Web-Based NolaPro
- ImageMagick: Convert, Edit, Or Compose Bitmap Images
- Inkscape
- Qt Creator
- HTML Editors
- HTML Debugging https://getfirebug.com/
- «Горячие» клавиши в «1С:Предприятии 8» или Конфигуратор: Содержание справки (Shift-F1) - Сочетания клавиш (Конфигуратор)
- Making Ubuntu Server A Mac Time Capsule