Корректировка движений документа

Публикация № 276756

Разработка - Универсальные функции

движения обработка корректировка документ подписка событие удаление движений замена

Корректировка движений документа после его проведения по типовому алгоритму.

Данная статья инициирована тем, что приводимая ниже информация не была найдена мной на сайте в открытом виде. Поэтому мне пришлось потратить несколько драгоценных минут, чтобы все это сделать самому.

Суть кода - удалить/добавить/скорректировать движения документа "извне". Не трогая сам документ. Для "подстановки" движений в регистр документ должен быть записан, желательно (но не обязательно) проведен. Встречал случаи, когда делаешь выверку данных и не понимаешь, откуда лезут движения; тратишь кучу времени и потом выясняешь, что движения делает не проведенный документ; долго и с выражением ругаешься :) 

Делают это обычно тремя методами:

  1) делают подписку на событие ПриПроведении

  2) делают дописку в конце процедуры ОбработкаПроведения в модуле документа (стало особенно актуально с появлением расширения)

  3) делают внешнюю обработку, которая правит движения по таймеру или по ручному нажатию на кнопку

В общем, суть методов одна и та же, меняется только небольшая часть. Рассмотрим все варианты

1. Дописка движений с помощью подписки на событие (на примере УТ 11)

Добавляем общий серверный модуль:

Пример создания модуля для подписки на событие

Добавляем подписку на событие:

подписка на событие

Ниже сам модуль

Процедура РТУ_ПроведениеОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
    // получаем ссылку на документ
    Регистратор=Источник.Ссылка;
    
    НаборЗаписей = РегистрыНакопления.СебестоимостьТоваров.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(Регистратор);
    НаборЗаписей.Прочитать();
    
    // предыдущие движения удаляем
    // можно этого не делать, тогда движения добавятся к существующим
    НаборЗаписей.Очистить();
    
    Для каждого Строка из Регистратор.ВидыЗапасов Цикл
        // Делаем новые движения
        ЗаписьРегистра = НаборЗаписей.Добавить();
        ЗаписьРегистра.ВидДвижения = ВидДвиженияНакопления.Приход;   // эта строчка только для регистров остатков
        ЗаписьРегистра.Период=Регистратор.Дата;
        ЗаписьРегистра.Регистратор=Регистратор;
        
        ЗаписьРегистра.АналитикаУчетаНоменклатуры=Строка.АналитикаУчетаНоменклатуры;
        ЗаписьРегистра.РазделУчета=Перечисления.РазделыУчетаСебестоимостиТоваров.ТоварыНаСкладах;
        ЗаписьРегистра.ВидЗапасов=Строка.ВидЗапасов;
        ЗаписьРегистра.Организация=Регистратор.Организация;
        ЗаписьРегистра.ВидДеятельностиНДС=Перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС;
        // при необходимости добавить заполнение остальных измерений
        
        ЗаписьРегистра.Количество=Строка.Количество;
        ЗаписьРегистра.Стоимость=Строка.СуммаСНДС;
        ЗаписьРегистра.СтоимостьРегл=Строка.СуммаСНДС;
        ЗаписьРегистра.СтоимостьУпр=Строка.СуммаСНДС;
        // при необходимости добавить заполнение остальных ресурсов
        
        ЗаписьРегистра.ХозяйственнаяОперация=Перечисления.ХозяйственныеОперации.РеализацияКлиенту;
        // при необходимости добавить заполнение остальных реквизитов
    КонецЦикла;
    
    // все. фиксируем проводки в регистре
    НаборЗаписей.Записать();
КонецПроцедуры

Правильность кода в смысле бизнес-правил не преследовалась. Это просто пример того, как можно перезаполнить движения документа по какому-то из регистров, в качестве "жертвы" был выбран СебестоимостьТоваров.

Ниже еще вариант правки кода в подписке на событие (для конфигурации БП20 - меняем счет списания для документа Списание товаров):

