IE2017

БП 3.0 (УФ) Заполнение требования-накладной остатками ТМЦ по складу с отборами по счетам и номенклатурам

Обработки - Обработка документов

Обработка заполнения документа Требование-Накладная остатками по складу для Бухгалтерии Предприятия 3.0 (1С 8.3 Управляемые формы). Возможен отбор (или исключение из результатов) по счету, списку счетов, группе, элементам и группам номенклатур.

Обработка предназначена для автоматического создания (или заполнения существующего) документа "Требование-накладная" остатками ТМЦ с отбору по указанному счету или счетам, указанным группам номенклатур (или элементам) на дату документа для БП 3.0 (Управляемые формы).

Данная обработка является развитием этой обработки //infostart.ru/public/462717/

Изменения в сравнении с предыдущей версией:

1) Поле "Отбор по счету" заменено на поле-список со следующими режимами отбора по счету:

  • "по всем 10-м счетам ('10.* Материалы')" - отбор по группе счетов 10, за исключением счетов 10.07 и 10.11 (которые не могут числиться на складе).
  • "только по счетам из списка" - будут отобраны только остатки по указанным счетам или группам счетов.
  • "за ислючением счетов из списка" - будут отобраны все остатки по выбранному складу, за исключением остатков по указанным счетам (группам счетов) и остатков на  10.07 и 10.11.

2) Добавлена возможность отбора по группам номенклатур (поле "Номенклатуры: Отбор") со следующими режимами отбора:

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

3) Обработка выполняется в один запрос, без перебора результатов в цикле по условию.

Обработка может быть использована как простая внешняя обработка (через меню "Файл" -> "Открыть"), так и интегрирована в "Дополнительные отчеты и обработки" ("Администрирование" -> "Печатные формы, отчеты и обработки" -> "Дополнительные отчеты и обработки" -> "Создать" ->  "Загрузить из файла") в качестве обработки с параметром "Заполнение Объекта".

 Использование в качестве внешней обработки.

При выполнении обработки через  меню "Файл" -> "Открыть" обработка по кнопке "Сформировать документ" создает новый документ "Требование-Накладная" с указанными параметрами (дата, организация, подразделение, склад). Все поля (кроме "Отбирать остатки только по счету") обязательны для заполнения. Никакие другие данные в документе, кроме указанных в полях обработки и табличной части "Материалы"  заполнены не будут.

 Использование в "Дополнительных отчетах и обработках".

После регистрации обработки  ("Администрирование" -> "Печатные формы, отчеты и обработки" -> "Дополнительные отчеты и обработки" -> "Создать" ->  "Загрузить из файла") будет фигурировать в списке дополнительных обработок под именем "Заполнить Требование-Накладную остатками по складу".

Добавляет в меню "Заполнить" документа "Требование-накладная" два пункта: "Заполнить остатками ТМЦ на складе" и "Заполнить остатками ТМЦ с фильтром по субсчету".

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

При вызове команды  "Заполнить остатками ТМЦ на складе" (и в случае заполненных в документе полей  "дата", "организация", "подразделение", "склад") табличная часть документа будет заполненна остатками ТМЦ на указанную дату без дополнительных запросов.

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

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

Таким образом, работу обработки при вызове команды " Заполнить остатками ТМЦ на складе " из документа, имеющего незаполненные поля, можно считать идентичной при вызове комманды "Заполнить остатками ТМЦ с фильтром по субсчету ".

Я не уверен в стопроцентной правильности работы с управляемыми формами (вызове из документа), но работоспособность через   "Файл" -> "Открыть" сохраняется в любом случае.

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

Наименование Файл Версия Размер
БП 3.0 (УФ) Заполнение требования-накладной остатками ТМЦ по складу с отборами по счетам и номенклатурам: (v1.03)
.epf 12,75Kb
17.05.17
21
.epf 12,75Kb 21 Скачать
БП 3.0 (УФ) Заполнение требования-накладной остатками ТМЦ по складу с отборами по счетам и номенклатурам (v1.03) (Учет по подразделениям не ведется):
.epf 12,78Kb
09.08.17
0
.epf 12,78Kb Скачать

См. также

Лучшие комментарии
16. Александр Чесноков (chesnokov-a-v) 98 13.05.17 19:52 Сейчас в теме
БП 3.0.49.28
Учет по подразделениям не ведется. Скорее всего поэтому у меня тоже ничего не заполняется.
+ Субконто Склад - Третье по счету.
1. Номенклатура
2. Партии
3. Склады

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

...Показать Скрыть

...

Ну и проверку на заполнение подразделения я у себя отключил.
Теперь все работает.
Остальные комментарии
1. Алексей Воротягин (klaus38) 29.05.16 09:47 Сейчас в теме
2. Дмитрий Гуренко (HorusTheOne) 42 30.05.16 08:22 Сейчас в теме
Краткий ответ - да, 41-й счет подцепит.

