INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Федотов Виталий | Ведущий специалист | ГК Невада

«Повышение эффективности работы отдела разработки»

Основные слагаемые успеха: - Архитектура - Грамотный код - Ориентация на повторное использование кода - Управление ошибками Методы: - Обучение линейного и руководящего состава - Внимание на архитектуру - Итерационный подход к разработке API - Профилирование Результат: Повышение производительности труда отдела разработки в 2-3 раза. Особенность доклада заключается в изложении личного опыта построения работы отдела, где описанные методы были с успехом применены и повысили производительность труда отдела разработки.

Обход ошибки контроля остатков в Бухгалтерии 3.0.58...3.0.59.56 ПРОФ

Программирование - Ошибки в отраслевых решениях

2
В последних версиях 1С Бухгалтерии предприятия 3.0.58...3.0.59.56 ПРОФ есть досадная ошибка контроля остатков материалов и товаров - при попытке провести документы списания выдается ошибка с сообщением: Указанное количество превышает остаток. Остаток: 0. Хотя все отчеты показывают, что материала хватает. Ошибка кроется в общем модуле УчетТоваров. Сделал расширение конфигурации, чтобы обойти проблему, и делюсь решением, чтобы не дожидаться исправления от 1С и не снимать конфигурацию с поддержки.

В конфигурациях Бухгалтерии предприятия 3.0.58...3.0.59.56 ПРОФ, если включен учет подразделениям (функциональная опция ВестиУчетПоПодразделениям) и не отключен контроль остатков (администрирование -> проведение документов) при проведении документа Требование-накладная (возможно и других, не проверял) появляется ошибка:

Некорректно заполнена колонка "Количество" в строке 1 списка "Материалы". Указанное количество превышает остаток. Остаток: 0; Не хватает: N.

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

Сообщение на v8@1c.ru о данной ошибке отправлено.

Анализ кода в общем модуле  УчетТоваров в запросе остатков у Функции ПолучитьОстаткиТоваров показывает лишнее условие по Подразделению:

		Текст = Текст + "
		|ВЫБРАТЬ
		|	Остатки.Счет КАК СчетУчета,
		|	Остатки.Подразделение КАК Подразделение,
		|	Остатки.Субконто1 КАК Номенклатура,
		|	ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) КАК ДокументОприходованияДата,
		|	&ПустаяПартия КАК ДокументОприходования,
		|	&ПустойСклад КАК Склад,
		|	Остатки.Организация КАК Организация,
		|	СУММА(ЕСТЬNULL(Остатки.КоличествоОстатокДт, 0)) КАК КоличествоПоСкладу,
		|	СУММА(ЕСТЬNULL(Остатки.КоличествоОстатокДт, 0)) КАК Количество,
		|	СУММА(ЕСТЬNULL(Остатки.СуммаОстатокДт, 0)) КАК Стоимость,
		|	СУММА(ЕСТЬNULL(Остатки.СуммаНУОстатокДт, 0)) КАК СтоимостьНУ,
		|	СУММА(ЕСТЬNULL(Остатки.СуммаПРОстатокДт, 0)) КАК СтоимостьПР,
		|	СУММА(ЕСТЬNULL(Остатки.СуммаВРОстатокДт, 0)) КАК СтоимостьВР
		|ИЗ
		|	РегистрБухгалтерии.Хозрасчетный.Остатки(
		|			&МоментВремени,
		|			Счет В (&СчетаУчетаН),
		|			&ВидыСубконтоН,
		|			&УсловиеПоПодразделению
		|				И Субконто1 В (&МассивНоменклатуры)
		|				И Организация = &Организация) КАК Остатки
		|
		|СГРУППИРОВАТЬ ПО
		|	Остатки.Счет,
		|	Остатки.Подразделение,
		|	Остатки.Субконто1,
		|	Остатки.Организация";



Если БухгалтерскийУчетПереопределяемый.ВестиУчетПоПодразделениям() Тогда
	Текст = СтрЗаменить(Текст, "&УсловиеПоПодразделению", "Подразделение = &Подразделение");
Иначе
	Текст = СтрЗаменить(Текст, "&УсловиеПоПодразделению", "ИСТИНА");
КонецЕсли;

На выходе получаем, например такое:

ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(
            &МоментВремени,
            Счет В (&СчетаУчетаНПС),
            &ВидыСубконтоНПС,
            Подразделение = &Подразделение
                И Субконто1 В (&МассивНоменклатуры)
                И Субконто3 В (&МассивСкладов)
                И Организация = &Организация) КАК Остатки

На счетах учета материалов и товаров в БП Проф не ведется учет по подразделениям (в КОРП ведется), и результат такого запроса всегда пустой (проверялось на платформах 8.3.10.2650 и 8.3.11.3034, на файловых базах).

Решение - исключить условие Подразделение = &Подразделение в условиях к регистру бухгалтерии.

В прилагаемом расширении с помощью конструкции &Вместо("Типовая") ... ПродолжитьВызов() (подробнее о расширении модулей http://v8.1c.ru/o7/201603module/index.htm) сначала выполняется типовой код функции ПолучитьОстаткиТоваров, и если на выходе пустая таблица значений запускается практически такой же код, но измененный - чтобы исключить условие Подразделение = &Подразделение если на счетах учета учет по подразделениям не ведется.

Расширение писалось для обхода проблемы с документом Требование-накладная и для него работает. Перед использованием прошу проверить подходит ли расширение вам и не повлияет ли оно на другие важные для вас документы.

Расширение нужно подключить через Администрирование -> Печатные формы, обработки, отчеты -> Расширения или Все функции -> Стандартные -> Управление расширениями конфигурации, сняв галочку безопасный режим.

2

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

Наименование Файл Версия Размер
Обход ошибки контоля отстаков при проведении документов в Бухгалтерии 3.0.58...3.0.59.56 ПРОФ:
.cfe 9,33Kb
23.03.18
2
.cfe 9,33Kb 2 Скачать

См. также

Сортировка: Древо
В этой теме еще нет сообщений.
Оставьте свое сообщение