Эту и другие технические статьи написали наши программисты 1С и получили за них премии. Если вы тоже работаете с 1С и любите делиться опытом, приходите разработчиком в Neti →

 

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

Еще 7 лайфхаков 1С

 

Кнопка перехода к движениям документа из формы списка

Чтобы на форму списка добавить кнопку перехода к движениям документа это можно сделать без единой строки кода – добавляем подменю “Перейти” и перетаскиваем на него глобальную команду перехода к движениям нужного регистра:

Еще 7 лайфхаков 1С

 

Как открыть обработку на обычных формах в режиме управляемого приложения

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

Чтобы иметь возможность запустить её, нужно сначала настроить конфигурацию: Сервис – Параметры – ставим галку “Управляемое приложение и обычное приложение”. Затем ставим галку в свойствах корня конфигурации “Использовать обычные формы в управляемом приложении”:

Еще 7 лайфхаков 1С

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

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

 

Как при нажатии F5 (запуск отладки) открывать по умолчанию толстый клиент

В Конфигураторе в меню «Сервис» выбираем пункт «Параметры» и в открывшейся форме на закладке Запуск 1С: Предприятия выбираем вариант «Толстый клиент (управляемое приложение)» или другой удобный вариант запуска:

Еще 7 лайфхаков 1С

 

Полезные клавиши и их сочетания

CTRL+T – находясь в модуле какого-то объекта найти его в дереве метаданных

CTRL+Shift+T – открыть окно шаблонов текста

F12 – открыть выделенную процедуру/функцию

CTRL+ – (минус) – вернуться на предыдущий шаг (когда мы проходимся отладчиком переходя всё глубже и глубже в процедуры, эта команда позволяет возвращаться назад)

CTRL+Alt+M – открыть строку поиска в дереве метаданных конфигурации

CTRL+Enter – открыть окно свойств объекта

CTRL+Alt+I – открыть строку поиска в окне свойств

CTRL+F3 – находясь в коде эта команда помещает текущее слово в строку поиска

 

Почему письма, формируемые из 1С отображаются красиво в Mail.ru почте, но в Яндекс и Google почте нет

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

При обычной вёрстке объявляется блок CSS в котором описываются классы и стили, затем в дальнейшем коде HTML мы используем эти классы.

Методом решения проблемы является использование inline верстки при которой мы вводим параметры стиля прямо в каждый блок, в котором нужно модифицировать стиль.

Пример обычной верстки:

<style type="text/css">
   h1 {font-size:24px}
   em {color:red}
</style>

 

Пример inline верстки:

<p style=""color: #606163; font-weight: bold; font-size: 150%;"">ТЕКСТ</p>

 

Также желательно объявлять в письме корректные начало и конец HTML:

<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN"">
<html xmlns=""http://www.w3.org/1999/xhtml"">
<head>
            <meta http-equiv=""Content-Type"" content=""text/html; charset=UTF-8"" />
            <title>Заголовок письма</title>
            <meta name=""viewport"" content=""width=device-width, initial-scale=1.0""/>
</head>
<body>
            Вашкод
</body>
</html>

 

Как облегчить обновление нетиповой конфигурации с управляемыми формами

Одно из самых сложных в этой ситуации – если обновилась форма, которую вы изменяли. Поэтому рекомендуется не вносить никаких изменениях на форму с помощью визуальных средств, а делать это с помощью кода. Код всегда можно сравнить с типовым и легко его перенести. В модуле формы в процедуре «ПриСозданииНаСервере» мы вызываем процедуру создания наших полей:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	СоздатьПоляНаСервере();
//… (остальной код процедуры)
КонецПроцедуры

 

А в самой процедуре добавляем новые поля:

&НаСервере
Процедура СоздатьПоляНаСервере()
 // Изменим оформление типовой группы чтобы ничего не плыло на форме	
 Элементы.ГруппаШапка.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда;
	 Элементы.ГруппаШапкаЛевая.Объединенная = Истина;
	 Элементы.ГруппаШапкаПравая.Объединенная = Истина;
	
// Добавляем поле "Способ доставки" на форму
	элСпособДоставки = Элементы.Добавить("СпособДоставки", Тип("ПолеФормы"), Элементы.ГруппаШапкаЛевая);
	элСпособДоставки.Вид = ВидПоляФормы.ПолеВвода;
	элСпособДоставки.ПутьКДанным = "Объект.СпособДоставки";
	