Обработка не проверяет счета, указываемые в отборе, на логику. Поэтому при формальном совпадении видов субконто (1-е субконто - номенклатура, второе - склад) обработка будет работать на любых счетах. Т.е. корректными счетами, которые можно указать в поле отбора, и по которым могут быть выбраны остатки обработкой в стандартной конфигурации БП являются: 07, 08.04, группа 10-х (кроме 10.07 и 10.11), 21, группа 41-х, 43.
3. Вячеслав Тихонов (supporting) 15.06.16 11:59 Сейчас в теме
У тебя ошибка в запросе,"Склад" не "субконто2" а "субконто3"...
4. Дмитрий Гуренко (HorusTheOne) 42 15.06.16 17:09 Сейчас в теме
В каком счете какой конфигурации?
5. Вячеслав Тихонов (supporting) 17.06.16 14:37 Сейчас в теме
Бух 3.0 версия 236...не в счете,а при указании условия...субконто2 = &Склад
6. Вячеслав Тихонов (supporting) 17.06.16 14:38 Сейчас в теме
7. Дмитрий Гуренко (HorusTheOne) 42 17.06.16 16:58 Сейчас в теме
В бухгалтерии предприятия редакции 3.0 (3.0.43.155) Корпоративной со стандартным планом счетов третьим субконто вида "Склады" имеют только два счета:
003.01 - забалансовый "Материалы на складе"
и 004.01 - забалансовый "Товары на складе".
Но там и номенклатура - второе субконто, так что запрос на этих счетах не будет работать. Но насколько я помню
1) я не приводил эти счета в качестве обрабатываемых обработкой.
2) заполнение Требования-Накладной остатками по этим счетам не выглядит логичным с точки зрения БУ.

Поэтому, я не совсем понимаю, о какой ошибке ты говоришь.
Ты точно план счетов конфигурации БП 3.0 Корп платформы 1с 8.3 описываешь?
И не перелопачен ли твой план счетов чьими-то игрывыми руками?
8. Анна Анна (dodanna) 07.09.16 15:14 Сейчас в теме
Добрый день!
Не загружает остатки по складу, ссылка на ошибку "не заполнено подразделение".... Не понимаю где и для чего его запонять...Подскажите, пожалуйста.
9. ****** ****** (nasha4) 28.11.16 17:25 Сейчас в теме
платформа: 1С:Предприятие 8.3 (8.3.9.1850)
Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.44.199)
Вариант интерфейса: Такси

ВОТ ЧТО ВЫДАЕТ
Ошибки:
--------------------------------------------------------------------------------
28.11.2016 18:20:58
Неизвестный идентификатор формы
--------------------------------------------------------------------------------
28.11.2016 18:20:39
{ВнешняяОбработка.ЗаполнитьТНОстаткамиПоСкладуСОтборамиПоСчетамНоменклатурам.Форма.Форма.Форма(210)}: Поле объекта недоступно для записи (Окно)
Для каждого Окно из Окна Цикл
10. Дмитрий Гуренко (HorusTheOne) 42 29.11.16 08:24 Сейчас в теме
(9)
Прошу прощения, но таки - да. Обработка не всегда работает при запуске из открытой формы документа (теряет идентификатор формы). Код заполнения я взял из чьей-то обработки, не полностью удостоверившись в ее работоспособности.
Это моя вина, но на исправление сейчас нет времени и знаний, тем более, что при всех иных способах запуска - обработка работает корректно.
11. Елена Стар (vado.shop) 18.04.17 17:57 Сейчас в теме
Обработка не работает при всех вариантах запуска. Пишет, что "Команда выполняется" и потом ничего. Просто голый документ. Жаль.
12. Дмитрий Гуренко (HorusTheOne) 42 20.04.17 08:29 Сейчас в теме
В вашем сообщении нет ни версии конфигурации, ни ее названия. Ничего, что могло поспособствовать разрешению проблемы. Жаль.
Подозреваю, что корень проблемы тот же, что и у автора (9):
В какой-то момент (уже после написания обработки) буквосочетание "Окно", использованное мной в качестве переменной, стало служебным словом. И, соответственно, код обработки перестал выполняться.

Я перезалил 20.04.17 обработку в этой публикации, с учетом этого обстоятельства. Пользуйтесь.
13. Алексей Анищенко (Akela80) 23.04.17 13:00 Сейчас в теме
Здравтсвуйте. У меня обработка не работает.
ТЧ не заполняется остатками
1С:Предприятие 8.3 (8.3.10.2168)
Бухгалтерия предприятия, редакция 3.0 (3.0.49.17)
14. Оксана Баринова (user748202) 06.05.17 14:31 Сейчас в теме
Та же проблема. Не заполняет табличную часть документа. БП 3.0.49.27
15. c (sergoqwe) 06.05.17 16:20 Сейчас в теме
не заполняет
8.3.8.2137
бух 3.0.43.241
16. Александр Чесноков (chesnokov-a-v) 98 13.05.17 19:52 Сейчас в теме
БП 3.0.49.28
Учет по подразделениям не ведется. Скорее всего поэтому у меня тоже ничего не заполняется.
+ Субконто Склад - Третье по счету.
1. Номенклатура
2. Партии
3. Склады

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