Процедура ОбработкаПроведенияСписаниеТоваровОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
	// тут движения уже отфильтрованы по Регистратору,  потому просто берем их и используем
	НаборДвижений = Источник.Движения.Хозрасчетный;
	ТаблицаПроводок = НаборДвижений.Выгрузить();
	
	// тут приведена некоторая функция, которая гипотетически, по какому-то алгоритму, получает счет Плана счетов
	// а также Статью прочих доходов и расходов для субконто
	СтатьяЗатрат="";
	СчетЗамены=ПолучитьСчетЗамены(СтатьяЗатрат);
	
	// ниже мы поменяем счет, на который делает проводки документ СписаниеТоваров в типовой БП20 (это счет 94)
	// на какой-то свой счет, у которого есть субконто со статьей прочих доходов и расходов
	Если ЗначениеЗаполнено(СчетЗамены) Тогда
		Отбор = Новый Структура;
		Отбор.Вставить("СчетДт",ПланыСчетов.Хозрасчетный.НедостачиИПотериОтПорчиЦенностей);
		МассивСтрок = ТаблицаПроводок.НайтиСтроки(Отбор);
		
		Для Каждого СтрокаТип   Из МассивСтрок Цикл
			// делаем новую проводку (старую потом удалим)
			НоваяСтрока = ТаблицаПроводок.Добавить();
			ЗаполнитьЗначенияСвойств(НоваяСтрока,СтрокаТип);
			НоваяСтрока.СчетДт = СчетЗамены;
			НоваяСтрока.ВидСубконтоДт1 = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ПрочиеДоходыИРасходы;
			НоваяСтрока.СубконтоДт1 = СтатьяЗатрат;

			// удаляем старую проводку
			ТаблицаПроводок.Удалить(СтрокаТип);
		КонецЦикла;
	КонецЕсли;
	
	НаборДвижений.Загрузить(ТаблицаПроводок);
	
КонецПроцедуры

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

Документ Реализация товаров и услуг А0ТП-000065 от 31.01.2019 12:37:53 не проведен: Попытка использования закрытого менеджера временных таблиц

Подробно проблему не исследовал, но видимо при записи регистра для набора записей есть своя подписка на события, которая не дает идти по короткому пути. В любому случае, полезно знать оба метода получения набора записей.

 

2. Изменение движений с помощью дописки в конец процедуры ОбработкаПроведения в Расширении


&После("ОбработкаПроведения")
Процедура Общ_ОбработкаПроведения(Отказ, РежимПроведения)
    Св_ва=УправлениеСвойствами.СвойстваОбъекта(Ссылка, Ложь, Истина);
    Для каждого Св_во из Св_ва Цикл
        Если Св_во.Имя="ПодразделениеКорр._ПРС" Тогда
            ПодрКорр=УправлениеСвойствами.ЗначениеСвойства(Ссылка, Св_во);
            Если ЗначениеЗаполнено(ПодрКорр) Тогда
                Общ_СкорректироватьПроводки(ПодрКорр);
            КонецЕсли; 
            Прервать;
        КонецЕсли; 
    КонецЦикла; 
КонецПроцедуры

Процедура Общ_СкорректироватьПроводки(ПодрКорр)
    Для каждого Движ из Движения.Хозрасчетный Цикл
        Движ.ПодразделениеКт=ПодрКорр;
    КонецЦикла; 
КонецПроцедуры

Пример выше вообще взят из конкретного кейса: необходимо было, если пользователь устанавливал доп. свойство "Подразделение корр." для документа, менять в кредитовой части подразделение (до этой доработки пользователи это делали просто изменяя проводки вручную).

Также можно набор записей выгрузить в таблицу значений, что-то с ней сделать, потом загрузить обратно в набор записей и снова его записать.

 

Ну, и наконец

3. Обработка для изменения движений (вообще, это может быть просто процедура, которая вызывается из регламентного задания или откуда-то еще)

Сама обработка:

Форма обработки

Код в модуле формы:


