Переключение между редактором формы и текстом модуля, без помощи мыши
Для управляемых форм Alt+1 (форма) и Alt+2 (модуль). Для обычных форм Ctrl+PageDown и Ctrl+PageUp вперед и назад по вкладкам.
Читать далееАвтоматизация бизнес-процессов
Для управляемых форм Alt+1 (форма) и Alt+2 (модуль). Для обычных форм Ctrl+PageDown и Ctrl+PageUp вперед и назад по вкладкам.
Читать далееФункция из БСП:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Функция УдалитьЛидирующиеНулиИзНомераОбъекта(Знач НомерОбъекта) Экспорт ПользовательскийПрефикс = ПользовательскийПрефикс(НомерОбъекта); Если НомерСодержитСтандартныйПрефикс(НомерОбъекта) Тогда Если НомерСодержитПятизначныйПрефикс(НомерОбъекта) Тогда Префикс = Лев(НомерОбъекта, 5); Номер = Сред(НомерОбъекта, 6 + СтрДлина(ПользовательскийПрефикс)); Иначе Префикс = Лев(НомерОбъекта, 3); Номер = Сред(НомерОбъекта, 4 + СтрДлина(ПользовательскийПрефикс)); КонецЕсли; Иначе Префикс = ""; Номер = Сред(НомерОбъекта, 1 + СтрДлина(ПользовательскийПрефикс)); КонецЕсли; // Удаляем лидирующие нули слева в номере. Номер = СтроковыеФункцииКлиентСервер.УдалитьПовторяющиесяСимволы(Номер, "0"); Возврат Префикс + ПользовательскийПрефикс + Номер; КонецФункции |
И VBScript.RegExp:
Читать далееСправочно: синхронные методы (их аналоги асинхронные вызовы) в 1С 8.3: Глобальный контекст: ВвестиДату() → ПоказатьВводДаты() ВвестиЗначение() → ПоказатьВводЗначения() ВвестиСтроку() → ПоказатьВводСтроки() ВвестиЧисло() → ПоказатьВводЧисла() Вопрос() → ПоказатьВопрос() ЗапроситьРазрешениеПользователя() → НачатьЗапросРазрешенияПользователя() ЗапуститьПриложение() → НачатьЗапускПриложения() КаталогВременныхФайлов() → НачатьПолучениеКаталогаВременныхФайлов() КаталогДокументов() → НачатьПолучениеКаталогаДокументов() КопироватьФайл() → НачатьКопированиеФайла() НайтиФайлы() → НачатьПоискФайлов() ОткрытьЗначение() → ПоказатьЗначение() ОткрытьФормуМодально() → ОткрытьФорму() ПереместитьФайл() → НачатьПеремещениеФайла() ПодключитьРасширениеРаботыСКриптографией() → НачатьПодключениеРасширенияРаботыСКриптографией() ПодключитьРасширениеРаботыСФайлами() → НачатьПодключениеРасширенияРаботыСФайлами() ПолучитьФайлы() → НачатьПолучениеФайлов() ПоместитьФайл() → НачатьПомещениеФайла() ПоместитьФайлы() → НачатьПомещениеФайлов() Предупреждение() → ПоказатьПредупреждение() РабочийКаталогДанныхПользователя() → НачатьПолучениеРабочегоКаталогаДанныхПользователя() СоздатьКаталог() → НачатьСозданиеКаталога() УстановитьВнешнююКомпоненту() → НачатьУстановкуВнешнейКомпоненты() УстановитьРасширениеРаботыСКриптографией() → НачатьУстановкуРасширенияРаботыСКриптографией() УстановитьРасширениеРаботыСФайлами() → НачатьУстановкуРасширенияРаботыСФайлами()
Читать далееПеревести строку с заголовками (CSV) в массив из структур
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Функция ПреобразоватьCSVвМассив(CSV) Разделитель = Символы.Таб; ЗаголовкиCSV = СокрЛП(СтрПолучитьСтроку(CSV,1)); DATA = Новый Массив; Для НомерСтроки=2 По СтрЧислоСтрок(CSV) Цикл Строка = СтрПолучитьСтроку(CSV, НомерСтроки); МассивПодстрок = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Строка, Разделитель, Ложь, ); Структура = Новый Структура(СтрЗаменить(ЗаголовкиCSV, Разделитель, ",")); Инд = 0; Для Каждого КлючЗначение Из Структура Цикл Структура[КлючЗначение.Ключ] = МассивПодстрок[Инд]; Инд = Инд+1; КонецЦикла; DATA.Добавить(Структура); КонецЦикла; Возврат DATA; КонецФункции |
Читать далее
Обработать html для форматированного документа. Обрабатывает текст HTML для помещения в форматированный документ.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
// Обрабатывает текст HTML для помещения в форматированный документ. // Процедура ОбработатьHTMLДляФорматированногоДокумента(ПараметрыШаблона, СформированноеСообщение, ПреобразовыватьHTMLДляФорматированногоДокумента, СписокФайлов = Неопределено) Экспорт Если ПустаяСтрока(СформированноеСообщение.Текст) Тогда Возврат; КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда МодульРаботаСФайлами = ОбщегоНазначения.ОбщийМодуль("РаботаСФайлами"); Если СписокФайлов = Неопределено Тогда СписокФайлов = Новый Массив; МодульРаботаСФайлами.ЗаполнитьПрисоединенныеФайлыКОбъекту(ПараметрыШаблона.Шаблон, СписокФайлов); КонецЕсли; ДокументHTML = ПолучитьОбъектДокументHTMLИзТекстаHTML(СформированноеСообщение.Текст); Для каждого Картинка Из ДокументHTML.Картинки Цикл АтрибутИсточникКартинки = Картинка.Атрибуты.ПолучитьИменованныйЭлемент("src"); ДополнительныеПараметры = Новый Структура; ДополнительныеПараметры.Вставить("ИдентификаторФормы", ПараметрыШаблона.УникальныйИдентификатор); ДополнительныеПараметры.Вставить("ВызыватьИсключение", Ложь); ИзображениеОтсутствуетВПрисоединенныхФайлах = Истина; Для Каждого ПрисоединенныйФайл Из СписокФайлов Цикл Если СтрЧислоВхождений(АтрибутИсточникКартинки.Значение, ПрисоединенныйФайл.ИДФайлаЭлектронногоПисьма) > 0 Тогда ДанныеФайла = МодульРаботаСФайлами.ДанныеФайла(ПрисоединенныйФайл.Ссылка, ДополнительныеПараметры); ОбработатьКартинкуВТекстеHTMLДляФорматированногоДокумента(Картинка, ДанныеФайла, СформированноеСообщение, АтрибутИсточникКартинки, ПрисоединенныйФайл.Наименование, ПрисоединенныйФайл.ИДФайлаЭлектронногоПисьма); ИзображениеОтсутствуетВПрисоединенныхФайлах = Ложь; Прервать; ИначеЕсли СтрНачинаетсяС(АтрибутИсточникКартинки.Значение, "cid:" + ПрисоединенныйФайл.Наименование) Тогда НайденнаяСтрока = СформированноеСообщение.Вложения.Найти(ПрисоединенныйФайл.Наименование, "Представление"); Если НайденнаяСтрока <> Неопределено Тогда СформированноеСообщение.Вложения.Удалить(НайденнаяСтрока); КонецЕсли; ДанныеФайла = МодульРаботаСФайлами.ДанныеФайла(ПрисоединенныйФайл.Ссылка, ДополнительныеПараметры); ОбработатьКартинкуВТекстеHTMLДляФорматированногоДокумента(Картинка, ДанныеФайла, СформированноеСообщение, АтрибутИсточникКартинки, ПрисоединенныйФайл.Наименование, ПрисоединенныйФайл.Наименование); ИзображениеОтсутствуетВПрисоединенныхФайлах = Ложь; Прервать; КонецЕсли; КонецЦикла; Если ИзображениеОтсутствуетВПрисоединенныхФайлах Тогда ИмяКартинки = Сред(АтрибутИсточникКартинки.Значение, 5); НайденнаяСтрока = СформированноеСообщение.Вложения.Найти(ИмяКартинки, "Представление"); Если НайденнаяСтрока <> Неопределено Тогда ДвоичныеДанные = ПолучитьИзВременногоХранилища(НайденнаяСтрока.АдресВоВременномХранилище); АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные, ПараметрыШаблона.УникальныйИдентификатор); НайденнаяСтрока.Идентификатор = ИмяКартинки; НайденнаяСтрока.АдресВоВременномХранилище = АдресВоВременномХранилище; НовыйАтрибутКартинки = АтрибутИсточникКартинки.КлонироватьУзел(Ложь); НовыйАтрибутКартинки.ТекстовоеСодержимое = ИмяКартинки; Картинка.Атрибуты.УстановитьИменованныйЭлемент(НовыйАтрибутКартинки); КонецЕсли; КонецЕсли; КонецЦикла; Если ПреобразовыватьHTMLДляФорматированногоДокумента Тогда ТекстHTML = ПолучитьТекстHTMLИзОбъектаДокументHTML(ДокументHTML); СформированноеСообщение.Текст = ТекстHTML; КонецЕсли; КонецЕсли; КонецПроцедуры /////////////////////////////////////////////////////////////////////////////////////////////////////// // Copyright (c) 2019, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// |
Читать далее
Обработать текст html для форматированного документа. Обрабатывает текст HTML для помещения в форматированный документ.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
// Обрабатывает текст HTML для помещения в форматированный документ. // // Параметры: // Письмо - ДокументСсылка.ЭлектронноеПисьмоВходящее, // ДокументСсылка.ЭлектронноеПисьмоИсходящее - письмо для которого будет проведена оценка. // ТекстHTML - Строка - обрабатываемый текст HTML. // СтруктураВложений - Структура - структура в которую помещаются картинки - вложения письма. // // Возвращаемое значение: // Число - оценка размера письма в байтах. // Функция ОбработатьТекстHTMLДляФорматированногоДокумента(Письмо,ТекстHTML,СтруктураВложений) Экспорт Если Не ПустаяСтрока(ТекстHTML) Тогда ДокументHTML = ПолучитьОбъектДокументHTMLИзТекстаHTML(ТекстHTML); ТаблицаФайлов = ПолучитьВложенияПисьмаСНеПустымИД(Письмо); Если ТаблицаФайлов.Количество() Тогда Для каждого ПрисоединенныйФайл Из ТаблицаФайлов Цикл Для каждого Картинка Из ДокументHTML.Картинки Цикл АтрибутИсточникКартинки = Картинка.Атрибуты.ПолучитьИменованныйЭлемент("src"); Если СтрЧислоВхождений(АтрибутИсточникКартинки.Значение, ПрисоединенныйФайл.ИДФайлаЭлектронногоПисьма) > 0 Тогда НовыйАтрибутКартинки = АтрибутИсточникКартинки.КлонироватьУзел(Ложь); НовыйАтрибутКартинки.ТекстовоеСодержимое = ПрисоединенныйФайл.Наименование; Картинка.Атрибуты.УстановитьИменованныйЭлемент(НовыйАтрибутКартинки); СтруктураВложений.Вставить( ПрисоединенныйФайл.Наименование, Новый Картинка(ПолучитьИзВременногоХранилища( РаботаСФайлами.ДанныеФайла(ПрисоединенныйФайл.Ссылка).СсылкаНаДвоичныеДанныеФайла))); Прервать; КонецЕсли; КонецЦикла; КонецЦикла; Возврат ПолучитьТекстHTMLИзОбъектаДокументHTML(ДокументHTML); Иначе Возврат ТекстHTML; КонецЕсли; Иначе Возврат ТекстHTML; КонецЕсли; КонецФункции /////////////////////////////////////////////////////////////////////////////////////////////////////// // Copyright (c) 2019, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// |
Читать далее
Пример:
1 2 3 4 5 6 7 |
HTML = ""; Картинки = ""; ПолеФорматированногоДокумена.ПолучитьHTML(HTML, Картинки); Для Каждого Картинка Из Картинки цикл Вложение = Сообщение.Вложения.Добавить(Картинка.Значение.ПолучитьДвоичныеДанные()); Вложение.Идентификатор = Картинка.Ключ; HTML = СтрЗаменить(HTML, Картинка.Ключ, "cid:" + Вложение.Идентификатор); КонецЦикла; |
Читать далее
JSON (англ. JavaScript Object Notation) — текстовый формат обмена данными. В платформе 1С 8.3 сущеструет ряд механизмов упрощающих формирование и чтение JSON формата. Ниже описан пример записи JSON средствами 1С с применением структуры данных. В результате мы должны получить файл следующего содержания:
1 2 3 4 5 6 7 8 9 10 11 |
{ "Номенклатура": "Тапочки", "Цвет": "Зеленый", "Размер": 44, "НаличиеМагазины": [ "На Петровского", "На Ленина", "На Луне" ], "Поставщик": false } |
Пример кода 1С:
Читать далееЧтобы средствами 1С отправить на печать PDF файл сохраненный на диске достаточно: Shell = Новый COMОбъект(«Shell.Application»); Shell.ShellExecute(«D:\123.pdf», «», «», «print», 0);
Читать далееПри возникновении ошибки «Неверный формат хранилища»: На рисунке видно, что ошибка указывает на папку с временными файлами – AppData/Local/1C и далее папка с цифрами в названии. То есть о решении проблемы уже сказано в самом сообщении. Для устранения ошибки необходимо очистить кэш, находящийся в указанной папке. В данном примере временные файлы находятся в папке Local, и очистка кэша должна решить проблему.
Читать далееСообщение программы «Ошибка формата потока». Устранение ошибки. В папке с установленной программой, кроме файла с информационной базой, имеются служебные временные файлы. При аварийном выключении программы также могут сохраниться файлы блокировок (которые автоматически должны были удалиться при выключении программы). Один из вариантов решения проблемы – это удаление из этой папки всех этих файлов. Такие файлы будут сформированы вновь при запуске программы, поэтому их можно смело удалить. Файл 1Cv8.1CD – файл информационной базы. Его удалять нельзя. Кроме этого, следующим шагом (если первый вариант не дал результата) должно стать удаление информационной базы из списка в окне запуска 1С (кнопка «Удалить») и добавление ее обратно (кнопка «Добавить»). Тем самым мы очистим кэш.
Читать далееОшибка соединения с сервером 1С:Предприятие 8.3 Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение server_addr=tcp://127.0.0.1:1740 descr=Ошибка сетевого доступа к серверу (Windows Sockets — 10061(0x0000274D). Подключение не установлено, т.к. конечный компьютер отверг запрос на соединение.) line=590 file=.\Src\DataExchangeTcpClientItmpl.cpp» Ошибка воспроизводилась только на удаленных компьютерах, т.е. на локальном сервере все работало. Перезапуски серверов, переустановки платформы не помогли. Обновили DNS адреса (т.к. меняли ip адреса на серверах, чтобы не менять настройки подключений у пользователей) — тоже не помогло.
Читать далееДля документа Реализация товаров и услуг необходимо сделать произвольное представление документа в зависимости от вида, который указал пользователь. Задача Для документа Реализация товаров и услуг организовать формирование представления документа в зависимости от значения реквизита Вид: Товары — «Реализация товаров » + <Номер> + » от » + <Дата>; Услуги — «Акт выполненных работ » + <Номер> + » от » + <Дата>. Решение Для реализации воспользуемся двумя событиями, описанными в модуле менеджера документа:
Читать далее
1 2 3 4 5 6 7 8 9 |
Список.ТекстЗапроса = ИзмТекстЗапроса(); Список.КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.Полное); НовЭлемент = Элементы.Добавить("ЕстьРеализация", Тип("ПолеФормы"), Элементы.Список); НовЭлемент.Вид = ВидПоляФормы.ПолеФлажка; НовЭлемент.ПутьКДанным = "Список.ЕстьРеализация"; НовЭлемент.Заголовок = "Есть реализация"; НовЭлемент.ТолькоПросмотр = Ложь; |
Как пример программного отбора при выборе значения реквизита «тГрузополучатель»:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
НовыйМассив = Новый Массив(); ДоступныеГрузополучатели = ПолучитьДоступныеГрузополучатели(); Для Каждого СтрокаДоступныеГрузополучатели Из ДоступныеГрузополучатели Цикл НовыйМассив.Добавить(СтрокаДоступныеГрузополучатели); КонецЦикла; НовыеЗначения = Новый ФиксированныйМассив(НовыйМассив); НовыйПараметр = Новый ПараметрВыбора("Отбор.Ссылка", НовыеЗначения); НовыйМассив = Новый Массив(); НовыйМассив.Добавить(НовыйПараметр); НовыеПараметры = Новый ФиксированныйМассив(НовыйМассив); Элементы.тГрузополучатель.ПараметрыВыбора = НовыеПараметры; |