Сдвиг даты контроля последовательности проведения документов в БП 3.0

26.10.21

База данных - Инструменты администратора БД

Обработка для контроля и сдвига даты контроля последовательности проведения документов в БП 3.0 при необходимости.

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

Наименование Файл Версия Размер
Сдвиг даты контроля последовательности проведения документов в БП 3.0:
.epf 10,60Kb
10
.epf 10,60Kb 10 Скачать

Потребовалось как-то в закрытом отчетном периоде в одном из документов поступления заменить имя контрагента взамен ошибочного. Перепроводить не резон. На основании материалов разных публикаций здесь и на других сайтах была написана эта внешняя обработка. Её возможности:

1. По кнопке "Анализ последовательности" выводит таблицу документов с нарушением последовательности проведения с указанием даты и времени.

2. Позволяет выбрать организацию для анализа последовательности.

3. Предлагает три варианта исправления нарушения последовательности:

- поправить состояние первого в таблице "документа-нарушителя";

- поправить несколько документов до требуемой даты;

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

4. Обработка работоспособна в обычном интерфейсе и в Такси.

5. Фактически обработка в наборе записей последовательности меняет статус движения документа с "ПроведенСНарушениемПоследовательности" на "ПроведенВПоследовательности".

Использовать обработку надо очень осторожно и "с умом". Обязательно надо понимать, когда можно ее применять, а когда нельзя и к чему могут привести такие исправления.

Сам пользуюсь ею уже с полгода: бухгалтерам иногда требуется что-то исправить в закрытых периодах. У нас БП 3.0.37.41. Учет по средней. Используем обычный интерфейс.

Прошу критических замечаний от спецов, к каковым себя не отношу.

За возможные кусочки плагиата кода или идеи прошу сильно не ругать.

Сдвиг контроля последовательности

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

12000 руб.

06.12.2023    2969    13    1    

34

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 8000 руб.

10.11.2023    3512    11    1    

33

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2520 руб.

14.01.2013    177729    1073    0    

849

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    27373    79    146    

59

Система хранения присоединенных файлов в томах на диске

Инструменты администратора БД Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    61312    88    59    

73

"Менеджер потоков 2.1": УПП: "Восстановление партий"

Инструменты администратора БД Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет Управленческий учет Платные (руб)

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11744    5    9    

7

Брандмауэр для сервера 1С Предприятие 8 - внешнее управление сеансами

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

3600 руб.

06.02.2017    31106    31    18    

47

Хранилище файлов на SQL

Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Управленческий учет Платные (руб)

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    10978    5    8    

9
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. romku 10 27.04.15 21:29 Сейчас в теме
В БП 3.0.39.57 нет процедуры РаботаСПоследовательностями.УстановитьПоследовательность(
Может удалили? Поделитесь пож-та.
2. e401 30 28.04.15 19:27 Сейчас в теме
(1) romku, Вам нужна сама функция?
Вроде как вот она
// Устанавливает состояние "Проведен в последовательности" для всех записей 
// последовательности за указанный период. 
//
// Параметры:
// 	Организация 	- СправочникСсылка.Организации, по которой меняется последовательность.
//	ДатаНачала 		- Дата начала периода. Если указана пустая дата, то самого начала последовательности.
// 	ДатаОкончания	- Дата окончания периода, за который необходимо установить состояние последовательности.
//
// Возвращаемое значение:
//	Момент времени, на который фактически была установлена последовательность.
//
Функция УстановитьПоследовательность(Организация, ДатаНачала, ДатаОкончания) Экспорт

	МоментСледующегоДокумента = Неопределено;
	
	// Для изменения состояний в последовательности блокируем последовательность
	// в целом по организации. 
	// Установка управляемой блокировки возможно только в рамках транзакции.
	// В случае возникновения ошибок отменяем транзакцию.
	
	НачатьТранзакцию();

	Попытка 

		УстановитьБлокировкуПоследовательностиПоОрганизации(Организация);

		Запрос = Новый Запрос;
		Запрос.УстановитьПараметр("Организация", 	Организация);
		Запрос.УстановитьПараметр("ДатаНачала", 	ДатаНачала);
		Запрос.УстановитьПараметр("ДатаОкончания", 	ДатаОкончания);

		Запрос.Текст = 
		"ВЫБРАТЬ РАЗЛИЧНЫЕ
		|	ТаблицаПоследовательности.Регистратор
		|ИЗ
		|	Последовательность.ДокументыОрганизаций КАК ТаблицаПоследовательности
		|ГДЕ
		|	ТаблицаПоследовательности.Организация = &Организация
		|	И &УсловиеПериод
		|	И ТаблицаПоследовательности.СостояниеПроведения В (ЗНАЧЕНИЕ(Перечисление.СостоянияПроведенияВПоследовательности.ПроведенСНарушениемПоследовательности), ЗНАЧЕНИЕ(Перечисление.СостоянияПроведенияВПоследовательности.ИсключенИзПоследовательности))";
		
		ТекстУсловиеПериод = "";
		Если ЗначениеЗаполнено(ДатаНачала) И ЗначениеЗаполнено(ДатаОкончания) Тогда
			ТекстУсловиеПериод = "ТаблицаПоследовательности.Период МЕЖДУ &ДатаНачала И &ДатаОкончания";
		ИначеЕсли ЗначениеЗаполнено(ДатаНачала) Тогда
			ТекстУсловиеПериод = "ТаблицаПоследовательности.Период >= &ДатаНачала";
		ИначеЕсли ЗначениеЗаполнено(ДатаОкончания) Тогда
			ТекстУсловиеПериод = "ТаблицаПоследовательности.Период <= &ДатаОкончания";
		КонецЕсли;
		
		Если ЗначениеЗаполнено(ТекстУсловиеПериод) Тогда
			Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловиеПериод", ТекстУсловиеПериод);
		Иначе
			Запрос.Текст = СтрЗаменить(Запрос.Текст, "И &УсловиеПериод", "");
		КонецЕсли;
		
		Выборка = Запрос.Выполнить().Выбрать();
		
		НаборЗаписей = Последовательности.ДокументыОрганизаций.СоздатьНаборЗаписей();
		
		Пока Выборка.Следующий() Цикл
		
			НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
			НаборЗаписей.Прочитать();
			
			ВГраница = НаборЗаписей.Количество() - 1;
			
			Для Сч = 0 По ВГраница Цикл
				// Удаляем с конца набора
				Движение = НаборЗаписей[ВГраница - Сч];
				
				// У документа могут быть записи последовательности по нескольким организациям,
				// если у него ранее меняли реквизит Организация, поэтому обрабатываем
				// только записи по текущей организации.
				Если Движение.Организация = Организация Тогда
				
					Если Движение.СостояниеПроведения = Перечисления.СостоянияПроведенияВПоследовательности.ИсключенИзПоследовательности Тогда
						НаборЗаписей.Удалить(Движение);
					Иначе
						Движение.СостояниеПроведения = Перечисления.СостоянияПроведенияВПоследовательности.ПроведенВПоследовательности;
					КонецЕсли;
				
				КонецЕсли;
			
			КонецЦикла;
			
			НаборЗаписей.Записать();
		
		КонецЦикла;
		
		Если ЗначениеЗаполнено(ДатаОкончания) Тогда
		
			// Следующий по очереди документ объявляем проведенным с нарушением, 
			// чтобы с него начать потом перепроведение.
			МоментСледующегоДокумента = МоментВремениПервогоДокументаВПоследовательности(Организация, ДатаОкончания + 1);
			
			Если МоментСледующегоДокумента <> Неопределено Тогда
			
				СброситьСостояниеПоследовательностиДокумента(
					МоментСледующегоДокумента.Ссылка, 
					МоментСледующегоДокумента.Дата,
					Организация);
				
			КонецЕсли;
		
		КонецЕсли;
		
		ЗафиксироватьТранзакцию();
	
	Исключение
	
		ТекстОшибки = ОписаниеОшибки();
		ОписаниеОшибки = ИнформацияОбОшибке();
	
		ОтменитьТранзакцию();
		
		ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки);
		ЗаписьЖурналаРегистрации(НСтр("ru = 'Операция не выполнена'"), УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки.Описание);
		ВызватьИсключение ТекстОшибки;
	
	КонецПопытки;
		
	Возврат МоментСледующегоДокумента;
	