&НаСервереБезКонтекста
Процедура КорректированиДвиженияНаСервере(Регистратор)
    НаборЗаписей = РегистрыНакопления.СебестоимостьТоваров.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(Регистратор);
    НаборЗаписей.Прочитать();
    
    // предыдущие движения удаляем
    // можно этого не делать, тогда движения добавятся к существующим
    НаборЗаписей.Очистить();
    
    Для каждого Строка из Регистратор.ВидыЗапасов Цикл
        // Делаем новые движения
        ЗаписьРегистра = НаборЗаписей.Добавить();
        ЗаписьРегистра.ВидДвижения = ВидДвиженияНакопления.Приход;   // эта строчка только для регистров остатков
        ЗаписьРегистра.Период=Регистратор.Дата;
        ЗаписьРегистра.Регистратор=Регистратор;
        
        ЗаписьРегистра.АналитикаУчетаНоменклатуры=Строка.АналитикаУчетаНоменклатуры;
        ЗаписьРегистра.РазделУчета=Перечисления.РазделыУчетаСебестоимостиТоваров.ТоварыНаСкладах;
        ЗаписьРегистра.ВидЗапасов=Строка.ВидЗапасов;
        ЗаписьРегистра.Организация=Регистратор.Организация;
        ЗаписьРегистра.ВидДеятельностиНДС=Перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС;
        // при необходимости добавить заполнение остальных измерений
        
        ЗаписьРегистра.Количество=Строка.Количество;
        ЗаписьРегистра.Стоимость=Строка.СуммаСНДС;
        ЗаписьРегистра.СтоимостьРегл=Строка.СуммаСНДС;
        ЗаписьРегистра.СтоимостьУпр=Строка.СуммаСНДС;
        // при необходимости добавить заполнение остальных ресурсов
        
        ЗаписьРегистра.ХозяйственнаяОперация=Перечисления.ХозяйственныеОперации.РеализацияКлиенту;
        ЗаписьРегистра.ЗаказКлиента=Регистратор.ЗаказКлиента;
        ЗаписьРегистра.Подразделение=Регистратор.Подразделение;
        ЗаписьРегистра.ПериодПродажи=НачалоМесяца(Регистратор.Дата);
        ЗаписьРегистра.ДокументИсточник=Регистратор;
        // при необходимости добавить заполнение остальных реквизитов
    КонецЦикла;
    
    // все. фиксируем проводки в регистре
    НаборЗаписей.Записать();
КонецПроцедуры

&НаКлиенте
Процедура КорректированиДвижения(Команда)
    КорректированиДвиженияНаСервере(ДокументРТУ);
КонецПроцедуры


Видно, что код очень похож на самый первый пример, где мы отбираем набор записей по Источник.Ссылка

Конечно же, эти сведения не уникальны, но собранные в одной статье помогут сэкономить некоторое количество времени.

В приложенном файле - обработка коррекции движений, полный код которой представлен в статье. Обработка тестировалась на платформе версии 1С:Предприятие 8.3 (8.3.14.1630), конфигурация Управление торговлей, редакция 11 (11.4.6.207).

Скачать файлы

Наименование Файл Версия Размер
Корректировка движений документа:

.epf 6,67Kb
26.05.19
4
.epf 6,67Kb 4 Скачать

Специальные предложения

Оставьте свое сообщение

См. также

[Расширение] Контроль отрицательных остатков по регистру бухгалтерии при проведении Промо

Универсальные функции Инструментарий разработчика Учет ТМЦ Учет ТМЦ v8 1cv8.cf Россия БУ Абонемент ($m)

Расширение позволяет без изменений конфигурации проверять остатки по регистру бухгалтерии при проведении каждого документа и запрещает проведение при появлении отрицательных остатков после проведения.

1 стартмани

17.08.2015    44836    155    ekaruk    31    

Универсальная функция получения дополнительных реквизитов и пример на форме

Универсальные функции v8 1cv8.cf Абонемент ($m)

Решаем следующую задачу. Например, в справочнике «Номенклатура» — 10 дополнительных реквизитов: "Материал", "Наименование на английском", "Наименование на французском" и т.д., и 20 дополнительных реквизитов в справочнике «Характеристики номенклатуры». Необходимо вывести все характеристики по ТЧ "Товары", так называемую «Спецификацию» по «Заказу клиента» или «Заказу поставщика».

2 стартмани

05.05.2020    1086    1    papche    7    

Универсальное хранилище настроек

Универсальные функции v8 Абонемент ($m)

Универсальная константа для хранения любых настроек, например интеграции с API. Легко вносить новые настройки без "ломания" выполнения кода в модулях.

1 стартмани

10.03.2020    4413    1    v.krivenko    17    

