Реализация обработки для поиска пересортицы.

1. allgorhythm 15.09.14 21:04 Сейчас в теме
В организации проведена инвентаризация и для того чтобы оперативно начать работ с реальными остатками в базе УТ 11.0.9 все недостачи и излишки товара списаны на вспомогательный склад для дальнейших разбирательств. В организации понимают, что большинство проблем из-за пересортицы товаров. Необходимо написать обработку, которая по каталожному номеру номенклатуры и наиболее подходящей цене закупки из излишков и недостач подберет позиции в документ Пересортица товаров для того, чтобы «схлопнуть» их. Учет по характеристикам – не ведется.
Реализация
Конфигурация УТ 11.0.9.
На форме обработки необходимо указать:
• Склад – склад, на котором необходимо произвести все действия.
• Мин. длина артикула – число
• Мах процент отклонения цены
Табличная часть
• Номенклатура списываемая
• Номенклатура приходуемая
• Количество
По кнопке «Проанализировать пересортицу» необходимо табличную часть заполнить подобранным пересортом. Для этого надо найти все положительные остатки и каждой позиции попробовать подобрать позиции с отрицательными остатками. Анализировать регистр «Товары на складах».
Подбор должен осуществляться по артикулу постепенно укорачивая его с правой стороны. Например, остатки Товара 1 с артикулом 88764-91 являются пересортом Товара 2 (артикул 88764-23). Укорачивать можно только до указанного в обработке знака
Если подобрались одновременно несколько позиций, то берем в первую очередь ту позицию, у которой последняя закупочная цена наиболее приближена к позиции, которая в излишке.
В обработке по кнопке «Создать документ пересорта» должен создаться документ и заполниться его табличная часть.
+
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Salavat 13 16.09.14 08:53 Сейчас в теме
(1) allgorhythm, это задание на создатьОбработку?

почему бесплатно?
+
5. Salavat 13 16.09.14 09:42 Сейчас в теме
(1) allgorhythm, я также - могу сделать.

