Роли и Права

1. Zhuk1234 06.04.16 11:27 Сейчас в теме
Добрый день. Есть Роль "Менеджер по Продажам" - есть док. Заказ покупателя, на его основании можно создать Док. "Приходный Кассовый Ордер" и "Реализация Товаров и Услуг" в чем проблема, док "Приходный Кассовый Ордер" - создается отлично, а "Реализация Товаров и Услуг" не создается, выбивает ошибку "Неверное имя колонки". Права на Документы стоят одинаковые. В чем может быть проблема? "Упп для Украины" Управляемое приложение
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. starjevschik 06.04.16 11:35 Сейчас в теме
(1) Zhuk1234, судя по сообщению об ошибке, это ошибка в коде, а не в правах.
3. Xershi 1484 06.04.16 11:37 Сейчас в теме
(1) Zhuk1234, возможно у вас в сообщении есть кнопка подробнее с текстом ошибки!
И она уже скажет, что у вас не так!
Если у вас проблема с правами, то зайдите в ТЖ и посмотрите есть нарушение прав, когда вы эту операцию будете совершать!
5. Zhuk1234 06.04.16 11:46 Сейчас в теме
(3) Xershi, Под полными правами все работает отлично, под правами "Менеджер по Продажам" - нет. так что ошибка не в коде. Кнопке подробнее нет -_-
6. Stackmann 06.04.16 12:00 Сейчас в теме
(5) Zhuk1234,
Ошибка явно где-то в коде. Может не хватать прав у роли на какую-нибудь таблицу и как следствие не создается коллекция значений с нужными колонками. Кнопки "Подробнее" нет из-за недостаточности прав роли "Менеджер по Продажам". Указание на строку в коде с ошибкой нужно смотреть в журнале регистрации.
7. Xershi 1484 06.04.16 12:03 Сейчас в теме
(5) Zhuk1234, ну раз кнопки нет, вторую часть поста прочтите и дайте ответ!
28. kasper076 104 07.04.16 11:29 Сейчас в теме
(5) Zhuk1234, так зайдите в конфигуратор под полными правами, а отладку запустите от имени нужного пользователя. Место где происходит ошибка уже известно.
4. AlexeyMalko 06.04.16 11:41 Сейчас в теме
а в отладке посмотреть когда ошибка вылазит нет возможности? у меня такое когда то было в конфигурации Розница - забыли колонку какую то по НДС добавить. Ещё можно позвонить и спросить у разработчиков у всех ли такая ошибка или это только у вас - а потом уже искать выход , как правильно лучше когда ошибку исправят обновлением , так надёжней и без "костылей"
8. SaschaL 06.04.16 12:09 Сейчас в теме
А если то же самое проделать под полными правами? Интересно будет ли выводиться подобная ошибка
9. Xershi 1484 06.04.16 12:10 Сейчас в теме
(8) SaschaL, уже написали, что нет))
10. v3rter 06.04.16 12:12 Сейчас в теме
В конфигураторе включить Отладка - Остановка по ошибке - [v] Останавливаться по ошибке,
создать проблемный документ на основании и вывалиться в отладчик на строку с ошибкой?