Шаблоны внешних обработок (БСП, управляемые формы)

Обработки Печать Универсальные функции БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

Набор из шаблонов для создания внешних обработок вида: Внешняя печатная форма, Отчет на СКД, Схема СКД для сегмента, Внешняя обработка (Самостоятельная, Заполнение объектов, Создание связанных объектов). Предварительно наполнены базовым функционалом и некоторыми механизмами для отладки.

1 стартмани

01.03.2020    2107    19    riposte    2    

Отправка электронной почты с помощью локального почтового клиента из 1С, развернутой под удаленным рабочим столом Промо

Печатные формы документов Универсальные функции Email v8 КА1 БП2.0 УТ10 УПП1 Абонемент ($m)

Решение для интерактивной (нажал-отредактировал) отправки электронных писем и печатных форм через почтовый клиент (Thunderbird, Outlook) находящийся на локальном компьютере, из конфигурации 1С, развернутой под удаленным рабочим столом (RDP, remote-app). Подходит также для локального развертывания 1С. Представлен пример быстрой интеграции с конфигурациями "Управление торговлей 10.3", "Управление производственным предприятием 1.3", "Комплексная автоматизация 1.1", "Бухгалтерия предприятия 2.0".

1 стартмани

21.09.2018    21263    13    stvorl    0    

Выгрузка любого запроса или таблицы значений в текст JSON

Обработка справочников WEB Универсальные функции Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Отчет позволяет выгрузить любые данные из 1С в JSON текст, выполнив произвольный запрос к данным.

1 стартмани

07.02.2020    6118    21    user796054    18    

Универсальные функции: разложение произвольной строки адреса в структуру

Практика программирования Универсальные функции v8 1cv8.cf Абонемент ($m)

Процедуры и функции раскладывают произвольную строку адрес в структуру по ключевым словам.

1 стартмани

30.12.2019    2887    5    vik070777    10    

Подпись PDF в новой версии 8.3.16

Универсальные функции v8 1cv8.cf Абонемент ($m)

Проверяем новую возможность платформы 1С:Предприятие 8 по формированию подписей в PDF.

1 стартмани

23.12.2019    3755    5    kolya_tlt    6    

Расширение возможностей печати: Вывод произвольного нижнего и верхнего колонтитула Промо

Печатные формы документов Практика программирования Универсальные функции v8 1cv8.cf Абонемент ($m)

Расширяем функционал вывода нижнего / верхнего колонтитула. Стандартно 1С имеет достаточно ограничений по выводу и наполнению колонтитулов содержимым, взять хотя бы такие, как вывод только текста и отсутствие ограничения на номер конечной страницы. А при разработке кода сталкиваешься с тем, что свой блок с нижним колонтитулом нужно прижимать к низу страницы. Казалось бы быстро решаемый вопрос, но и в нем есть нюансы. Сейчас я расскажу о том, как решалась эта задача. UPD 15.02.2018. Добавлен вывод верхнего колонтитула; Вывод колонтитулов на первой и последней странице управляется параметрами; Научился считать страницы: Добавлено заполнение переменных аналогичных стандартным из колонтитулов; Задаются форматы даты и времени. Ограничения прежние: 1. Повторно сформировать табличный документ после смены параметров страницы интерактивно.; 2. Передавать данные для более плотной печати как можно более мелко нарезанными кусками.

1 стартмани

29.12.2017    36588    27    agent00mouse    0    

Простой способ загрузить файл Excel на тонком клиенте.

Загрузка и выгрузка в Excel Универсальные функции v8 1cv8.cf Абонемент ($m)

Самый простой способ загрузить файл Excel на тонком клиенте - это скопировать лист Excel в "табличный документ" на форме обработки и обрабатывать уже поля "табличного документа".

1 стартмани

30.10.2019    6674    2    John_d    16    

Версионирование объеков УТ 10 с возможностью перехода к сохраненной версии

Журнал регистрации Универсальные функции v8 УТ10 Абонемент ($m)

Версионирование объектов УТ 10.3 с возможностью перехода к сохраненной версии. Взята стандартная система версионирования УПП, добавлена возможность восстановления ранее сохраненной версии.

1 стартмани