нужно договориться о цене/сроках.
+
10. artfa 58 19.09.14 14:16 Сейчас в теме
(1) allgorhythm, это текст задания для соискателя в какой-то фирме в мск, они набирают удаленных кодеров, а это тестовое задание которое необходимо выполнить,
интересно, если вас возьмут, то вы так же будете решать реальные ТЗ?
+
11. dj_serega 391 19.09.14 15:03 Сейчас в теме
(10) artfa, как вариант увидеть реализацию и разобраться.
+
12. artfa 58 19.09.14 15:32 Сейчас в теме
(11) dj_serega, вам нужно готовое решение?
реализация - запрос в цикле, искать номенклатуру оператором Подобно по артикулу, с каждым циклом укорачивать артикул, дальше уже по заданию - если есть несколько позиций, то выбирать наиболее приближеннную по цене закупки, полученую пару товар списываемый - товар приходуемый скидывать в таб. часть, затем новый цикл за исключением позиций из таб. части,
повторять цикл пока не закончатся приходуемые или списываемые товары, или не найдено ни одного соответствия по артикулу,
нехрошо канеш что запрос в цикле, но порой без этого не обойтись
+
13. dj_serega 391 19.09.14 17:50 Сейчас в теме
(12) artfa, нет. Я предположил зачем ТС нужно готовое решение что бы устроиться на работу :)
+
14. artfa 58 19.09.14 18:03 Сейчас в теме
(13) dj_serega, надо полагать что да, у кого есть время и интерес разбираться в задаче взятой с потолка?
+
15. allgorhythm 19.09.14 18:24 Сейчас в теме
(14) artfa, (11) dj_serega, (2) Salavat, (8) AllexSoft, Был предложен такой вариант исполнения кода в обработке, но как сказали там* - ничего не показало :(

&НаКлиенте
Процедура ПроанализироватьПересортицу(Команда)
	ПроанализироватьПересортицуНаСервере(Объект.Склад,Объект.МинДлинаАртикла,Объект.МаксПроцентРасхожденияЦены);
КонецПроцедуры

&НаСервере
Процедура ПроанализироватьПересортицуНаСервере(Склад,МинДлина,МаксПроцентРасхожденияЦены)
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ВложенныйЗапрос.Номенклатура КАК Номенклатура,
	|	ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул,
	|	СУММА(ВложенныйЗапрос.Излишки) КАК Излишки,
	|	СУММА(ВложенныйЗапрос.Недостача) КАК Недостача
	|ПОМЕСТИТЬ ВыборкаИзлишковНедостач
	|ИЗ
	|	(ВЫБРАТЬ
	|		Излишки.ДокументОснование КАК ДОкументОснование,
	|		Излишки.Характеристика КАК Характеристика,
	|		Излишки.Номенклатура КАК Номенклатура,
	|		Излишки.КОформлениюАктовОстаток КАК Излишки,
	|		0 КАК Недостача
	|	ИЗ
	|		РегистрНакопления.ТоварыКОформлениюИзлишковНедостач.Остатки КАК Излишки
	|	ГДЕ
	|		Излишки.Склад = &Склад
	|		И Излишки.КОформлениюАктовОстаток > 0
	|	
	|	ОБЪЕДИНИТЬ ВСЕ
	|	
	|	ВЫБРАТЬ
	|		Недостача.ДокументОснование,
	|		Недостача.Характеристика,
	|		Недостача.Номенклатура,
	|		0,
	|		Недостача.КОформлениюАктовОстаток
	|	ИЗ
	|		РегистрНакопления.ТоварыКОформлениюИзлишковНедостач.Остатки КАК Недостача
	|	ГДЕ
	|		Недостача.Склад = &Склад
	|		И Недостача.КОформлениюАктовОстаток < 0) КАК ВложенныйЗапрос
	|
	|СГРУППИРОВАТЬ ПО
	|	ВложенныйЗапрос.Номенклатура.Артикул,
	|	ВложенныйЗапрос.Номенклатура
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	МАКСИМУМ(ЦеныНоменклатурыПоставщиков.Период) КАК Период,
	|	ВыборкаИзлишковНедостач.Номенклатура
	|ПОМЕСТИТЬ ПоследнийПериод
	|ИЗ
	|	ВыборкаИзлишковНедостач КАК ВыборкаИзлишковНедостач
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыПоставщиков КАК ЦеныНоменклатурыПоставщиков
	|		ПО ВыборкаИзлишковНедостач.Номенклатура = ЦеныНоменклатурыПоставщиков.Номенклатура
	|ГДЕ
	|	ЦеныНоменклатурыПоставщиков.Период <= &Дата
	|
	|СГРУППИРОВАТЬ ПО
	|	ВыборкаИзлишковНедостач.Номенклатура
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	МАКСИМУМ(ЦеныНоменклатурыПоставщиков.Цена) КАК Цена,
	|	ЦеныНоменклатурыПоставщиков.Период,
	|	ЦеныНоменклатурыПоставщиков.Номенклатура
	|ПОМЕСТИТЬ КрайниеЦеныЗакупок
	|ИЗ
	|	ПоследнийПериод КАК ПоследнийПериод
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыПоставщиков КАК ЦеныНоменклатурыПоставщиков
	|		ПО ПоследнийПериод.Период = ЦеныНоменклатурыПоставщиков.Период
	|			И ПоследнийПериод.Номенклатура = ЦеныНоменклатурыПоставщиков.Номенклатура
	|ГДЕ
	|	ЦеныНоменклатурыПоставщиков.Цена > 0
	|	И НЕ ЦеныНоменклатурыПоставщиков.Цена ЕСТЬ NULL 
	|
	|СГРУППИРОВАТЬ ПО
	|	ЦеныНоменклатурыПоставщиков.Период,
	|	ЦеныНоменклатурыПоставщиков.Номенклатура
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ВыборкаИзлишковНедостач.Номенклатура,
	|	ВыборкаИзлишковНедостач.Артикул,
	|	ВыборкаИзлишковНедостач.Излишки,
	|	ВыборкаИзлишковНедостач.Недостача,
	|	КрайниеЦеныЗакупок.Цена
	|ИЗ
	|	КрайниеЦеныЗакупок КАК КрайниеЦеныЗакупок
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВыборкаИзлишковНедостач КАК ВыборкаИзлишковНедостач
	|		ПО (ВыборкаИзлишковНедостач.Номенклатура = КрайниеЦеныЗакупок.Номенклатура)";
	
	
	Запрос.УстановитьПараметр("Склад", Склад);
	Запрос.УстановитьПараметр("Дата",ТекущаяДата());
	Результат = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = Результат.Выбрать();
	
	// Создаем таблицу с излишками товара
	
	ТЗИзлишки = Новый ТаблицаЗначений;
	ТЗИзлишки.Колонки.Добавить("Номенклатура");
	ТЗИзлишки.Колонки.Добавить("Артикул");
	ТЗИзлишки.Колонки.Добавить("Излишки");
	ТЗИзлишки.Колонки.Добавить("Цена");
	
	// Создаем таблицу с недостачей товара
	
	ТЗНедостача = Новый ТаблицаЗначений;
	ТЗНедостача.Колонки.Добавить("Номенклатура");
	ТЗНедостача.Колонки.Добавить("Артикул");
	ТЗНедостача.Колонки.Добавить("Недостача");
	ТЗНедостача.Колонки.Добавить("Цена");
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		// Заполняем таблицы излишков и недостач
		Если (ВыборкаДетальныеЗаписи.недостача < 0) и (ВыборкаДетальныеЗаписи.излишки > 0 ) Тогда
			СтрокаИзлишки = ТЗИзлишки.Добавить();
			СтрокаИзлишки.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
			СтрокаИзлишки.Артикул = ВыборкаДетальныеЗаписи.Артикул;
			СтрокаИзлишки.Излишки = ВыборкаДетальныеЗаписи.Излишки;
			СтрокаИзлишки.Цена = ВыборкаДетальныеЗаписи.Цена;
			
			СтрокаНедостача = ТЗНедостача.Добавить();
			СтрокаНедостача.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
			СтрокаНедостача.Артикул = ВыборкаДетальныеЗаписи.Артикул;
			СтрокаНедостача.Недостача = ВыборкаДетальныеЗаписи.Недостача;
			СтрокаНедостача.Цена = ВыборкаДетальныеЗаписи.Цена;
			
		ИначеЕсли ВыборкаДетальныеЗаписи.Излишки > 0  Тогда
			СтрокаИзлишки = ТЗИзлишки.Добавить();
			СтрокаИзлишки.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
			СтрокаИзлишки.Артикул = ВыборкаДетальныеЗаписи.Артикул;
			СтрокаИзлишки.Излишки = ВыборкаДетальныеЗаписи.Излишки;
			СтрокаИзлишки.Цена = ВыборкаДетальныеЗаписи.Цена;
			
			// Заполняем таблицу недостач
			
		ИначеЕсли ВыборкаДетальныеЗаписи.Недостача < 0 тогда
			СтрокаНедостача = ТЗНедостача.Добавить();
			СтрокаНедостача.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
			СтрокаНедостача.Артикул = ВыборкаДетальныеЗаписи.Артикул;
			СтрокаНедостача.Недостача = ВыборкаДетальныеЗаписи.Недостача;
			СтрокаНедостача.Цена = ВыборкаДетальныеЗаписи.Цена;
		КонецЕсли;	
		
	КонецЦикла;
	
	ТЗИзлишки.Сортировать("Артикул ВОЗР");
	ТЗНедостача.Сортировать("Артикул ВОЗР");
	
	//Создаем таблицу пересортицы
	
	ТЗРезультат = Новый ТаблицаЗначений;
	ТЗРезультат.Колонки.Добавить("НоменклатураСписываемая", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
	ТЗРезультат.Колонки.Добавить("АртикулСписываемая", Новый ОписаниеТипов("Строка"));
	ТЗРезультат.Колонки.Добавить("ЦенаСписываемая",Новый ОписаниеТипов("Число"));
	ТЗРезультат.Колонки.Добавить("НоменклатураПриходуемая",Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
	ТЗРезультат.Колонки.Добавить("АртикулПриходуемая",Новый ОписаниеТипов("Строка"));
	ТЗРезультат.Колонки.Добавить("РасхождениеЦены",Новый ОписаниеТипов("Число"));
	ТЗРезультат.Колонки.Добавить("Количество",Новый ОписаниеТипов("Число"));
	
	
	Для Каждого СтрокаИзлишки из ТЗИзлишки Цикл
		АртикулИзлишки = СтрокаИзлишки.Артикул;
		КоличествоСтрок = 0;
		Для каждого СтрокаНедостача из ТЗНедостача Цикл
			
			АртикулНедостача = СтрокаНедостача.Артикул;
			// Пробуем товару в излишке подобрать товар с недостачей			
			Если АртикулИзлишки = АртикулНедостача Тогда
				АртикулНедостача = СтрокаНедостача.Артикул;
				СтрокаРезультат = ТЗРезультат.Добавить();
				СтрокаРезультат.НоменклатураСписываемая = СтрокаИзлишки.Номенклатура;
				СтрокаРезультат.АртикулСписываемая = СтрокаИзлишки.Артикул;
				СтрокаРезультат.НоменклатураПриходуемая = СтрокаНедостача.Номенклатура;
				СтрокаРезультат.АртикулПриходуемая = СтрокаНедостача.Артикул;
				СтрокаРезультат.Количество = Мин(СтрокаИзлишки.Излишки,(-СтрокаНедостача.Недостача));
				СтрокаРезультат.РасхождениеЦены = 100 - (Мин(СтрокаИзлишки.Цена,СтрокаНедостача.Цена)*100)/(Макс(СтрокаИзлишки.Цена,СтрокаНедостача.Цена));
				КоличествоСтрок = ТЗРезультат.Количество()+1;
			КонецЕсли;
			
		КонецЦикла;
		// Проверяем подобрались ли товары, если нет, то откусываем от артикула справа один знак
		Если (КоличествоСтрок = 0) и (СтрДлина(АртикулИзлишки) <> МинДлина) Тогда
			Пока СтрДлина(АртикулИзлишки)>МинДлина Цикл
				УкороченныйАртикулИзлишки = Лев(АртикулИзлишки,СтрДлина(АртикулИзлишки)-1);
				
				Для каждого СтрокаНедостача из ТЗНедостача Цикл
					АртикулИзлишки = УкороченныйАртикулИзлишки;
					АртикулНедостача = СтрокаНедостача.Артикул;
					АртикулНедостача = Лев(АртикулНедостача,СтрДлина(АртикулНедостача)-1);
					//проверяем совпадают ли артикулы по длине, если нет то приводим к одной длине
					Если СтрДлина(АртикулИзлишки)<>СтрДлина(АртикулНедостача) Тогда
						ДлинаАртикулИзлишки = СтрДлина(АртикулИзлишки);
						ДлинаАртикулНедостача = СтрДлина(АртикулНедостача);
						РазницаДлины = Макс(ДлинаАртикулИзлишки,ДлинаАртикулНедостача) - Мин(ДлинаАртикулИзлишки,ДлинаАртикулНедостача);
						Если СтрДлина(АртикулИзлишки)>СтрДлина(АртикулНедостача) Тогда
							АртикулИзлишки = Лев(АртикулИзлишки,(СтрДлина(АртикулИзлишки)-РазницаДлины));
						Иначе
							АртикулНедостача = Лев(АртикулНедостача, (СтрДлина(АртикулНедостача)-РазницаДлины));
						КонецЕсли;				
					КонецЕсли;
					// Пробуем товару в излишке подобрать товар с недостачей			
					Если АртикулИзлишки = АртикулНедостача Тогда
						АртикулНедостача = СтрокаНедостача.Артикул;
						СтрокаРезультат = ТЗРезультат.Добавить();
						СтрокаРезультат.НоменклатураСписываемая = СтрокаИзлишки.Номенклатура;
						СтрокаРезультат.АртикулСписываемая = СтрокаИзлишки.Артикул;
						СтрокаРезультат.НоменклатураПриходуемая = СтрокаНедостача.Номенклатура;
						СтрокаРезультат.АртикулПриходуемая = СтрокаНедостача.Артикул;
						СтрокаРезультат.Количество = Мин(СтрокаИзлишки.Излишки,(-СтрокаНедостача.Недостача));
						СтрокаРезультат.РасхождениеЦены =100- (Мин(СтрокаИзлишки.Цена,СтрокаНедостача.Цена)*100)/(Макс(СтрокаИзлишки.Цена,СтрокаНедостача.Цена));
					КонецЕсли;
					АртикулИзлишки = УкороченныйАртикулИзлишки;
				КонецЦикла;	
			КонецЦикла;
			
		КонецЕсли;
		
	КонецЦикла;
	//Если подобрались одновременно несколько позиций, то берем в первую очередь ту позицию, у которой последняя закупочная цена наиболее приближена к позиции, которая в излишке.
	Запрос =  Новый Запрос; 
	Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ТЗРезультат.НоменклатураСписываемая,
	|	ТЗРезультат.АртикулСписываемая,
	|	ТЗРезультат.НоменклатураПриходуемая,
	|	ТЗРезультат.АртикулПриходуемая,
	|	ТЗРезультат.Количество,
	|	ТЗРезультат.РасхождениеЦены
	|ПОМЕСТИТЬ ТЗРезультат
	|ИЗ
	|	&ТЗРезультат КАК ТЗРезультат
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ТЗРезультат.НоменклатураСписываемая,
	|	ТЗРезультат.НоменклатураПриходуемая,
	|	ТЗРезультат.Количество,
	|	Минимум(ТЗРезультат.РасхождениеЦены) КАК РасхождениеЦены
	|ИЗ
	|	ТЗРезультат КАК ТЗРезультат
	|ГДЕ
	|	ТЗРезультат.РасхождениеЦены < &МаксПроцентРасхождения
	|
	|СГРУППИРОВАТЬ ПО
	|	ТЗРезультат.НоменклатураСписываемая,
	|	ТЗРезультат.НоменклатураПриходуемая,
	|	ТЗРезультат.Количество
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|УНИЧТОЖИТЬ ТЗРезультат";
	Запрос.УстановитьПараметр("ТЗРезультат",ТЗРезультат);
	Запрос.УстановитьПараметр("МаксПроцентРасхождения",МаксПроцентРасхожденияЦены);
	Результат = Запрос.Выполнить();
	ВыгрузкаПересортица = Результат.Выгрузить();
	Пересортица.Загрузить(ВыгрузкаПересортица);
	
	
	
	
КонецПроцедуры
Показать
user1824836; +1
16. Salavat 13 19.09.14 19:46 Сейчас в теме
(15) allgorhythm,
там* - ничего не показало :(
потому что там сидят - тоже обычные человеки. у которых может быть элементарно - плохое настроение.

сам код - не смотрел я.
+
17. allgorhythm 19.09.14 22:43 Сейчас в теме
(16) Salavat, Отпадает, но существует, ибо сказали присылайте правильный обрабатейшен и все у Вас будет хорошо, в довесок кинули скрином, а возникает вопрос, какой он этот - правильный?
+
18. artfa 58 19.09.14 22:50 Сейчас в теме
(17) allgorhythm, у меня то же отклонили обработку, т.к. я допустил халяву - не сделал проверку на null, и кинули скрин с этой ошибкой
+
19. Salavat 13 20.09.14 06:36 Сейчас в теме
(17) allgorhythm, (18) artfa, так исправляйте и вперёд!
+
20. artfa 58 20.09.14 11:39 Сейчас в теме
(19) Salavat, это было год назад, когда я еще был быдлокодером, а щас у меня нет интереса
+
21. allgorhythm 20.09.14 16:48 Сейчас в теме
(20) artfa, (19) Salavat, (13) dj_serega, В общем смысл ошибки на скриншоте, я не понимаю причем тут проверка на значение "null", т.к. это другая ошибка, это такое представление отсутствия значения, а у меня, повторюсь - Обработка ничего не показала. Разные вещи, но у меня за компьютером, всё она показывает, и кино и мимино, и пересортицу то же.
Такие вот дела.
+
22. artfa 58 20.09.14 17:34 Сейчас в теме
(21) allgorhythm, вы выбираете цену из РегистрСведений.ЦеныНоменклатурыПоставщиков, а я думаю нужно брать цену по последнему поступлению
+
23. allgorhythm 20.09.14 18:11 Сейчас в теме
(22) artfa, Нет, посмотрите еще раз.

|ВЫБРАТЬ
    |    МАКСИМУМ(ЦеныНоменклатурыПоставщиков.Период) КАК Период,
    |    ВыборкаИзлишковНедостач.Номенклатура
    |ПОМЕСТИТЬ ПоследнийПериод
    |ИЗ
    |    ВыборкаИзлишковНедостач КАК ВыборкаИзлишковНедостач
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыПоставщиков КАК ЦеныНоменклатурыПоставщиков
    |        ПО ВыборкаИзлишковНедостач.Номенклатура = ЦеныНоменклатурыПоставщиков.Номенклатура
    |ГДЕ
    |    ЦеныНоменклатурыПоставщиков.Период <= &Дата
    |
    |СГРУППИРОВАТЬ ПО
    |    ВыборкаИзлишковНедостач.Номенклатура
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    |    МАКСИМУМ(ЦеныНоменклатурыПоставщиков.Цена) КАК Цена,
    |    ЦеныНоменклатурыПоставщиков.Период,
    |    ЦеныНоменклатурыПоставщиков.Номенклатура
    |ПОМЕСТИТЬ КрайниеЦеныЗакупок
    |ИЗ
    |    ПоследнийПериод КАК ПоследнийПериод
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыПоставщиков КАК ЦеныНоменклатурыПоставщиков
    |        ПО ПоследнийПериод.Период = ЦеныНоменклатурыПоставщиков.Период
    |            И ПоследнийПериод.Номенклатура = ЦеныНоменклатурыПоставщиков.Номенклатура
    |ГДЕ
    |    ЦеныНоменклатурыПоставщиков.Цена > 0
    |    И НЕ ЦеныНоменклатурыПоставщиков.Цена ЕСТЬ NULL 
    |
    |СГРУППИРОВАТЬ ПО
    |    ЦеныНоменклатурыПоставщиков.Период,
    |    ЦеныНоменклатурыПоставщиков.Номенклатура
    |;
    |
Показать
+
24. Salavat 13 20.09.14 18:15 Сейчас в теме
(21) allgorhythm,
Такие вот дела
не смотрится картинка.
+
25. allgorhythm 20.09.14 18:16 Сейчас в теме
26. Salavat 13 20.09.14 18:29 Сейчас в теме
(25) allgorhythm, Выб ещё это сказали - сделав разрешение 320*240.
+
27. allgorhythm 20.09.14 18:38 Сейчас в теме
(26) Salavat, Нажмите на неё просто, она откроется на радикале.
+
28. Salavat 13 20.09.14 18:47 Сейчас в теме
(27) allgorhythm, открыл. но я понял как настоящему программмеру - нужно проблему по буквам разложить, ок:
на радикале 800*500 (сравните с тем, что я говорил) - на нём я ничего не разберу.
здесь картинка - как-раз в размере 380*290 (примерно). на нём - я даже не пытаюсь, штото разобрать.

объясняю как делается скрин по человечески (для обычных людей):
выделяется область нужная на экране. и сохраняется 1:1 - параллельно обрезав лишнее.

в итоге получаем то, что видим мы сами (это я про Вас), а не штото.
+
29. allgorhythm 20.09.14 18:54 Сейчас в теме
30. Salavat 13 20.09.14 19:36 Сейчас в теме
(29) allgorhythm, наконецто.
но - теперь я не вижу на скрине
В общем смысл ошибки на скриншоте, я не понимаю причем тут проверка на значение "null", т.к. это другая ошибка, это такое представление отсутствия значения, а у меня, повторюсь - Обработка ничего не показала.
я тоже не понимаю - форма обработки и только.
пустое табличное поле. а данные какие есть?
что проверятьто? на что смотреть?
+
31. allgorhythm 20.09.14 20:05 Сейчас в теме
(30) Salavat, у меня тут проблемы с инетом. напишу чуть позже
+
32. allgorhythm 21.09.14 00:17 Сейчас в теме
(30) Salavat, Есть задача описанная выше, есть процедура которая работает, *ну там написано как она работает, и есть ответный скрин, который я то же описал, вот сложите имеющиеся факты, и тогда мы поймем, что возможно, логика описана не верно, но нет, я проверил и подругому не знаю как - это возможно выполнить получив тот результат на который рассчитывает работодатель, по этому я выложил тут все за и против, программисты код понимают, если есть ко мне вопросы задавайте, т.к. я сам ну реально не понимаю как будет правильно, вот в чем дело.
+
33. Salavat 13 21.09.14 07:26 Сейчас в теме
(32) allgorhythm, могу сказать однозначно только про одно - ссылка-скрин нерабочая, снова.
+
34. allgorhythm 21.09.14 17:00 Сейчас в теме
(33) Salavat, Та же таблица только с значениями.
+
3. spezc 782 16.09.14 09:00 Сейчас в теме
4. CaptainMorgan 16.09.14 09:29 Сейчас в теме
1) Уточните стоимость и сроки.
2) Давайте базу.
+
6. AllexSoft 16.09.14 10:01 Сейчас в теме
У меня даже все готовое есть) разве что у нас артикулы через точку, а не через "-" ..
+
7. allgorhythm 18.09.14 18:53 Сейчас в теме
(6) AllexSoft, Здравствуйте Алексей, вы писали что у Вас есть похожая обработка, если Вам не составит труда вышлите её мне пожалуйста на адрес "v.evtushenko@hotmail.com".
C уважением, Владимир.
+
8. AllexSoft 19.09.14 10:32 Сейчас в теме
(7) allgorhythm, думаю вам стоит взглянуть на (3) spezc.. дешевле навряд-ли найдете
+
9. Salavat 13 19.09.14 13:23 Сейчас в теме
(8) AllexSoft, на http://forum.infostart.ru/forum86/topic116810/message1213194/#message1213194 - тоже стоит посмотреть -
нужно договориться о цене/сроках.
ma1lz; AllexSoft; +2
35. jobkostya1c_ERP 100 21.09.14 21:30 Сейчас в теме
Что-то задание сильно напоминает тестовое, рассылаемое всем подряд одним из московских франчей. Причем по их словам
мы запустим у себя в базе...если не заработает, то просто скажем Вам без анализа ошибок. А если так как надо отработает то...
.
+
36. allgorhythm 22.09.14 01:25 Сейчас в теме
(35) kostyaomsk, так а как надо то, Вы знаете? :)
+
37. jobkostya1c_ERP 100 22.09.14 21:20 Сейчас в теме
Тут затрагивали тему со стандартным помощником продаж, который сейчас коверкаю. И этот не работает. Раз уж начали тему, придется что-нибудь по данной обработке поглядеть. Чтоб задание сменили :)
+
38. allgorhythm 22.09.14 21:45 Сейчас в теме
Пожалуйста! Милости просим :)
+
39. allgorhythm 30.09.14 14:35 Сейчас в теме
Всё! Тема - Поднависло! :)
+
41. artfa 58 30.09.14 15:10 Сейчас в теме
(39) allgorhythm, (40) kostyaomsk, а оно вам надо? без работы хороший кодер никогда не останется, а делать эту обработку чтобы пройти тест работодателя - мне уже не надо, и так зашиваюсь на фрилансе
+
40. jobkostya1c_ERP 100 30.09.14 15:00 Сейчас в теме
Придется обработку сделать, которая генерирует бардак на складах :) И давайте тогда уже 11.1.7 релиз. Или бета-версию 11.1.9 т.к. на сайте 1С установочный демо есть)
Видимо, смотрят на оригинальность решения или считают раз потратил столько времени значит очень надо.
+
42. jobkostya1c_ERP 100 01.10.14 09:23 Сейчас в теме
Не для теста работодателя, а для теста УТ и прочих торговых последнего релиза. Мало ли какие обработчики могут зацепиться при программном создании документов. Наталкивает на идею еще одной разработки. Это я про моделирование ситуации до начала работы пересортицы. И такую вещь точно не нужно выкладывать. Она же вредоносная получается. Сначала запустят что попало, потом весь инфостарт запретят :)
+
43. Ничего 07.10.14 15:11 Сейчас в теме
В задании сказано: анализировать регистр "Товары на складах", а автор делает выборку из РегистрНакопления.ТоварыКОформлениюИзлишковНедостач.
+
44. allgorhythm 07.10.14 16:38 Сейчас в теме
(43) Ничего, Ну и как вы предлагаете написать запрос исходя из вашего комментария? Очень интересно посмотреть...
+
45. Ничего 08.10.14 08:41 Сейчас в теме
allgorhythm, я не предлагаю, я только предполагаю возможные причины, почему обработка ничего не показала. А написать запрос можно, например, так:
Запрос = Новый Запрос;

МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;

Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;

Запрос.Текст = "ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура КАК НоменклатураПриходуемая,
| ТоварыНаСкладахОстатки.Номенклатура.Артикул КАК АртикулНоменклатураПриходуемая,
| ТоварыНаСкладахОстатки.ВНаличииОстаток - ТоварыНаСкладахОстатки.ВРезервеОстаток КАК Излишек,
| ЕСТЬNULL(ЦеныЗакупочные.Цена, 0) КАК ПоследняяЗакупочнаяЦенаИзлишки
|ПОМЕСТИТЬ ВТ_ТоварыИзлишки
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК ТоварыНаСкладахОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних(, ) КАК ЦеныЗакупочные
| ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныЗакупочные.Номенклатура
|ГДЕ
| ТоварыНаСкладахОстатки.ВНаличииОстаток - ТоварыНаСкладахОстатки.ВРезервеОстаток > 0
|;
|
|////////////////////////////////////////////////////////////­////////////////////
|ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура КАК НоменклатураСписываемая,
| ТоварыНаСкладахОстатки.Номенклатура.Артикул КАК АртикулНоменклатураСписываемая,
| ТоварыНаСкладахОстатки.ВНаличииОстаток - ТоварыНаСкладахОстатки.ВРезервеОстаток КАК Нехватка,
| ЕСТЬNULL(ЦеныЗакупочные.Цена, 0) КАК ПоследняяЗакупочнаяЦенаНехватка
|ПОМЕСТИТЬ ВТ_ТоварыНедостача
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК ТоварыНаСкладахОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних(, ) КАК ЦеныЗакупочные
| ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныЗакупочные.Номенклатура
|ГДЕ
| ТоварыНаСкладахОстатки.ВНаличииОстаток - ТоварыНаСкладахОстатки.ВРезервеОстаток < ";
+
Внимание! Тема сдана в архив

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