1С:Предприятие 8
784 subscribers
46 photos
159 videos
51 links
🔥 Разработка в 1С — просто и понятно! 🔥

Полезные фишки и лайфхаки для разработчиков
Объяснение сложных тем простыми словами
Готовые решения, сниппеты и примеры кода
Разбор ошибок и способов их устранения
Новости и тренды в мире 1С
Download Telegram
Объекты 1С. Часть 1

№1. Вводный
№2. Метаданные
№3. Менеджер объекта
№4. Объекты метаданных 1С. Справочник
№5. Ссылка
№6. Объекты метаданных 1С. Документ
№7. Объекты метаданных 1С. Табличная часть
№8. Объекты метаданных 1С. Константы
№9. Объекты метаданных 1С. Перечисления
№10. Предопределённые элементы справочников

источник

👉@DevLab1C
🔥3👍1
Объекты 1С. Часть 2

№11. Подчинённые справочники
№12. Иерархические справочники
№13. Обработки
№14. Выборка
№15. Удаление и установка пометки удаления
№16. Журнал документов
№17. План видов характеристик
№18. Отчёты
№19. Внешние отчеты и обработки
№20. Регистры накопления

источник

👉@DevLab1C
👍3🔥1
Как получить размер (разрешение) экрана


Узнать программно размер экрана в 1С 8.3 (вариант №1):
&НаКлиенте
Функция ПолучитьРазмерЭкранаОпционально()

ИнфоЭкрана = ПолучитьИнформациюЭкрановКлиента(); // с 8.3.2; результат - фикс.массив объектов

ДПИ = ИнфоЭкрана[0].DPI;
ВысотаЭкрана = Формат(ИнфоЭкрана[0].Высота, "ЧГ=");
ШиринаЭкрана = Формат(ИнфоЭкрана[0].Ширина, "ЧГ=");
//Сообщить(СтрШаблон("Разрешение: %1x%2", ШиринаЭкрана, ВысотаЭкрана));

РазрешениеЭкрана = Новый Структура("ШиринаЭкрана,ВысотаЭкрана,ДПИ",
ИнфоЭкрана[0].Ширина,ИнфоЭкрана[0].Высота,ИнфоЭкрана[0].DPI);

Возврат РазрешениеЭкрана;

КонецФункции


Узнать программно размер экрана в 1С 8.3 (вариант №2):
&НаКлиенте
Функция ПолучитьРазмерЭкранаЧерезКом()

БраузерИЕ = Новый COMОбъект("InternetExplorer.Application");
БраузерИЕ.FullScreen = -1;

ВысотаЭкрана = Формат(БраузерИЕ.Height, "ЧГ=");
ШиринаЭкрана = Формат(БраузерИЕ.Width, "ЧГ=");
//Сообщить(СтрШаблон("Разрешение: %1x%2", ШиринаЭкрана, ВысотаЭкрана));

РазрешениеЭкрана = Новый Структура("ШиринаЭкрана, ВысотаЭкрана",
БраузерИЕ.Width, БраузерИЕ.Height);

Возврат РазрешениеЭкрана;

КонецФункции



Узнать ориентацию экрана в 1С 8.3:


&НаКлиенте
Функция ПолучитьОриентациюЭкрана(ШиринаЭкрана, ВысотаЭкрана)

ОриентацияЭкрана="";
Если ВысотаЭкрана > ШиринаЭкрана Тогда
ОриентацияЭкрана="Портрет";
Иначе
ОриентацияЭкрана="Ландшафт";
КонецЕсли;

//Если ОриентацияЭкрана="Портрет" Тогда
// АвтоПоворотЭкрана(ШиринаЭкрана, ВысотаЭкрана);
//КонецЕсли;

Возврат ОриентацияЭкрана;

КонецФункции


👉@DevLab1C
👍2🔥2
Как отключить предупреждение: Это копия информационной базы в 1С 8.3


Функция ОтключениеОбработчика() Экспорт

// Для регламентных заданий:
// бывает, что надо даже в копии запускать регламентные,
// но если не надо, что бы они отработали, то можно отключать так:

//Условие...
Если БлокировкаРаботыСВнешнимиРесурсами.РаботаСВнешнимиРесурсамиЗаблокирована() = Истина Тогда
//Заблокируем выполнение обработки
//Возврат;
КонецЕсли;

КонецФункции

Функция РаботаСВнешнимиРесурсамиЗаблокирована() Экспорт

Возврат ПараметрыСеанса.РаботаСВнешнимиРесурсамиЗаблокирована;

КонецФункции


👉@DevLab1C
🔥4👍2
Media is too big
VIEW IN TELEGRAM
Делаем табло заказов в обозревателе из 1Ски с нуля за полчаса.Без бутстрапов, регистрации и СМС.

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

источник

👉@DevLab1C
👍4
Как создать Zip архив с файлами в 1С 8.3


&НаКлиенте
Процедура СоздаемZipАрхивСФайлами()

// Создаем zip-архив
ИмяАрхФайла="D:\AvtoArhiv\Doc31032020.zip";//Путь к архиву и имя
// Особенность: Архивировать средствами 1С можно даже запущенную информационную базу 1С
ПарольАрхФайла=""; // если нужно - можно задать пароль на архив
КоммАрхФайла="Архив документов создан 31/03/2020 из 1С 8.3"; // комментарий к архиву

