Рубрика: 1С

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

Видимость = НЕ Видимость; Если Видимость Тогда //если нужно показать текущую панель //Привяжем верхнюю границу следующей панели к нижней границе разделителя ЭлементыФормы.ПанельВопроса2.УстановитьПривязку(ГраницаЭлементаУправления.Верх,ЭлементыФормы.Р1, ГраницаЭлементаУправления.Низ); //Развернем текущую панель и разделитель ЭлементыФормы.ПанельВопроса1.Свертка = РежимСверткиЭлементаУправления.Нет; ЭлементыФормы.Р1.Свертка = РежимСверткиЭлементаУправления.Нет; //Привяжем нижнюю границу текущей панели к верхней границе разделителя ЭлементыФормы.ПанельВопроса1.УстановитьПривязку(ГраницаЭлементаУправления.Низ,ЭлементыФормы.Р1,ГраницаЭлементаУправления.Верх); Иначе //если нужно спрятать текущую панель //Сбросим нижнюю привязку текущей панели…

Прочитать статью целиком

Конвертация данных. Доступ к реквизитам табличной части из алгоритмов выгрузки

При выгрузке данных табличных частей бывает необходимо проанализировать некоторое поле табличной части для заполнения другого поля. Для этого в алгоритме можно обратится к переменной ОбъектКоллекции в которой доступны все поля строки. Т = СоздатьОбъект(«ТаблицаЗначений»); Т.НоваяКолонка(«Код»); Т.НоваяКолонка(«Наименование»); Т.НоваяСтрока(); Если ОбъектКоллекции.ВидРасчета = «Оклад» Тогда Т.Код = «00001»; Т.Наименование = «Оклад»; ИначеЕсли ОбъектКоллекции.ВидРасчета = «Должностной» Тогда Т.Код =…

Прочитать статью целиком

Перенос данных из базы с поврежденными таблицами

У клиента что то произошло с жестким диском, что потребовало восстановления данных на нем. Базу 1С вроде бы сохранили, и она даже открылась. Однако при попытке доступа к документу «Платежный ордер списание денежных средств» база вылетает с ошибкой. Ошибка СУБД: Ошибка SQL: Таблица не найдена ‘_Document151_VT3126’ по причине: Ошибка SQL: Таблица не найдена ‘_Document151_VT3126’ Так…

Прочитать статью целиком

Получить менеджер объекта по ссылке

//Функция получает менеджер объект по ссылке на него. Функция МенеджерОбъектаПоСсылке(Ссылка) Экспорт ИмяОбъекта = Ссылка.Метаданные().Имя; ТипСсылки = ТипЗнч(Ссылка); Если Справочники.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат Справочники[ИмяОбъекта]; ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат Документы[ИмяОбъекта]; ИначеЕсли БизнесПроцессы.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат БизнесПроцессы[ИмяОбъекта]; ИначеЕсли ПланыВидовХарактеристик.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат ПланыВидовХарактеристик[ИмяОбъекта]; ИначеЕсли ПланыСчетов.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат ПланыСчетов[ИмяОбъекта]; ИначеЕсли ПланыВидовРасчета.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат ПланыВидовРасчета[ИмяОбъекта]; ИначеЕсли Задачи.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат Задачи[ИмяОбъекта]; ИначеЕсли ПланыОбмена.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда…

Прочитать статью целиком

Сервер 1С зависает

При длительной работе сервера 1С рабочие процессы (rphost.exe) начинает зависать, тормозя при этом работу всего сервера. Это связано с различными причинами (большие запросы, оборванные пользовательские сеансы) Для того, что бы «распухшие» сеансы не затрудняли работу необходимо настроить кластер 1С на перезапуска рабочих процессов. Перезапуск осуществляется следующим образом: Создается новый процесс В него передаются все соединения…

Прочитать статью целиком

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

Иногда бывает необходимо просто выгрузить результат запроса на форму без какой либо обработки Делается это с помощью следующей строки: ЭлементыФормы.ТабПоле.Значение = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); Однако после этого данные на форме не отобразятся, и для того, что бы их стало видно нужно выполнить следующее: ЭлементыФормы.ТабПоле.СоздатьКолонки(); Если в запросе есть итоги и выгрузка производится по группировкам, то на форме…

Прочитать статью целиком

Программный разбор текста. Регулярные выражения

Появилась задача разбора HTML текста внутри модуля 1С. Попытался сделать посредством встроенных функций — получилось очень медленно. Функция СРЕД() в общем съедала до 90% времени, при том, что обработка одной страницы могла идти около минуты. Задача была решена путем использования стандартной Windows библиотеки RegExp, которая очень быстро обрабатывает текст. Данная библиотека доступна начиная c Windows…

Прочитать статью целиком

Обход дерева значений

Процедура ОбработкаСтрокиЗагрузки(Строки, Буфер, Игнорировать) Для Каждого Стр ИЗ Строки Цикл Если Строки.Количество() > 0 Тогда ОбработкаСтрокиЗагрузки(Стр.Строки, Буфер, Игнорировать); КонецЕсли; Если Не ЗначениеЗаполнено(Стр.Номенклатура) И Игнорировать Тогда Продолжить; КонецЕсли; СтрокаБуфера = Буфер.Добавить(); СтрокаБуфера.Ссылка = Стр.Номенклатура; СтрокаБуфера.НовоеНаименование = Стр.Наименование; КонецЦикла; КонецПроцедуры

Свертка группировок схемы компановки данных в форме

Если необходимо что бы какая то группировка при выводе СКД была свернута, то ее необходимо помещать на форму, и с помощью следующего кода сворачивать нужные группировки &НаКлиенте Процедура Формирование(Команда) Результат = ЭлементыФормы.ПолеТабличногоДокумента; СкомпоноватьРезультат(Результат); Если Результат.КоличествоУровнейГруппировокСтрок() > 0 Тогда Результат.ПоказатьУровеньГруппировокСтрок(0); КонецЕсли; КонецПроцедуры

Перенос оборотов между счетами

Очень часто бывает так, что необходимо произвести перенос всех оборотов с одного счета на другой. Раньше я это делал через групповую обработку справочников и документов. Плюс метода в том, что можно наложить условие на обрабатываемые обьекты. Однако, при применении этого метода возникает необходимость в проведении документов после изменении реквизитов, а это не всегда возможно (например…

Прочитать статью целиком