// Добавляем колонку "Срок поставки" в существующую таблицу "Товары" перед колонкой «Процент скидки»
	КолонкаСрокПоставки = Элементы.Добавить("ТоварыСрокПоставки", Тип("ПолеФормы"), Элементы.Товары);
	КолонкаСрокПоставки.Вид = ВидПоляФормы.ПолеВвода;
	КолонкаСрокПоставки.ПутьКДанным = "Объект.Товары.СрокПоставки";
	КолонкаСрокПоставки.Заголовок = "Срок поставки";
	Элементы.Переместить(КолонкаСрокПоставки, Элементы.Товары, Элементы.ТоварыПроцентСкидки);
 
 // Добавляем группу для новой таблицы "Покупатели"
	 ГруппаШапкаПокупатели = Элементы.Добавить("ГруппаШапкаПокупатели", Тип("ГруппаФормы"), Элементы.ГруппаШапка);
	 ГруппаШапкаПокупатели.Заголовок = "Покупатели";
	 ГруппаШапкаПокупатели.Вид = ВидГруппыФормы.ОбычнаяГруппа;
	 ГруппаШапкаПокупатели.ОтображатьЗаголовок = Истина;
	 ГруппаШапкаПокупатели.Объединенная = Истина;
	 
 // Добавляем новую таблицу "Покупатели"
	 ТабПокупатели = Элементы.Добавить("Покупатели", Тип("ТаблицаФормы"), ГруппаШапкаПокупатели);
	 ТабПокупатели.ПутьКДанным = "Объект.Покупатели";
	 
 // Добавляем в новую таблицу "Покупатели" колонку «Номенклатура» и назначаем ей обработчики событий
	 КолонкаНоменклатура = Элементы.Добавить("ПокупателиНоменклатура", Тип("ПолеФормы"), ТабПокупатели);
	 КолонкаНоменклатура.Вид = ВидПоляФормы.ПолеВвода;
	 КолонкаНоменклатура.ПутьКДанным = "Объект.Покупатели.Номенклатура";
	 КолонкаНоменклатура.УстановитьДействие("НачалоВыбора", "ПокупателиНоменклатураНачалоВыбора");
	 КолонкаНоменклатура.УстановитьДействие("ОбработкаВыбора", "ПокупателиНоменклатураОбработкаВыбора");
	 
// Добавляем в таблицу "Покупатели" колонку «Количество»
	 КолонкаКоличество = Элементы.Добавить("ПокупателиКоличество", Тип("ПолеФормы"), ТабПокупатели);
	 КолонкаКоличество.Вид = ВидПоляФормы.ПолеВвода;
	 КолонкаКоличество.Заголовок = "Кол-во";
	 КолонкаКоличество.Ширина = 5;
	 КолонкаКоличество.ПутьКДанным = "Объект.Покупатели.Количество";
	 
// Добавляем в таблицу "Покупатели" колонку «Контрагент»
	 КолонкаКонтрагент = Элементы.Добавить("ПокупателиКонтрагент", Тип("ПолеФормы"), ТабПокупатели);
	 КолонкаКонтрагент.Вид = ВидПоляФормы.ПолеВвода;
	 КолонкаКонтрагент.ПутьКДанным = "Объект.Покупатели.Контрагент";
КонецПроцедуры

Также полезным будет изменение запроса динамического списка программно:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ИзменитьЗапросСписка();
//… (остальной код процедуры)
КонецПроцедуры

&НаСервере
Процедура ИзменитьЗапросСписка()
	Список.ТекстЗапроса = "ВЫБРАТЬ …";
КонецПроцедуры

 

Как понять типовая конфигурация или нет и что именно в ней было изменено?

Начнём с того что, во-первых, нужно проверить включена ли возможность изменения конфигурации – переходим в меню «Конфигурация» – «Поддержка» – «Настройка поддержки» и смотрим активна ли кнопка «Включить возможность изменения»:

Еще 7 лайфхаков 1С

Если кнопка активна, вероятнее всего это полностью типовая конфигурация.

Теперь проверим были ли изменены какие-либо объекты по сравнению с типовой конфигурацией. Для этого в 1С есть чудесное средство как сравнение конфигурации с конфигурацией поставщика.

Возьмем типовую 1С: Бухгалтерию и немного модифицируем её (добавим новый документ, общий модуль, модифицируем одну форму и добавим пару реквизитов). Затем сравним её с типовой выбрав в качестве второй конфигурации «Конфигурация поставщика»:

Еще 7 лайфхаков 1С

После нажатия «ОК» и немного подождав, результаты сравнения выйдут на экран:

Еще 7 лайфхаков 1С

Затем если нажать правой кнопкой по корню конфигурации и выбрать «Отчет о сравнении объектов…», можно сформировать подробный отчёт. Проставим все галки, выберем вариант «Подробно» и «Показывать различия графически», затем нажмём «Ок»:

Еще 7 лайфхаков 1С

После чего увидим сформированный табличный документ со всеми изменениями конфигурации:

Еще 7 лайфхаков 1С

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