ФайлАрхива = Новый ЗаписьZipФайла(ИмяАрхФайла, ПарольАрхФайла, КоммАрхФайла,
МетодСжатияZIP.Сжатие, УровеньСжатияZIP.Оптимальный, МетодШифрованияZIP.Zip20);

// Добавляем файл в zip-архив
ФайлАрхива.Добавить("D:\MyDocuments\ПланНа2020.docx"); // путь к файлу который добавляем в архив

// Или добавляем несколько файлов в zip-архив по маске
ФайлАрхива.Добавить("D:\MyDocuments\*.xlsx"); // указываем маску к файлам

// Или если нужно в архив добавить файлы не только из корневой папки ("D:\MyDocuments\"),
// но и из подпапок ("D:\MyDocuments\Balans2019\","D:\MyDocuments\Balans2020\",...)
// где есть файлы c расширением *.xlsx. Нужно использовать параметры (режимы):
ФайлАрхива.Добавить("D:\MyDocuments\*.xlsx",
РежимСохраненияПутейZIP.СохранятьОтносительныеПути,
РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);

// Записываем созданный архив на диск компьютера
ФайлАрхива.Записать();

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


👉@DevLab1C
👍2🔥2
Как распаковать Zip архив в 1С 8.3


&НаКлиенте
Процедура РаспаковываемZipАрхив()

// Распаковываем Doc31032020.zip в папку "D:\AvtoArhiv\"
ФайлАрхива = Новый ЧтениеZipФайла("D:\AvtoArhiv\Doc31032020.zip",""); // путь, пароль к архиву

// Сообщим комментарий к архиву
Сообщить(ФайлАрхива.Комментарий);

РежимВосстПутейФайлов=РежимВосстановленияПутейФайловZIP.Восстанавливать;
// Распаковываем все файлы в D:\MyDocuments\Out
ФайлАрхива.ИзвлечьВсе("D:\MyDocuments\Out", РежимВосстПутейФайлов); // (путь, восстанавливать каталоги)

// Или распаковываем файлы по одиночке.
Для Каждого Элемент Из ФайлАрхива.Элементы Цикл

Сообщить("... разархивирую..."+Элемент.ПолноеИмя);
//(Элемент, Путь, ВосстанавливатьКаталоги, Пароль)
ФайлАрхива.Извлечь(Элемент,"D:\MyDocuments\Out", РежимВосстПутейФайлов,"");

КонецЦикла;

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


👉@DevLab1C
👍2🔥1
Чтение файла в формате XML по порядку (способ №1) в 1С 8.3


//Подходит для файлов более 100Mb
&НаСервере
Процедура ПрочитатьФайлXMLПоПорядкуСпособ1(ПутьКФайлу)

XML = Новый ЧтениеXML;
XML.ОткрытьФайл(ПутьКФайлу);

Пока XML.Прочитать() Цикл

Если XML.ТипУзла = ТипУзлаXML.НачалоЭлемента И XML.Имя = "Ресторан" Тогда

Название = XML.ЗначениеАтрибута("Название");
Если Название <> Неопределено Тогда
Сообщить("Название ресторана:" + Название);
КонецЕсли;

Категория = XML.ЗначениеАтрибута("Категория");
Если Категория <> Неопределено Тогда
Сообщить("...наценочная категория ресторана: " + Категория);
КонецЕсли;

Счет = XML.ЗначениеАтрибута("Счет");
Если Счет <> Неопределено Тогда
Сообщить("...средний счет ресторана: " + Счет);
КонецЕсли;

Кухня = XML.ЗначениеАтрибута("Кухня");
Если Кухня <> Неопределено Тогда
Сообщить("...кухня ресторана: " + Кухня);
КонецЕсли;

Пока XML.Прочитать() Цикл// <Ресторан>

Если XML.ТипУзла = ТипУзлаXML.НачалоЭлемента И XML.Имя = "Меню" Тогда
Сообщить("Меню:");

Пока XML.Прочитать() Цикл// <Меню>
Если XML.ТипУзла = ТипУзлаXML.НачалоЭлемента И XML.Имя = "Блюдо" Тогда
Название = XML.ЗначениеАтрибута("Название");
Если Название <> Неопределено Тогда
Сообщить("...название блюда:" + Название);
КонецЕсли;
ИначеЕсли XML.ТипУзла = ТипУзлаXML.КонецЭлемента И XML.Имя = "Меню" Тогда
Прервать;
КонецЕсли;
КонецЦикла;//

ИначеЕсли XML.ТипУзла = ТипУзлаXML.НачалоЭлемента И XML.Имя = "Описание" Тогда

XML.Прочитать();
Если XML.ТипУзла = ТипУзлаXML.Текст Тогда
Сообщить("Описание:" + XML.Значение);
КонецЕсли;

ИначеЕсли XML.ТипУзла = ТипУзлаXML.КонецЭлемента И XML.Имя = "Ресторан" Тогда

Прервать;

КонецЕсли;

КонецЦикла;//

КонецЕсли;

КонецЦикла;

XML.Закрыть();

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



👉@DevLab1C
🔥3👍2