28.10.2019    5869    22    art.prm    8    

Картинка вместо кнопки без html

Работа с интерфейсом Универсальные функции v8 1cv8.cf Абонемент ($m)

Вариант замены стандартных кнопок на форме для тех, кого не устраивают кнопки 1С и нет особых возможностей делать все с использованием html. Тестировал работу на платформах 8.3.10, 8.3.13, 8.3.14

1 стартмани

23.10.2019    4341    3    zatoichi    3    

Многопоточность. Универсальный «Менеджер потоков» (фреймворк) с отслеживанием зависимости объектов Промо

Практика программирования Математика и алгоритмы Универсальные функции Производительность и оптимизация (HighLoad) v8 1cv8.cf Россия Абонемент ($m)

Восстановление партий, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

26.05.2017    47327    15    DarkAn    86    

Выгрузка данных из дерева значений 1С в формат JSON иерархический список (Сериализация ДереваЗначений в JSON)

Обмен через XML Универсальные функции v8 1cv8.cf Россия Абонемент ($m)

Тема: Иерархические списки при обмене данными. В интернете не удалось найти подобного решения. Обнаружена реализация только обратной операции JSON в дерево значений 1С или рассматриваются линейные списки (таблицы).

1 стартмани

22.10.2019    4370    4    mwoleg    6    

Универсальная подсистема ДМ

Универсальные функции v8 1cv8.cf Россия Абонемент ($m)

ДМ — дополнительные модули Это не альтернатива или дополнение БСП. Данная подсистема призвана быстро получить множество нужных функций в любой конфигурации. Для использования подсистемы изменения в конфигурацию вносить не надо. К сожалению поддержка обычных форм прекращена и поэтому данная разработка предназначена только для УФ. Разработка ведётся с 2009 года, но именно этот релиз был подготовлен на платформе 8.3.15.1565

1 стартмани

22.10.2019    3508    4    strange2007    10    

Вывод QR-кода типовыми средствами.

Универсальные печатные формы Сканер штрих-кода Универсальные функции v8 КА1 УТ10 УПП1 Абонемент ($m)

Вывод QR-кода типовыми средствами. На данный момент очень часто нужно вывести в печатную форму QR-код. Показываю как на примере типового кода из УТ11 это сделать. Можно использовать в любых конфигурациях с обычными формами.

1 стартмани

21.10.2019    12491    24    Емельянов Алексей    45    

Лучшие методы сравнения таблиц значений Промо

Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

02.02.2015    102933    37    ildarovich    59    

Генерация QR кода для любых конфигураций 1С (обычные и управляемые формы)

Универсальные обработки Универсальные функции v8 v8::УФ 1cv8.cf Абонемент ($m)

Для генерации используется компонента типовой конфигурации УТ11, встроенная в общий макет "КомпонентаПечатиQRКода". Ниже приведены процедуры, чтобы сделать обработку самостоятельно (только для УФ).

1 стартмани

11.10.2019    6955    36    dm1try    0    

Полезные процедуры и функции для программиста

Практика программирования Универсальные функции v8 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

07.10.2019    26651    14    HostHost    40    

Универсальное удаление движений регистров накопления по всем непроведенным документам

Универсальные функции Чистка базы v8 1cv8.cf Абонемент ($m)

Попалась база КА 2.4 с движениями по регистрам, у которых регистратор был непроведен или помечен на удаление. Написал небольшую обработку по удалению таких записей из регистров.

1 стартмани

27.09.2019    7196    9    John_d    15    

Генерация QR-кода программная и интерактивная (код открыт, управляемая форма, обычное и управляемое приложение, API) Промо

Универсальные функции Универсальные обработки v8 v8::УФ 1cv8.cf Абонемент ($m)

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

3 стартмани

04.02.2016    45026    169    TuneSoft    26    

1С REST API клиент. Обмен из 1С с сайтом/магазином WordPress/WooCommerce с помощью REST API

Универсальные обработки WEB Универсальные функции Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v8 1cv8.cf УУ Абонемент ($m)