КонецФункции
Показать
3. sbv2005 347 17.07.15 12:43 Сейчас в теме
Хорошая обработка. Спасибо!
4. gull22 95 26.10.15 09:11 Сейчас в теме
Спасибо за обработку, пользовался. Обновили платформу и релиз. Попытался воспользоваться 2-м методом(по дате),выдана ошибка:
{Форма.Форма.Форма(108)}: Метод объекта не обнаружен (УстановитьПоследовательность)
РаботаСПоследовательностями.УстановитьПоследовательность(Организация,ДатаНарушенияПоследовательности,КонецДня(НоваяДатаКонтроляПоследовательности));

Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.42.46) 1С:Предприятие 8.3 (8.3.6.2332)
5. e401 30 26.10.15 14:57 Сейчас в теме
(4) gull22,
Добрый день, Юрий!
Спасибо за замечание. Да, действительно, перестал работать второй вариант, т.к. разработчики убрали из общего модуля РаботаСПоследовательностями функцию УстановитьПоследовательность(...), которую я здесь использовал.
Подправил, добавив копию этой функции в модуль формы самой обработки. Выложил новую версию.
Юрий, а куда можно Вам выслать обновленную версию обработки?
6. Astafan 09.10.17 15:51 Сейчас в теме
Опять 1С все сломала. Не работает данный инструмент.
7. e401 30 18.10.17 10:51 Сейчас в теме
(6) Добрый день, Александр!
Подправил, заработала снова.
Спасибо, рад, что кому-то пригодилось))
8. snip 2 22.10.21 13:37 Сейчас в теме
Добрый день!
Нужно поправлять:
1. Добавить параметр в МоментНарушенияПоследовательности
Процедура ОпределитьДокументСНарушениемПоследовательностиНаСервере()
ПолучитьТаблицуПоследовательностей();
МоментНарушения = РаботаСПоследовательностями.МоментНарушенияПоследовательности(Организация, Дата("20300326062421"));
2. Не заполняет таблицу ...... пока не посмотрел :)
9. snip 2 22.10.21 13:44 Сейчас в теме
Посмотрел.
В запросе берется организация не из формы, а по умолчанию:
Запрос.УстановитьПараметр("Организация",Справочники.Организации.ОрганизацияПоУмолчанию());
10. e401 30 26.10.21 13:54 Сейчас в теме
Спасибо, уважаемый Snip!
Да, Вы абсолютно правы, это была ошибка и я её вовремя не обнаружил, т.к. разрабатывал для базы с одной организацией. Поправил обработку и перевыложил.
Оставьте свое сообщение