...Показать Скрыть

...

Ну и проверку на заполнение подразделения я у себя отключил.
Теперь все работает.
17. Дмитрий Гуренко (HorusTheOne) 42 17.05.17 11:09 Сейчас в теме
(16) Будучи сломленным авторитетом вашего рейтинга, под пристальным взором ясного взора с вашего аватара, а также обладая недостатком времени и знаний, я просто вставил ваш код в обработку и все заработало :)

Без шуток, я сейчас временно отошел от программирования в осьмерке и порядком уже подзабыл устройство БП, и счел наиболее рациональным воспользоваться вашим кодом в перевыложенной сегодня (17.05.2017) обработке.
Благодарю Вас за помощь и прошу совета, каким именно образом я мог бы быть вам полезен в ответ.
18. Дмитрий Гуренко (HorusTheOne) 42 17.05.17 14:51 Сейчас в теме
Прошу скачавших более ранние (и одновременно менее рабочие) версии в личку. Ответом я вышлю текущую версию.
19. Александр Чесноков (chesnokov-a-v) 98 20.05.17 08:27 Сейчас в теме
(17) Спасибо за предложение. Вы мне и так помогли, написав данную обработку (а то что ее пришлось немного подправить, так это ерунда).
20. наталия сидорова (soln08) 20.06.17 15:56 Сейчас в теме
пишет "поле объекта недоступно для записи (Окно)". как можно исправить?
21. Дмитрий Гуренко (HorusTheOne) 42 21.06.17 08:56 Сейчас в теме
(20) Доброго Вам дня!
Вы уверены, что скачали эту обработку после 20 апреля 17-го года?
Если "Да", то это крайне мистическое событие, потому что начиная с 20.04 в коде обработки отсутствует слово "окно" и такая ошибка невозможна в принципе.
Если "нет" - то Вам следует или скачать обработку по приведенной в публикации ссылке, или обратиться ко мне в личную почту с указанием даты и времени предыдущего скачивания (данные находятся в разделе "транзакции" вашего кабинета), и я вам отправлю свежую версию.
22. Шевелев Дмитрий (CAIN) 4 26.07.17 21:30 Сейчас в теме
Коллега, такая же ерунда, обработка выдает ошибку с окном, потратил 2 стартмани, обидно...
23. Дмитрий Гуренко (HorusTheOne) 42 27.07.17 10:07 Сейчас в теме
(22) Коллега, пожалуйста, ответе на два вопроса:
- Как у вас получилось потратить два стартмани на обработку, которая стоит 1$m?
- Каким образом исполнение обработки вызывает ошибку неправильного наименования переменной ("Окно"), если текст обработки не содержит данной переменной?
24. Шевелев Дмитрий (CAIN) 4 27.07.17 16:00 Сейчас в теме
(23)
1) В две Ваших темы провалился актуальную и не актуальную
2) Выходит что ошибку выдает.
Воспринимайте критику без сарказма.
25. Дмитрий Гуренко (HorusTheOne) 42 27.07.17 16:52 Сейчас в теме
А никакого сарказма и нет. Своим первым вопросом я пытался добиться от вас признания факта, что вы скачали, потратив свои $m, обработку, в описании которой красным цветом указано "неактуальная" и приведена ссылка на правильную.
А вот ваше утверждение под пунктом 2 меня реально смущает. Вы точно уверены, что запускаете обработку из этой публикации, в названии которой фигурирует "(v1.03)"? Если "нет" - то все таки следует запускать именно ее. Если "да" - то это чудо, потому что в коде нет слова "Окно". В этом случае сообщите мне в личную почту любой альтернативный канал связи, завтра попробуем разобраться, как же так выходит.

Вы опять можете посчитать мой вопрос сарказмом, но практика показывает, что после него ошибка с "Окном" у клиента все таки пропадает :)
26. Шевелев Дмитрий (CAIN) 4 27.07.17 22:17 Сейчас в теме
(25)
С открытием разобрались, но есть еще один момент, открывается окно выбора настроек заполнения, выбираем счет и нажимаем заполнить, но ничего не происходит, докмуент предварительно необходимо записывать???
27. Дмитрий Гуренко (HorusTheOne) 42 28.07.17 08:42 Сейчас в теме
Нет, документ специально записывать не нужно. Если в этом будет необходимость, обработка сама предложит его записать. Обычно, если ТЧ документа после выполнения обработки остается пустым, то это обозначает, что на выбранных счетах отсутствуют номенклатуры в разрезе Организация/Подразделение/Склад. Обратите внимание - в данной обработке ведение учета по подразделениям - обязательно. Если в вашей организации не ведется такой учет, обратитесь ко мне в личку.
С открытием разобрались

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