Обмен 1С с сайтом на WordPress и магазином Woocommerce. Внешняя обработка сделана как REST API клиент сайта WordPress, позволяет разработчику публиковать/изменять/удалять/просматривать посты/страницы/товары/фотографии (в связке с товаром/страницей) на сайте/магазине WordPress/Woocommerce. Обработки сделаны с использованием обычных форм, демо-формы использования в комплекте.

10 стартмани

29.07.2019    6160    11    osivv    14    

Экспортные процедуры и функции общих модулей БП 3.0, ЗУП 3.1, УТ 11

Универсальные функции v8 1cv8.cf Россия Абонемент ($m)

Таблицы экспортных процедур и функций общих модулей конфигураций БП КОРП 3.0, ЗУП КОРП 3.1, УТ 11 + обработка по формированию такой таблицы из любой конфигурации.

14.06.2019    8205    20    SanchoD    29    

Работа с графической схемой в объектной модели DOM

Универсальные функции v8 v8::УФ Абонемент ($m)

Пример кода для работы с графической схемой в объектной модели DOM, платформа 8.3.12.

1 стартмани

04.06.2019    7545    5    botokash    19    

Методы для группировки данных по полю,полям в Таблице Значений на примере универсального метода списания по партиям, а также отбора строк в ТЗ по произвольному условию. Для 8.x и 7.7 Промо

Универсальные функции Практика программирования v7.7 v8 1cv8.cf 1cv7.md Абонемент ($m)

Я очень часто использую группировку данных по полю и полям, как в восьмерке, так и в семерке. Это аналог запроса Итоги, но там строится дерево, а в большинстве случаев нужны "плоские данные". Да и делать запрос в большинстве случаев более накладный процесс, чем работа с ТЗ. Все достоинства такого подхода приведены на примере метода универсального списания по париям, а так же отбора строк в ТЗ по произвольному условию. Для 7.7 еще отчеты сравнения двух ТЗ. Работая с различными базами для упрощения сравнения номенклатуры, или как аналог джойнов(join), сделал сравнение двух таблиц значений по нескольким полям. Пока группировки полей должны быть уникальны. Часто приходится искать дубли, для универсального поиска есть ДублиВТзПоПолю и пример в Тест.ert.

1 стартмани

25.06.2015    26403    3    Serginio    1    

Программное формирование картинки в 1С:Предприятие 8.3.9 (ПотокВПамяти / ЗаписьДанных)

Универсальные функции v8 1cv8.cf Абонемент ($m)

В статье представлен код программного формирования картинки (двоичные данные) без всяких внешних компонент, без формирования строки Base64, используя лишь встроенные механизмы 1С предприятие 8.3.9 (объекты ПотокВПамяти и ЗаписьДанных). Сам по себе код формирования картинки не несёт ничего нового. Всё описано в википедии. Захотелось попробовать новые методы, но никак не доходитили руки. В приложении обработка практически с этим же кодом.

1 стартмани

16.05.2019    8459    5    yku    7    

Альтернатива внешним печатным формам. ЗУП 3.1

Печатные формы документов Универсальные функции Зарплата Практика программирования Зарплата Разработка v8 v8::СПР ЗУП3.x Абонемент ($m)

Как в ЗУП 3.1.8 отказаться от внешних печатных форм и расширением увеличить количество полей, доступных при редактировании макетов, для изменения печатных форм Т1, Т5, Т8 и аналогичные пользователями.

1 стартмани

30.01.2019    13515    17    Mogilnikova    3    

Создание и запуск скрипта для ввода текста на базе AutoHotkey

Универсальные функции v8 1cv8.cf Абонемент ($m)

Механизм для ввода текста в поля данных, в случаях, когда нет возможности использовать буфер обмена. Полезен в тех случаях, когда необходимо ввести пароль в заблокированный сеанс RDP или когда надо передать какую-либо текстовую информацию в удаленный сеанс, а буфер обмена не доступен или отключен администратором.

1 стартмани

28.01.2019    4957    1    Wezoowy    1    

Автоматическая подстановка уничтожений временных таблиц в текст запроса Промо

Универсальные функции v8 1cv8.cf Абонемент ($m)

Функция, которая сама подставляет в текст запроса "УНИЧТОЖИТЬ" в местах последнего использования ВТ.

1 стартмани

14.11.2015    18996    0    SeiOkami    3    