Скорее всего это будет процедура ОбработкаЗаполнения модуля объекта Реализация товаров и услуг.
11. Zhuk1234 06.04.16 12:28 Сейчас в теме
(10) v3rter, все верно, в обработку заполнения посылает, но почему тогда с полными правами все ок? не совсем понятно что делать Ошибка "{Документ.РеализацияТоваровУслуг.МодульОбъекта(1545)}: Ошибка при вызове метода контекста (Свернуть)
ТаблицаБезЦен.Свернуть("Номенклатура, ХарактеристикаНоменклатуры, КоличествоОстатокОрганизации","КоличествоОстатокПоЗаказу");
по причине:
Неверное имя колонки"
12. SaschaL 06.04.16 13:06 Сейчас в теме
(11) Zhuk1234,
ТаблицаБезЦен
это таблица значений или это табличная часть документа?
суда по названию это скорее таблицаЗначение. Может поглядеть по коду где она создается и заполняется, и это наведет на мысль
16. Xershi 1484 06.04.16 15:56 Сейчас в теме
(11) Zhuk1234, покажите всю процедуру в которой эта строка находится.
13. v3rter 06.04.16 13:18 Сейчас в теме
Открыть в отладчике табло, добавить в него ТаблицаБезЦен и посмотреть по F2 ее содержимое перед ошибкой - какой колонки не хватает.
Скорее всего это КоличествоОстатокОрганизации. Возможно, у менеджера нет прав на эту организацию.
14. v3rter 06.04.16 13:30 Сейчас в теме
Возможно, в процессе переделки обработки заполнения пригодится конструкция вида
Если ТипЗнч(Основание) = Тип("ДокументСсылка.ЗаказПокупателя")
15. Zhuk1234 06.04.16 15:52 Сейчас в теме
(14) v3rter, извиняюсь, глупый вопрос, но отладку правильно делать так? http://1cprogrammistu.ru/193-otladka-klientskogo-prilozheniya-v-1s-predpriyatii.html
делаю, но остановок нет, сразу ошибка выскакивает и с неё можно перейти в конфигуратор. Соответственно не могу просмотреть значение ТаблицаБезЦен или может вы знаете где можно еще почитать об отладке в таком режиме? скиньте пжл ссылку ,почитал справку но тоже смутно понятно или обработку создать нужно ?
17. Xershi 1484 06.04.16 15:56 Сейчас в теме
(15) Zhuk1234, ну так и чем вас такой вариант отладки не устраивает?
18. Zhuk1234 06.04.16 15:59 Сейчас в теме
(17) Xershi, Тем что я просто права добавил и появилась кнопка перейти в конфигуратор по ошибке, а сама отладка ничего не показывает и не дает ,вообще не ясно работает ли она, а процедура очень велика ...

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

	Запрос.Текст = "
	|ВЫБРАТЬ
	|	Остатки.Номенклатура                 КАК Номенклатура,
	|	Остатки.ХарактеристикаНоменклатуры   КАК ХарактеристикаНоменклатуры,
	|	Остатки.ЕдиницаИзмерения             КАК ЕдиницаИзмерения,
	|	Остатки.Цена                         КАК Цена,
	|	Остатки.ПроцентСкидкиНаценки         КАК ПроцентСкидкиНаценки,
	|	Остатки.ПроцентАвтоматическихСкидок  КАК ПроцентАвтоматическихСкидок,
	|	Остатки.УсловиеАвтоматическойСкидки  КАК УсловиеАвтоматическойСкидки,
	|	Остатки.ЗначениеУсловияАвтоматическойСкидки  КАК ЗначениеУсловияАвтоматическойСкидки,
	|	Остатки.СтавкаНДС                    КАК СтавкаНДС,
	|	Остатки.КоличествоОстаток            КАК КоличествоОстаток,
	|	Остатки.СуммаВзаиморасчетовОстаток   КАК СуммаВзаиморасчетовОстаток
	|ПОМЕСТИТЬ ВременнаяТаблицаОстаткиПоЗаказу
	|ИЗ
	|	РегистрНакопления.ЗаказыПокупателей.Остатки(&ДатаОстатков, ДоговорКонтрагента = &Договор
	|                                                И ЗаказПокупателя = &Сделка
	|" + ?(ТабличнаяЧасть = Товары, "                И СтатусПартии <> &СтатусТары",  "                И СтатусПартии = &СтатусТары") + ") КАК Остатки
	|ГДЕ КоличествоОстаток>0";
	Запрос.Выполнить();
	
	ТекПользователь = глЗначениеПеременной("глТекущийПользователь");
	
	//Условие используется в виртуальной таблице остатков
	УсловиеСклад = "";
	Если мУказаниеСкладовВТЧ Тогда
		Если ЗначениеЗаполнено(ДокументОснование.СкладГруппа)
			И ТипЗнч(ДокументОснование.СкладГруппа) = Тип("СправочникСсылка.ГруппыДоступностиСкладов") Тогда
			ГруппаДоступностиСкладов = ДокументОснование.СкладГруппа;
		Иначе
			ГруппаДоступностиСкладов = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "ГруппаДоступностиСкладов");
		КонецЕсли;
		
		Если ЗначениеЗаполнено(ГруппаДоступностиСкладов) Тогда
			Запрос.УстановитьПараметр("ГруппаДоступностиСкладов", ГруппаДоступностиСкладов);
			
			УсловиеСклад = 
				" И Склад В (
				|	ВЫБРАТЬ
				|		ГруппыДоступности.Склад
				|	ИЗ
				|		РегистрСведений.СоставГруппДоступностиСкладов КАК ГруппыДоступности
				|	ГДЕ ГруппыДоступности.ГруппаДоступности = &ГруппаДоступностиСкладов)";	
		КонецЕсли;		
	Иначе
		УсловиеСклад = " И Склад = &Склад";
	КонецЕсли; 
	
	УсловиеОстатки = "Номенклатура В (ВЫБРАТЬ Номенклатура ИЗ ВременнаяТаблицаОстаткиПоЗаказу)" + УсловиеСклад;
	
	ПревышатьОстаткиОрганизации = УправлениеДопПравамиПользователей.РазрешеноПревышениеОстаткаТоваровОрганизации(Организация);
	
	Если НЕ ПревышатьОстаткиОрганизации Тогда
		УсловиеОстаткиОрганизаций = "Номенклатура В (ВЫБРАТЬ Номенклатура ИЗ ВременнаяТаблицаОстаткиПоЗаказу)";
		ПараметрыУП = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитикиУпр(?(ЗначениеЗаполнено(Дата), Дата, ТекущаяДата()));
		Если ПараметрыУП <> Неопределено И ПараметрыУП.ВестиУчетТоваровОрганизацийВРазрезеСкладов Тогда
			УсловиеОстаткиОрганизаций = УсловиеОстаткиОрганизаций + УсловиеСклад;
		КонецЕсли; 
	КонецЕсли; 
	
	Если ТабличнаяЧасть = Товары Тогда //не ломаем стандартное 
		Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
		               |	Остатки.Номенклатура КАК Номенклатура,
		               |	Остатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
		               |	Остатки.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
		               |	Остатки.ЕдиницаИзмерения.Коэффициент КАК Коэффициент,
		               |	Остатки.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаХранения,
		               |	Остатки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоэффициентЕдиницыХранения,
		               |	Остатки.Номенклатура.ВестиУчетПоСериям КАК ВестиУчетПоСериям,
		               |	Остатки.Цена КАК Цена,
		               |	Остатки.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
		               |	Остатки.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок,
		               |	Остатки.УсловиеАвтоматическойСкидки КАК УсловиеАвтоматическойСкидки,
		               |	Остатки.ЗначениеУсловияАвтоматическойСкидки КАК ЗначениеУсловияАвтоматическойСкидки,
		               |	NULL КАК Склад,
		               |	NULL КАК СортировкаПоСкладу,
		               |	Остатки.СтавкаНДС КАК СтавкаНДС,
		               |	Остатки.КоличествоОстаток КАК КоличествоОстатокПоЗаказу,
		               |	Остатки.СуммаВзаиморасчетовОстаток КАК СуммаОстатокПоЗаказу,
		               |	0 КАК ОстатокНаСкладе,
		               |	0 КАК ОстатокРезерваПоСделке,
		               |	0 КАК ОстатокРезерва,
		               |	0 КАК ОстатокКПередаче,
		               |	ВЫБОР
		               |		КОГДА ТЧЗаказа.НомерСтроки ЕСТЬ NULL 
		               |			ТОГДА 9999999
		               |		ИНАЧЕ ТЧЗаказа.НомерСтроки
		               |	КОНЕЦ КАК НомерСтрокиЗаказа,
		               |	ТЧЗаказа.ЕдиницаИзмеренияМест КАК ЕдиницаИзмеренияМест
		               |ИЗ
		               |	ВременнаяТаблицаОстаткиПоЗаказу КАК Остатки
		               |		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
		               |			ЗаказПокупателяТовары.Номенклатура КАК Номенклатура,
		               |			ЗаказПокупателяТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
		               |			ЗаказПокупателяТовары.ЕдиницаИзмеренияМест КАК ЕдиницаИзмеренияМест,
		               |			МИНИМУМ(ЗаказПокупателяТовары.НомерСтроки) КАК НомерСтроки
		               |		ИЗ
		               |			Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
		               |		ГДЕ
		               |			ЗаказПокупателяТовары.Ссылка = &Сделка
		               |		
		               |		СГРУППИРОВАТЬ ПО
		               |			ЗаказПокупателяТовары.Номенклатура,
		               |			ЗаказПокупателяТовары.ХарактеристикаНоменклатуры,
		               |			ЗаказПокупателяТовары.ЕдиницаИзмеренияМест) КАК ТЧЗаказа
		               |		ПО Остатки.Номенклатура = ТЧЗаказа.Номенклатура
		               |			И Остатки.ХарактеристикаНоменклатуры = ТЧЗаказа.ХарактеристикаНоменклатуры
		               |
		               |ОБЪЕДИНИТЬ ВСЕ
		               |
		               |ВЫБРАТЬ
		               |	ТЧЗаказа.Номенклатура,
		               |	ТЧЗаказа.ХарактеристикаНоменклатуры,
		               |	ТЧЗаказа.Номенклатура.ЕдиницаХраненияОстатков,
		               |	ТЧЗаказа.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент,
		               |	NULL,
		               |	NULL,
		               |	ТЧЗаказа.Номенклатура.ВестиУчетПоСериям,
		               |	0,
		               |	0,
		               |	0,
		               |	NULL,
		               |	NULL,
		               |	ТЧЗаказа.СкладГруппа,
		               |	0,
		               |	ТЧЗаказа.Номенклатура.СтавкаНДС,
		               |	0,
		               |	0,
		               |	ТЧЗаказа.Количество,
		               |	0,
		               |	0,
		               |	0,
		               |	ВЫБОР
		               |		КОГДА ТЧЗаказа.НомерСтроки ЕСТЬ NULL 
		               |			ТОГДА 9999999
		               |		ИНАЧЕ ТЧЗаказа.НомерСтроки
		               |	КОНЕЦ,
		               |	ТЧЗаказа.ЕдиницаИзмеренияМест
		               |ИЗ
		               |	(ВЫБРАТЬ
		               |		ЗаказПокупателяТовары.Номенклатура КАК Номенклатура,
		               |		ЗаказПокупателяТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
		               |		ЗаказПокупателяТовары.ЕдиницаИзмеренияМест КАК ЕдиницаИзмеренияМест,
		               |		МИНИМУМ(ЗаказПокупателяТовары.НомерСтроки) КАК НомерСтроки,
		               |		ЗаказПокупателяТовары.Ссылка.СкладГруппа КАК СкладГруппа,
		               |		ЗаказПокупателяТовары.Количество КАК Количество
		               |	ИЗ
		               |		Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
		               |	ГДЕ
		               |		ЗаказПокупателяТовары.Ссылка = &Сделка
		               |	
		               |	СГРУППИРОВАТЬ ПО
		               |		ЗаказПокупателяТовары.Номенклатура,
		               |		ЗаказПокупателяТовары.ХарактеристикаНоменклатуры,
		               |		ЗаказПокупателяТовары.ЕдиницаИзмеренияМест,
		               |		ЗаказПокупателяТовары.Ссылка.СкладГруппа,
		               |		ЗаказПокупателяТовары.Количество) КАК ТЧЗаказа";
	Иначе 
		Запрос.Текст = "
		|ВЫБРАТЬ РАЗРЕШЕННЫЕ
		|	Остатки.Номенклатура                 КАК Номенклатура,
		|	Остатки.ХарактеристикаНоменклатуры   КАК ХарактеристикаНоменклатуры,
		|	Остатки.ЕдиницаИзмерения             КАК ЕдиницаИзмерения,
		|	Остатки.ЕдиницаИзмерения.Коэффициент КАК Коэффициент,
		|	Остатки.Номенклатура.ЕдиницаХраненияОстатков             КАК ЕдиницаХранения,
		|	Остатки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоэффициентЕдиницыХранения,
		|	Остатки.Номенклатура.ВестиУчетПоСериям КАК ВестиУчетПоСериям,
		|	Остатки.Цена                         КАК Цена,
		|	Остатки.ПроцентСкидкиНаценки         КАК ПроцентСкидкиНаценки,
		|	Остатки.ПроцентАвтоматическихСкидок  КАК ПроцентАвтоматическихСкидок,
		|	Остатки.УсловиеАвтоматическойСкидки  КАК УсловиеАвтоматическойСкидки,
		|	Остатки.ЗначениеУсловияАвтоматическойСкидки  КАК ЗначениеУсловияАвтоматическойСкидки,
		|	NULL                                 КАК Склад,
		|	NULL                                 КАК СортировкаПоСкладу,
		|	Остатки.СтавкаНДС                    КАК СтавкаНДС,
		|	Остатки.КоличествоОстаток            КАК КоличествоОстатокПоЗаказу,
		|	Остатки.СуммаВзаиморасчетовОстаток   КАК СуммаОстатокПоЗаказу,
		|	0                                    КАК ОстатокНаСкладе,
		|	0                                    КАК ОстатокРезерваПоСделке,
		|	0                                    КАК ОстатокРезерва,
		|	0                                    КАК ОстатокКПередаче,
		|	ВЫБОР КОГДА ТЧЗаказа.НомерСтроки ЕСТЬ NULL 
		|		ТОГДА 9999999 
		|		ИНАЧЕ ТЧЗаказа.НомерСтроки 
		|	КОНЕЦ                                КАК НомерСтрокиЗаказа"
		
		+ ?(ТабличнаяЧасть = Товары, 
		"	, ТЧЗаказа.ЕдиницаИзмеренияМест      КАК ЕдиницаИзмеренияМест", "")
		
		+ ?(ТабличнаяЧасть = Товары И НЕ ПревышатьОстаткиОрганизации, "
		|	, ВЫБОР КОГДА ОстаткиОрганизации.КоличествоОстаток ЕСТЬ NULL 
		|		ТОГДА 0 
		|		ИНАЧЕ ОстаткиОрганизации.КоличествоОстаток 
		|	КОНЕЦ КАК КоличествоОстатокОрганизации", "") + "
		|ИЗ
		|	ВременнаяТаблицаОстаткиПоЗаказу КАК Остатки
		
		|" + ?(ТабличнаяЧасть = Товары И НЕ ПревышатьОстаткиОрганизации,
		"ЛЕВОЕ СОЕДИНЕНИЕ 
		|	РегистрНакопления.ТоварыОрганизаций.Остатки(&ДатаОстатков, 
		|								 Организация = &Организация %Условие_Качество% 
		|								И " + УсловиеОстаткиОрганизаций + "
		|   ) КАК ОстаткиОрганизации
		|ПО
		|	Остатки.Номенклатура = ОстаткиОрганизации.Номенклатура 
		|	И Остатки.ХарактеристикаНоменклатуры = ОстаткиОрганизации.ХарактеристикаНоменклатуры", "") + " 
		
		|
		|" + ТекстЗапросаПоТЧЗаказа + "
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|	ВЫБРАТЬ
		|	ОстаткиНаСкладе.Номенклатура                                     КАК Номенклатура,
		|	ОстаткиНаСкладе.ХарактеристикаНоменклатуры                       КАК ХарактеристикаНоменклатуры,
		|	ОстаткиНаСкладе.Номенклатура.ЕдиницаХраненияОстатков             КАК ЕдиницаИзмерения,
		|	ОстаткиНаСкладе.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК Коэффициент,
		|	NULL                                                             КАК ЕдиницаХранения,
		|	NULL                                                             КАК КоэффициентЕдиницыХранения,
		|	ОстаткиНаСкладе.Номенклатура.ВестиУчетПоСериям 					 КАК ВестиУчетПоСериям,
		|	0                                                                КАК Цена,
		|	0                                                                КАК ПроцентСкидкиНаценки,
		|	0                                                                КАК ПроцентАвтоматическихСкидок,
		|	NULL                                                             КАК УсловиеАвтоматическойСкидки,
		|	NULL                                                             КАК ЗначениеУсловияАвтоматическойСкидки,
		|	ОстаткиНаСкладе.Склад                                            КАК Склад,
		|	ВЫБОР КОГДА ОстаткиНаСкладе.Склад = &Склад ТОГДА
		|	0
		|	ИНАЧЕ
		|		1
		|	КОНЕЦ                                       КАК СортировкаПоСкладу,
		|	ОстаткиНаСкладе.Номенклатура.СтавкаНДС      КАК СтавкаНДС,
		|	0                                           КАК КоличествоОстатокПоЗаказу,
		|	0                                           КАК СуммаОстатокПоЗаказу,
		|	ОстаткиНаСкладе.КоличествоОстаток           КАК ОстатокНаСкладе,
		|   РезервыОстаткиПоСделке.КоличествоОстаток    КАК ОстатокРезерваПоСделке,
		|   РезервыОстатки.КоличествоОстаток            КАК ОстатокРезерва,
		|   КПередаче.КоличествоОстаток                 КАК ОстатокКПередаче,
		|	ВЫБОР КОГДА ТЧЗаказа.НомерСтроки ЕСТЬ NULL 
		|		ТОГДА 9999999 
		|		ИНАЧЕ ТЧЗаказа.НомерСтроки 
		|	КОНЕЦ                                       КАК НомерСтрокиЗаказа"
		
		+ ?(ТабличнаяЧасть = Товары, "
		|	, ТЧЗаказа.ЕдиницаИзмеренияМест             КАК ЕдиницаИзмеренияМест", "")
		
		+ ?(ТабличнаяЧасть = Товары И НЕ ПревышатьОстаткиОрганизации, "
		|	, 0                                         КАК КоличествоОстатокОрганизации", "") + "
		|		
		|   ИЗ
		|   // остатки на складе
		|	(ВЫБРАТЬ
		|		Склад КАК Склад,
		|		Номенклатура КАК Номенклатура,
		|		ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
		|		СУММА(КоличествоОстаток) КАК КоличествоОстаток
		|	ИЗ
		|		(ВЫБРАТЬ
		|			Склад КАК Склад,
		|			Номенклатура КАК Номенклатура,
		|			ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
		|			КоличествоОстаток КАК КоличествоОстаток
		|		ИЗ
		|			РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОстатков, " + УсловиеОстатки + "
		|										%Условие_Качество%
		|			)
		|		
		|		ОБЪЕДИНИТЬ ВСЕ
		|
		|		ВЫБРАТЬ
		|			Склад КАК Склад,
		|			Номенклатура КАК Номенклатура,
		|			ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
		|			КоличествоОстаток КАК КоличествоОстаток
		|		ИЗ
		|			РегистрНакопления.ТоварыВРознице.Остатки(&ДатаОстатков, " + УсловиеОстатки + "
		| 										%Условие_Качество%
		|			)
		|		) КАК ОстаткиНаСкладе
		|		СГРУППИРОВАТЬ ПО
		|			Склад,
		|			Номенклатура,
		|			ХарактеристикаНоменклатуры
		|	) КАК ОстаткиНаСкладе
		|	
		|	ЛЕВОЕ СОЕДИНЕНИЕ //Резервы по сделке
		|		РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ДатаОстатков," + УсловиеОстатки + "
		|										И ДокументРезерва = &Сделка
		|		) КАК РезервыОстаткиПоСделке
		|	ПО
		|	ОстаткиНаСкладе.Номенклатура = РезервыОстаткиПоСделке.Номенклатура"
			+ ?(ТабличнаяЧасть = Товары, Символы.ПС + "И ОстаткиНаСкладе.ХарактеристикаНоменклатуры = РезервыОстаткиПоСделке.ХарактеристикаНоменклатуры ", "")	
			+ ?(мУказаниеСкладовВТЧ, Символы.ПС + "И ОстаткиНаСкладе.Склад = РезервыОстаткиПоСделке.Склад", "") 
			+ " 
		|
		|	ЛЕВОЕ СОЕДИНЕНИЕ
		|		РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ДатаОстатков," + УсловиеОстатки + "
		|	                                   И ДокументРезерва <> &Сделка
		|		) КАК РезервыОстатки
		|ПО
		|	ОстаткиНаСкладе.Номенклатура = РезервыОстатки.Номенклатура"
			+ ?(ТабличнаяЧасть = Товары, Символы.ПС + "И ОстаткиНаСкладе.ХарактеристикаНоменклатуры = РезервыОстатки.ХарактеристикаНоменклатуры ", "")	
			+ ?(мУказаниеСкладовВТЧ, Символы.ПС + "И ОстаткиНаСкладе.Склад = РезервыОстатки.Склад", "") 
			+ " 
		|ЛЕВОЕ СОЕДИНЕНИЕ // к передаче
		|	РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(&ДатаОстатков," + УсловиеОстатки + "
		| 										%Условие_Качество%
		|										И СтатусПартии " + ?(ТабличнаяЧасть = Товары, " <> &СтатусТары", " = &СтатусТары") + "
		|	) КАК КПередаче
		|ПО
		|	ОстаткиНаСкладе.Номенклатура = КПередаче.Номенклатура"
			+ ?(ТабличнаяЧасть = Товары, Символы.ПС + "И ОстаткиНаСкладе.ХарактеристикаНоменклатуры = КПередаче.ХарактеристикаНоменклатуры ", "")
			+ ?(мУказаниеСкладовВТЧ, Символы.ПС + "И ОстаткиНаСкладе.Склад = КПередаче.Склад", "")
			+ "
		|" + СтрЗаменить(ТекстЗапросаПоТЧЗаказа, "Остатки.", "ОстаткиНаСкладе.");
		
	КонецЕсли;
	
	Если ВидОперации <> Перечисления.ВидыОперацийРеализацияТоваров.Брак Тогда
		Запрос.Текст = стрЗаменить(Запрос.Текст,"%Условие_Качество%"," И Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) ");
	Иначе
		Запрос.Текст = стрЗаменить(Запрос.Текст,"%Условие_Качество%"," ");
	КонецЕсли;
	
	РезультатЗапроса = Запрос.Выполнить();
	
	// Таблица остатков по заказу по результатам запроса
	ТаблицаПоЗаказу = РезультатЗапроса.Выгрузить();
	ТаблицаПоЗаказу.Сортировать("НомерСтрокиЗаказа возр");
	
	Сч = 0;
	Пока Сч < ТаблицаПоЗаказу.Количество() Цикл
		СтрокаТаблицы = ТаблицаПоЗаказу.Получить(Сч);
		Если СтрокаТаблицы.КоличествоОстатокПоЗаказу = 0 Тогда
			ТаблицаПоЗаказу.Удалить(СтрокаТаблицы);
		Иначе 
			Сч = Сч + 1;
		КонецЕсли; 
	КонецЦикла;
	
	// Таблица остатков на складах, резервов и т. п.
	ТаблицаПоОстаткам = РезультатЗапроса.Выгрузить();
	Сч = 0;
	Пока Сч < ТаблицаПоОстаткам.Количество() Цикл
		СтрокаТаблицы = ТаблицаПоОстаткам.Получить(Сч);
		Если СтрокаТаблицы.ОстатокНаСкладе <= 0 Тогда
			ТаблицаПоОстаткам.Удалить(СтрокаТаблицы);
		Иначе 
			Сч = Сч + 1;
		КонецЕсли; 
	КонецЦикла;
	ТаблицаПоОстаткам.Сортировать("СортировкаПоСкладу, ОстатокРезерваПоСделке УБЫВ");
	
	// Нам надо знать сколько на самом деле осталось конкретной номенклатуры 
	// с конкретной характеристикой	по данному заказу, поскольку в разрезе цен и скидок
	// остаки могут расходится
	ТаблицаБезЦен = ТаблицаПоЗаказу.Скопировать();
	Если ТабличнаяЧасть = Товары Тогда
		Если ПревышатьОстаткиОрганизации Тогда
			ТаблицаБезЦен.Свернуть("Номенклатура, ХарактеристикаНоменклатуры","КоличествоОстатокПоЗаказу");
		Иначе
			ТаблицаБезЦен.Свернуть("Номенклатура, ХарактеристикаНоменклатуры, КоличествоОстатокОрганизации","КоличествоОстатокПоЗаказу");
		КонецЕсли;
	Иначе
		ТаблицаБезЦен.Свернуть("Номенклатура, ХарактеристикаНоменклатуры","КоличествоОстатокПоЗаказу");
	КонецЕсли;
	
	ИмяТабличнойЧасти = Метаданные.НайтиПоТипу(ТипЗнч(ТабличнаяЧасть)).Имя;
	
	ЕстьРеквизитПроцентСкидкиНаценки = ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("ПроцентСкидкиНаценки", Метаданные(), ИмяТабличнойЧасти);
	ПересчитыватьСкидку = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "ПриИзмененииСуммыПересчитыватьСкидку");
	ЕстьРеквизитПроцентАвтоматическихСкидок = ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("ПроцентАвтоматическихСкидок", Метаданные(), ИмяТабличнойЧасти);	

	Для каждого СтрокаТаблицы ИЗ ТаблицаБезЦен Цикл
		
		Если ТабличнаяЧасть = Товары Тогда
			Если ПревышатьОстаткиОрганизации Тогда
				ОстатокКоличестваПоЗаказу = СтрокаТаблицы.КоличествоОстатокПоЗаказу;
			Иначе
				ОстатокКоличестваПоЗаказу = Мин(СтрокаТаблицы.КоличествоОстатокПоЗаказу, СтрокаТаблицы.КоличествоОстатокОрганизации);
			КонецЕсли;
		Иначе
			ОстатокКоличестваПоЗаказу = СтрокаТаблицы.КоличествоОстатокПоЗаказу;
		КонецЕсли;
		
		СтруктураПоиска = Новый Структура;
		СтруктураПоиска.Вставить("Номенклатура", СтрокаТаблицы.Номенклатура);
		Если ТабличнаяЧасть = Товары Тогда
			СтруктураПоиска.Вставить("ХарактеристикаНоменклатуры", СтрокаТаблицы.ХарактеристикаНоменклатуры);
		КонецЕсли;
		
		СтрокиЗаказа   = ТаблицаПоЗаказу.НайтиСтроки(СтруктураПоиска);
		СтрокиОстатков = ТаблицаПоОстаткам.НайтиСтроки(СтруктураПоиска);
		
		Для Каждого СтрокаЗаказа Из СтрокиЗаказа Цикл
			
			Если ОстатокКоличестваПоЗаказу <= 0 Тогда
				Прервать;
			КонецЕсли;
			
			Если СтрокаЗаказа.КоличествоОстатокПоЗаказу <= 0 Тогда
				Продолжить;
			Иначе
				ОстатокКоличестваПоСтрокеЗаказа = СтрокаЗаказа.КоличествоОстатокПоЗаказу;
			КонецЕсли;
			
			//  Делаем два прохода в первом списываем все резервы по сделке, во втором, если
			//  количество еще не выбрано, то добираем из свободных остатков.
			Для Сч = 1 По 2 Цикл
				
				Если ОстатокКоличестваПоСтрокеЗаказа <= 0 Тогда
					Продолжить;
				КонецЕсли;
				
				Для каждого СтрокаОстатков Из СтрокиОстатков Цикл
					
					Если ОстатокКоличестваПоСтрокеЗаказа <= 0 Тогда
						Продолжить;
					КонецЕсли;
					
					Если СтрокаОстатков.ОстатокНаСкладе = 0 Тогда
						Продолжить;
					КонецЕсли;
					
					
					РезервПоСделке           = ?(СтрокаОстатков.ОстатокРезерваПоСделке = NULL, 0, СтрокаОстатков.ОстатокРезерваПоСделке);
					РезервПоДругимСделкам    = ?(СтрокаОстатков.ОстатокРезерва         = NULL, 0, СтрокаОстатков.ОстатокРезерва);
					КПередаче                = ?(СтрокаОстатков.ОстатокКПередаче       = NULL, 0, СтрокаОстатков.ОстатокКПередаче);
					СвободныйОстатокНаСкладе = Макс(СтрокаОстатков.ОстатокНаСкладе - РезервПоДругимСделкам - КПередаче, 0);
					
					КоличествоКСписанию   = ?(Сч = 1, Мин(Макс(СтрокаОстатков.ОстатокНаСкладе-КПередаче,0), РезервПоСделке), Макс(СвободныйОстатокНаСкладе-РезервПоСделке,0));
					КоличествоКЗаполнению = Мин(КоличествоКСписанию, Мин(ОстатокКоличестваПоЗаказу,  ОстатокКоличестваПоСтрокеЗаказа));
					
					Если КоличествоКЗаполнению = 0 Тогда
						Продолжить;
					КонецЕсли;
					
					ОстатокКоличестваПоЗаказу       = ОстатокКоличестваПоЗаказу       - КоличествоКЗаполнению;
					ОстатокКоличестваПоСтрокеЗаказа = ОстатокКоличестваПоСтрокеЗаказа - КоличествоКЗаполнению;
					СтрокаОстатков.ОстатокНаСкладе  = СтрокаОстатков.ОстатокНаСкладе  - КоличествоКЗаполнению;
					
					СтрокаТабличнойЧасти = ТабличнаяЧасть.Добавить();
					
					СтрокаТабличнойЧасти.Номенклатура = СтрокаОстатков.Номенклатура;
					
					Если ТабличнаяЧасть = Товары Тогда
						Если не ЕстьТоварыСУчетомПоСерии И СтрокаОстатков.ВестиУчетПоСериям Тогда
							ЕстьТоварыСУчетомПоСерии = истина;
						КонецЕсли;

						СтрокаТабличнойЧасти.Количество       = ?(НЕ ЗначениеЗаполнено(СтрокаЗаказа.Коэффициент), 0,
						КоличествоКЗаполнению * СтрокаЗаказа.КоэффициентЕдиницыХранения / СтрокаЗаказа.Коэффициент);
						СтрокаТабличнойЧасти.ЕдиницаИзмерения = СтрокаЗаказа.ЕдиницаИзмерения;
						СтрокаТабличнойЧасти.Коэффициент      = СтрокаЗаказа.Коэффициент;
						
						Если ЗначениеЗаполнено(СтрокаЗаказа.ЕдиницаИзмеренияМест) Тогда
							СтрокаТабличнойЧасти.ЕдиницаИзмеренияМест = СтрокаЗаказа.ЕдиницаИзмеренияМест;
							ОбработкаТабличныхЧастей.РассчитатьКоличествоМестТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
						Иначе
							ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуМестТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
						КонецЕсли;
						
						СтрокаТабличнойЧасти.СтавкаНДС                           = СтрокаЗаказа.СтавкаНДС;
						СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры          = СтрокаОстатков.ХарактеристикаНоменклатуры;

						СтрокаТабличнойЧасти.ПроцентСкидкиНаценки                = СтрокаЗаказа.ПроцентСкидкиНаценки;
						СтрокаТабличнойЧасти.ПроцентАвтоматическихСкидок         = СтрокаЗаказа.ПроцентАвтоматическихСкидок;
						СтрокаТабличнойЧасти.УсловиеАвтоматическойСкидки         = СтрокаЗаказа.УсловиеАвтоматическойСкидки;
						СтрокаТабличнойЧасти.ЗначениеУсловияАвтоматическойСкидки = СтрокаЗаказа.ЗначениеУсловияАвтоматическойСкидки;
						СтрокаТабличнойЧасти.Цена = Ценообразование.ПересчитатьЦенуПриИзмененииФлаговНалогов(
						МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(СтрокаЗаказа.Цена,
						Сделка.ВалютаДокумента, ВалютаДокумента,
						ЗаполнениеДокументов.КурсДокумента(Сделка, мВалютаРегламентированногоУчета), ЗаполнениеДокументов.КурсДокумента(ЭтотОбъект, мВалютаРегламентированногоУчета),
						ЗаполнениеДокументов.КратностьДокумента(Сделка, мВалютаРегламентированногоУчета), ЗаполнениеДокументов.КратностьДокумента(ЭтотОбъект, мВалютаРегламентированногоУчета)),
						Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатурыКонтрагентов,
						Сделка.СуммаВключаетНДС,
						УчитыватьНДС,
						СуммаВключаетНДС,
						Ценообразование.ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.СтавкаНДС));
						
					Иначе
						
						СтрокаТабличнойЧасти.Количество = КоличествоКЗаполнению;
						СтрокаТабличнойЧасти.Цена       = СтрокаЗаказа.Цена;
					КонецЕсли;
					
					Если РезервПоСделке > 0 Тогда
						СтрокаОстатков.ОстатокРезерваПоСделке                = СтрокаОстатков.ОстатокРезерваПоСделке - КоличествоКЗаполнению;
					КонецЕсли;
					
					Если ТабличнаяЧасть = Товары Тогда
						ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
					Иначе
						ОбработкаТабличныхЧастей.РассчитатьСуммуВозвратнойТарыТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
					КонецЕсли;
					
					Если ТабличнаяЧасть = Товары Тогда
						ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
						СтрокаТабличнойЧасти.Качество = Справочники.Качество.Новый;
					КонецЕсли;
					
					Если Сч = 1 Тогда
						СтрокаТабличнойЧасти.СпособСписанияОстаткаТоваров = Перечисления.СпособыСписанияОстаткаТоваров.ИзРезерва;
					Иначе
						СтрокаТабличнойЧасти.СпособСписанияОстаткаТоваров = Перечисления.СпособыСписанияОстаткаТоваров.СоСклада;
					КонецЕсли;
					
					СтрокаТабличнойЧасти.Склад           = СтрокаОстатков.Склад;
					СтрокаТабличнойЧасти.ЗаказПокупателя = Сделка;
					
					Если ТабличнаяЧасть = Товары Тогда
						ЗаполнитьСчетаУчетаВСтрокеТабЧастиРегл(СтрокаТабличнойЧасти, "Товары", ОтражатьВБухгалтерскомУчете);
					Иначе
						ЗаполнитьСчетаУчетаВСтрокеТабЧастиРегл(СтрокаТабличнойЧасти, "ВозвратнаяТара", ОтражатьВБухгалтерскомУчете);
					КонецЕсли;
					
				КонецЦикла; // По строкам остатков
			КонецЦикла;  // по проходам
		КонецЦикла; // по строкам заказа
	КонецЦикла;    // по строкам таблицы (без цен)
	
	//Заполнение серий
	Если ТабличнаяЧасть = Товары И ЕстьТоварыСУчетомПоСерии Тогда
		ЗаполнитьПоСериям(ДатаОстатков);
	КонецЕсли;
	
	// Заполнение табличной части СоставНабора
	Если ТабличнаяЧасть = Товары
		И ДокументОснование.СоставНабора.Количество() > 0 Тогда
		
		Запрос = Новый Запрос;
		Запрос.УстановитьПараметр("ПарДокумент", ДокументОснование);
		Запрос.УстановитьПараметр("ПустойСклад", Справочники.Склады.ПустаяСсылка());
		Запрос.УстановитьПараметр("ДатаОстатков", ДатаОстатков);
		
		Запрос.Текст ="
		|ВЫБРАТЬ
		|	Док.Номенклатура,
		|	Док.ХарактеристикаНоменклатуры,
		|	Док.СерияНоменклатуры,
		|	Док.ЕдиницаИзмеренияМест,
		|	Док.ЕдиницаИзмерения,
		|	Док.Количество,
		|	Док.Коэффициент,
		|	Док.Цена,
		|	Док.СтавкаНДС,
		|	Док.ПроцентСкидкиНаценки,
		|	Док.ПроцентАвтоматическихСкидок,
		|	Док.УсловиеАвтоматическойСкидки,
		|	Док.ЗначениеУсловияАвтоматическойСкидки,
		|	Док.Сумма,
		|	Док.Ссылка.ВалютаДокумента         КАК ВалютаДокумента,
		|	Док.Ссылка.СуммаВключаетНДС        КАК СуммаВключаетНДС,
		|	Док.Ссылка.КратностьВзаиморасчетов КАК КратностьДокумента,
		|	Док.Ссылка.КурсВзаиморасчетов      КАК КурсДокумента,
		|	ВЫБОР 
		|		КОГДА Док.Размещение ССЫЛКА Справочник.Склады ТОГДА Док.Размещение
		|		КОГДА Док.Ссылка.СкладГруппа ССЫЛКА Справочник.Склады ТОГДА Док.Ссылка.СкладГруппа
		|		ИНАЧЕ &ПустойСклад
		|	КОНЕЦ                              КАК Склад,
		|	ВЫБОР 
		|		КОГДА Остатки.КоличествоОстаток ЕСТЬ NULL ТОГДА 0
		|		ИНАЧЕ Остатки.КоличествоОстаток
		|	КОНЕЦ                              КАК Остаток,
		|	Док.КлючСтроки
		|
		|ИЗ
		|	Документ.ЗаказПокупателя.Товары КАК Док
		|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПокупателей.Остатки(&ДатаОстатков, ЗаказПокупателя = &ПарДокумент) КАК Остатки
		|		ПО Остатки.Номенклатура               = Док.Номенклатура
		|		 И Остатки.ХарактеристикаНоменклатуры = Док.ХарактеристикаНоменклатуры
		|
		|ГДЕ
		|	Док.Ссылка = &ПарДокумент
		|	И Док.Номенклатура.Комплект
		|";
		
		РезультатЗапроса = Запрос.Выполнить();
		
		Если РезультатЗапроса.Пустой() Тогда
			Возврат;
		КонецЕсли;
		
		ДобавленКомплект = Ложь;
		Выборка          = РезультатЗапроса.Выбрать();
		
		Пока Выборка.Следующий() Цикл
			ОстатокКоличестваПоЗаказу = Мин(Выборка.Количество, Выборка.Остаток);
			
			Если ОстатокКоличестваПоЗаказу = 0 Тогда
				Продолжить;
			КонецЕсли;
			
			НоваяСтрока = Товары.Добавить();
			
			НоваяСтрока.Номенклатура                        = Выборка.Номенклатура;
			НоваяСтрока.ХарактеристикаНоменклатуры          = Выборка.ХарактеристикаНоменклатуры;
			НоваяСтрока.СерияНоменклатуры                   = Выборка.СерияНоменклатуры;
			НоваяСтрока.ЕдиницаИзмерения                    = Выборка.ЕдиницаИзмерения;
			НоваяСтрока.ЕдиницаИзмеренияМест                = Выборка.ЕдиницаИзмеренияМест;
			НоваяСтрока.Коэффициент                         = Выборка.Коэффициент;
			НоваяСтрока.Количество                          = ОстатокКоличестваПоЗаказу;
			НоваяСтрока.ПроцентСкидкиНаценки                = Выборка.ПроцентСкидкиНаценки;
			НоваяСтрока.ПроцентАвтоматическихСкидок         = Выборка.ПроцентАвтоматическихСкидок;
			НоваяСтрока.УсловиеАвтоматическойСкидки         = Выборка.УсловиеАвтоматическойСкидки;
			НоваяСтрока.ЗначениеУсловияАвтоматическойСкидки = Выборка.ЗначениеУсловияАвтоматическойСкидки;
			НоваяСтрока.СтавкаНДС                           = Выборка.СтавкаНДС;
			
			НоваяСтрока.Сумма = Ценообразование.ПересчитатьЦенуПриИзмененииФлаговНалогов(
			МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(Выборка.Сумма, Выборка.ВалютаДокумента, ВалютаДокумента,
			Выборка.КурсДокумента, ЗаполнениеДокументов.КурсДокумента(ЭтотОбъект, мВалютаРегламентированногоУчета),
			Выборка.КратностьДокумента, ЗаполнениеДокументов.КратностьДокумента(ЭтотОбъект, мВалютаРегламентированногоУчета)),
			Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатуры,
			Выборка.СуммаВключаетНДС,
			УчитыватьНДС,
			СуммаВключаетНДС,
			Ценообразование.ПолучитьСтавкуНДС(НоваяСтрока.СтавкаНДС));
			
			ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(НоваяСтрока, ЭтотОбъект);
			ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(НоваяСтрока, ЭтотОбъект);
			ОбработкаТабличныхЧастей.РассчитатьКоличествоМестТабЧасти(НоваяСтрока, ЭтотОбъект);
			
			НоваяСтрока.СпособСписанияОстаткаТоваров = Перечисления.СпособыСписанияОстаткаТоваров.СоСклада;
			НоваяСтрока.Качество                     = Справочники.Качество.Новый;
			НоваяСтрока.Склад                        = Выборка.Склад;
			НоваяСтрока.КлючСтроки                   = Выборка.КлючСтроки;
			НоваяСтрока.ЗаказПокупателя              = Сделка;

			ДобавленКомплект                         = Истина;
		КонецЦикла;
		
		Если ДобавленКомплект Тогда
			УправлениеЗапасами.ЗаполнитьСоставНабораПоОснованию(ЭтотОбъект, ДокументОснование, Истина);
		КонецЕсли;
	КонецЕсли;	