Использование подсистемы БСП "Заполнение объектов"

Практика программирования Универсальные функции БСП (Библиотека стандартных подсистем) v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Применение механизмов БСП для добавления новых команд заполнения к формам различных объектов. Использование расширений конфигурации для доработки. Шаблоны для реализации собственных команд заполнения.

1 стартмани

23.11.2018    23724    12    ids79    23    

Пропорциональное распределение в запросе

Универсальные функции Практика программирования v8 1cv8.cf Абонемент ($m)

Периодически в работе сталкиваюсь с задачей пропорционального распределения сумм в запросе. Ситуация усложняется, когда распределяемые суммы изначально не известны и определяются в процессе выполнения запроса. Эта статья один из примеров решения такой задачи.

1 стартмани

28.06.2018    11351    1    invertex    7    

Подписка на события, преобразование объекта в JSONAPI, отправка в RabbitMQ

Внешние источники данных Универсальные функции v8 1cv8.cf Абонемент ($m)

Обработка содержит функции: - сериализация объекта 1с в JSONAPI - отправка в RabbitMQ по HTTP

1 стартмани

26.02.2018    10358    20    yaxinr    3    

Библиотека математических функций 1.1 Промо

Универсальные функции v8 1cv8.cf Абонемент ($m)

Привожу тексты различных математических функций, которыми периодически пользуюсь. Основной акцент ставится на функции работы с матрицами (в 1С в качестве матриц использовались двумерные массивы). В версии 1.1 функции работы с матрицами немного переписаны для улучшения производительности.

1 стартмани

18.12.2014    24572    11    alex271    67    

Проверка таблицы на дублирование строк (ТаблицаЗначений, ТабличнаяЧасть) и получение массива таких строк

Практика программирования Универсальные функции v8 1cv8.cf Абонемент ($m)

Функция для проверки дублирования строк в ТаблицеЗначений или ТабличнойЧасти. Также, если необходимо, возвращает массив задублированных строк (можно обработать).

1 стартмани

05.02.2018    10849    6    uri1978    27    

Свертка таблицы значений. С блэкджеком и всем остальным

Практика программирования Универсальные функции v8 1cv8.cf Абонемент ($m)

Функция свертки таблицы значений. Умеет в отличие от стандартного метода все, что можно делать на языке запросов.

1 стартмани

22.01.2018    10112    2    dusha0020    10    

Определение MIME-типа файла

Универсальные функции v8 1cv8.cf Абонемент ($m)

Небольшая, но полезная функция для определения MIME-типа файла по его расширению. Сэкономит время разработчикам.

1 стартмани

12.01.2018    9997    6    o.nikolaev    4    

Полезные функции БСП Промо

Универсальные функции v8 1cv8.cf Абонемент ($m)

Список часто востребованных, по моему мнению, функций из состава Библиотеки стандартных подсистем 2.2.

1 стартмани

01.02.2015    59610    25    spec8s    31    

Запуск приложений на клиенте из RDP-сессии

Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

30.10.2017    11040    6    GusevNA    4    

Простые подсистемы: Библиотека подсистем

Инструментарий разработчика Универсальные обработки Универсальные функции v8 Абонемент ($m)

Библиотека простых подсистем и наработок, облегчающих жизнь разработчика и внедренца, предоставляя относительно готовые решения. Логическое развитие линейки публикаций "Простые подсистемы". Базируются на БСП. Вошли часть ранее опубликованных подсистем и новые. Всего 5 штук (будет больше).

1 стартмани

26.10.2017    10564    9    pbabincev    1    

Размеры управляемой формы

Практика программирования Работа с интерфейсом Универсальные функции v8 1cv8.cf Абонемент ($m)

Как рассчитать ширину и высоту управляемой формы или отдельного элемента, чтобы адаптировать интерфейс программно при их изменении.

1 стартмани

08.10.2017    25435    71    json    9    

Регулярные выражения без COM объектов и внешних компонент Промо

Универсальные функции Практика программирования v8 1cv8.cf Абонемент ($m)

Платформа до сих пор не поддерживает регулярные выражения, хотя они уже стали довольно востребованной возможностью в разных языках программирования. Использование COM объектов и внешних компонент имеет ограничения, поэтому предлагается вариант реализации ограниченного функционала на встроенном языке 1С.

1 стартмани

09.02.2015    23326    8    boogie    38    

Шаблон внешней обработки регламентного задания с формой настройки параметров выполнения

Инструментарий разработчика Универсальные функции v8 v8::УФ 1cv8.cf Абонемент ($m)

Шаблон внешней обработки призван упростить программисту процесс реализации внешнего регламентного задания. Пригоден к использованию во всех конфигурациях на управляемых формах, в которых присутствует подсистема "Дополнительные отчеты и обработки" из состава библиотеки стандартных подсистем (БСП) версии 2.1 и выше.

1 стартмани

28.05.2017    23616    169    Bassgood    10    

Универсальная процедура по загрузке файла из интернета

Практика программирования WEB Универсальные функции v8 v8::УФ 1cv8.cf Абонемент ($m)

Передаем в процедуру всего два параметра: откуда взять и куда положить. Остальное она сделает сама

1 стартмани

17.05.2017    15207    12    json    2    

Правильный вопрос

Универсальные функции v8 1cv8.cf Абонемент ($m)

Заметили, что пользователи бездумно кликают по первой попавшейся кнопке, не удосужившись прочитать текст предупреждения или вопроса? Данная функция призвана решить данную проблему!

1 стартмани

15.05.2017    10960    0    SvoyakMartin    15    

daСклонение: склонение ФИО, должностей, чисел, прилагательных, существительных на языке 1С + ТестЦентр Промо

Универсальные функции v8 1cv8.cf Абонемент ($m)

Функция предназначена для склонения выражений, которые часто требуется при формировании печатных форм договоров и прочих печатных форм. Функция склоняет по падежам ФИО, должности, числительные, валюты, единицы измерения, предметы. Также функция склоняет глаголы и прилагательные по числам и родам и существительные по числам. Имеется режим определения рода переданного выражения. Поддержка форматной строки для вывода результата. Функция не использует внешние библиотеки и веб-сервисы, написана на чистом языке 1С, и поэтому легко встраивается в любую конфигурацию или внешнюю обработку. Правила склонения оформлены в виде таблицы и могут быть легко изменены при необходимости.

1 стартмани

14.02.2015    100898    97    daMaster    90    

Web сервис 1С

Практика программирования Универсальные функции WEB v8 1cv8.cf Россия Абонемент ($m)

Пример реализации простого web сервиса. Особенность: не используются XDTO пакеты, определяемые в дереве конфигураций; возможность передачи любых структур данных: списки значений, таблицы значений, табличные документы и т.п.

1 стартмани

21.03.2017    29088    85    hiduk    34    

Набор математических функций

Универсальные функции v8 1cv8.cf Абонемент ($m)

Небольшой набор математических функций для работы с массивами чисел.

1 стартмани

12.01.2017    13408    4    SvoyakMartin    17    

Сравнение строк. Наибольшая общая последовательность

Универсальные функции v8 1cv8.cf Россия Абонемент ($m)

Заданы две строки Строка1 и Строка2. Требуется найти наибольшую общую подпоследовательность (НОП) этих строк.

1 стартмани

14.11.2016    9274    2    Alex_YAM    4    

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

Универсальные функции Практика программирования v8 1cv8.cf Абонемент ($m)

Небольшая функция, возвращающая таблицу значений со всеми датами за период. Интервал дат можно задать любой: Секунда, Минута, Час, День, Неделя, Месяц, Квартал, Полугодие, Год.

1 стартмани

14.06.2014    36984    16    mtv:)    6    

Набор процедур для парсера консоли запросов

Инструментарий разработчика Универсальные функции v8 1cv8.cf Абонемент ($m)

Данный набор функций и процедур необходимо вставить в Консоль запросов для управляемого приложения 1С 8.2 - 8.3 (Такси) http://infostart.ru/public/64522/, и вы получите возможность разбирать сложные запросы на вложенные, вносить необходимые правки и собирать измененные подзапросы в запрос. Данный модуль не содержит консоли!!! Ее придется отдельно скачать по ссылке http://infostart.ru/public/64522/

1 стартмани

09.11.2016    9391    4    blockcode    5