КонецПроцедуры
Показать
19. ilya.don 1 06.04.16 15:59 Сейчас в теме
(15) Zhuk1234,
Ошибка "{Документ.РеализацияТоваровУслуг.МодульОбъекта(1545)}: Ошибка при вызове метода контекста (Свернуть)
ТаблицаБезЦен.Свернуть("Номенклатура, ХарактеристикаНоменклатуры, КоличествоОстатокОрганизации","КоличествоОстатокПоЗаказу");
по причине:
Неверное имя колонки
..что означает, что нет прав на какую-то из колонок: "Номенклатура, ХарактеристикаНоменклатуры, КоличествоОстатокОрганизации"
Номенклатура точно есть, т.к. заказ работает, остается = ХарактеристикаНоменклатуры, КоличествоОстатокОрганизации
29. kasper076 104 07.04.16 11:30 Сейчас в теме
(19) ilya.don, это означает, кто какой-то из указанных колонок в таблице не существует.

(18) Для ТЧ Товары отрабатывает условие
Если ТабличнаяЧасть = Товары Тогда //не ломаем стандартное

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

для пользователя с ограниченными правами ПревышатьОстаткиОрганизации = Ложь, соответственно и свернуть по колонке "КоличествоОстатокОрганизации" вызывает исключение.
Zhuk1234; +1 Ответить
30. Zhuk1234 07.04.16 15:33 Сейчас в теме
(29) kasper076, Как это можно исправить? это в общий модуль нужно добавить код который будет разрешать превышать остатки ?
31. kasper076 104 08.04.16 06:29 Сейчас в теме
(30) Zhuk1234, меня оч смущает вот это:
ТаблицаБезЦен.Свернуть("Номенклатура, ХарактеристикаНоменклатуры, КоличествоОстатокОрганизации","КоличествоОстатокПоЗаказу")

Сворачивать по остатку, как-то не понятно зачем.
Нужно в текст запроса получаемый после
Если ТабличнаяЧасть = Товары Тогда
добавить поле "КоличествоОстатокОрганизации", а сворачивать думаю нужно так:
ТаблицаБезЦен.Свернуть("Номенклатура, ХарактеристикаНоменклатуры","КоличествоОстатокПоЗаказу, КоличествоОстатокОрганизации")
32. Zhuk1234 08.04.16 08:59 Сейчас в теме
(31) kasper076, Спасибо вам Большое за Помощь, но такого поля "КоличествоОстатокОрганизации" нету, в этом скорее всего и самая большая проблема
33. Xershi 1484 08.04.16 09:02 Сейчас в теме
(32) Zhuk1234, так собственно почему к разработчикам не обратитесь?
Тут же на лицо их косяк или поддержки нет?
35. Zhuk1234 08.04.16 09:28 Сейчас в теме
(33) Xershi, Поддержки нет. (34) kasper076, Спасибо, буду Пробовать!
34. kasper076 104 08.04.16 09:10 Сейчас в теме
(32) Zhuk1234, ну оно же есть во второй части условия. Возьми алгоритм оттуда.
(33) прав. На лицо косяк разработки.
38. Zhuk1234 13.04.16 12:05 Сейчас в теме
(34) kasper076, Нашел способ как это обойти, по хорошему бить за такое нужно но ничего другого не смог придумать, что скажете ? :) Добавил такой кусочек и Убрал Ограничение На склады
Прикрепленные файлы:
39. kasper076 104 14.04.16 07:35 Сейчас в теме
(38) Zhuk1234, не уверен что это правильный метод. В (18) явно виден кривой запрос после кода
Если ТабличнаяЧасть = Товары Тогда //не ломаем стандартное
40. Zhuk1234 18.04.16 13:27 Сейчас в теме
(39) kasper076, Разобрался, там просто не хватало в роле шаблона на склад..
41. Zhuk1234 22.04.16 16:26 Сейчас в теме
(39) kasper076, Я снова к вам, все таже тема и тежи док, суть вопроса вот в чем, при полных правах при создании "РеализацииТоваровИУслуг" на основании Заказа покупателя - таб часть тянется отлично а при не полных не тянется вообще. В Ролях Разрешение есть на реквизиты и таб.части все проверил, в чем бага может быть ? Magic..
42. v3rter 22.04.16 17:51 Сейчас в теме
(41) Zhuk1234, Надо смотреть в коде ОбработкиЗаполнения - там могут быть обращения к регистрам, по резервированию, например.
43. kasper076 104 25.04.16 07:11 Сейчас в теме
(41) Zhuk1234, попробуй запрос выполнить в консоли, под нужными правами, убрав из текста запроса "РАЗРЕШЕННЫЕ" и посмотри журнал регистрации.
20. Xershi 1484 06.04.16 16:22 Сейчас в теме
Если ТабличнаяЧасть = Товары Тогда 
Если ПревышатьОстаткиОрганизации Тогда 
ОстатокКоличестваПоЗаказу = СтрокаТаблицы.КоличествоОстатокПоЗаказу; 
Иначе 
ОстатокКоличестваПоЗаказу = Мин(СтрокаТаблицы.КоличествоОстатокПоЗаказу, СтрокаТаблицы.КоличествоОстатокОрганизации); 
КонецЕсли; 
Иначе 
ОстатокКоличестваПоЗаказу = СтрокаТаблицы.КоличествоОстатокПоЗаказу; 
КонецЕсли; 
Показать


Вот проблема!
У вас в запросе, колонка появляется когда есть товар и НЕ ПревышатьОстаткиОрганизации.
Это скорее косяк разрабов!
21. Xershi 1484 06.04.16 16:23 Сейчас в теме
ПревышатьОстаткиОрганизации = УправлениеДопПравамиПользователей.РазрешеноПревышениеОстаткаТоваровОрганизации(Организация); 

Настройте и будет счастье!
22. Zhuk1234 06.04.16 16:43 Сейчас в теме
(21) Xershi, не совсем понимаю как это связано с ролью. Добавил, все равно не работает, та же ошибка :(
23. Xershi 1484 06.04.16 16:53 Сейчас в теме
(22) Zhuk1234, скорее убрать нужно.
25. ilya.don 1 07.04.16 10:23 Сейчас в теме
(22) Zhuk1234, чисто логически: менеджеру не должно быть разрешено ПревышатьОстаткиОрганизации правильно? соответственно надо заменить на
ПревышатьОстаткиОрганизации = ложь; // в идеале завернуть в условие проверки на доступные права и роли..
24. AlexeyMalko 07.04.16 10:05 Сейчас в теме
можно посмотреть что там в общем модуле пишут , поставить обход по какому то условию. Или там может вообще галочка где то , или закомментировать но тогда не только у менеджера появятся права. Хотя всё таки ошибка скорее типовая наверное потом исправят , потому что не должно в конфигуратор отправлять по ошибке. Можно написать если пользователь такой то и обойти это услоив или роль такая то .
26. Zhuk1234 07.04.16 11:19 Сейчас в теме
(24) AlexeyMalko, Отправляет в конфигуратор по тому что я дал чуть больше прав :) до этого не отправляло
27. Xershi 1484 07.04.16 11:24 Сейчас в теме
(26) Zhuk1234, скорее всего перепутали разрабы в коде условия.
Так что в суппорт напишите и должны исправить или сами отредактируйте.
36. DJDUH 17 08.04.16 09:39 Сейчас в теме
 "Упп для Украины" Управляемое приложение 
- не припомню, где это в типовых Управляемое приложение)))
Это доработанный интерфейс скорее всего для нужд компании, отладчик в зубы и в перёд !
37. Zhuk1234 08.04.16 09:50 Сейчас в теме
(36) DJDUH, да, сами допиливали ..)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот