Ввод остатков из файла - свертка табличной части

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

Страницы: 1
RSS
Ввод остатков из файла - свертка табличной части
 
Добрый день!
конф. АА
столкнулись с такой проблемой:
Вводим документ "Ввод остатков товаров", табличную часть пробуем заполнить из XLS-файла такого вида:
Код
18   PH4386   шт.   1,00   3,38   3,38   Фильтр масляный 
19   PH4386   шт.   3,00   3,38   10,15   Фильтр масляный 
20   451103299   шт.   1,00   5,27   5,27   Фильтр масляный 
21   5281090BA   шт.   6,00   5,08   30,50   Фильтр масляный 
22   5281090BA   шт.   3,00   5,08   15,25   Фильтр масляный 
23   5281090BA   шт.   2,00   5,04   10,09   Фильтр масляный 
24   5281090BA   шт.   14,00   5,08   71,17   Фильтр масляный 
25   451203154   шт.   2,00   4,14   8,27   Фильтр масляный 
26   FE292   шт.   6,00   2,54   15,22   Фильтр масляный 
27   FE292   шт.   6,00   2,29   13,73   Фильтр масляный 
28   PH7317   шт.   2,00   6,11   12,21   Фильтр масляный 
29   PH7317   шт.   12,00   5,48   65,80   Фильтр масляный 
при этом есть строки с одинаковыми артикулами:

при попытке сохранения/проведения  - конфа ругается:
Цитата
При записи <Ввод остатков товаров ST00000001 от 26.10.2010 17:50:36> обнаружены ошибки :
Таблица <Товары> значения колонок <Номенклатура,ЕдиницаИзмерения,ХарактеристикаНоменклатуры> не уникальны ! Строки: 2,3,4,5
Таблица <Товары> значения колонок <Номенклатура,ЕдиницаИзмерения,ХарактеристикаНоменклатуры> не уникальны ! Строки: 6,7
Таблица <Товары> значения колонок <Номенклатура,ЕдиницаИзмерения,ХарактеристикаНоменклатуры> не уникальны ! Строки: 8,9
Таблица <Товары> значения колонок <Номенклатура,ЕдиницаИзмерения,ХарактеристикаНоменклатуры> не уникальны ! Строки: 10,11,12,13,14
Из-за возникших ошибок операция записи была отменена.
Я так понимаю, что надо сделать свертку табличной части по номенклатуре, при этом вычислить среднюю себестоимость.

Подскажите, пожалуйста, как это сделать в АА? есть ли какие-то штатные средства обойти этот момент?
В загружаемом документе порядка 5000 позиций и почти все из них - имеют записи по нескольку строк :-(

P.S. в коде и на рисунке можгут строки не совпадать - выкинул кое-что для наглядности...
 
В подменю заполнить добавьте новую кнопку например "Свернуть табличную часть".
Сверните табличную часть следующей строкой:
Товары.Свернуть("Номенклатура, ЕдиницаИзмерения, Коэффициент, СтавкаНДС, ХарактеристикаНоменклатуры, ГТД, ПроцентНаценки", "Цена, Количество, Сумма, СуммаВсего, СуммаНДС, ЦенаРозничная, СуммаРозничная");

затем нужно пересчитать розничную цену.
И запустить обработчик
ОбработкаРеквизита("Товары.Сумма", ТекущаяСтрока, ЭтаФорма);
Изменено: Виктор Радько - 27.10.2010 11:03:45
 
Виктор Радько,
до свертки:
после свертки:
вопросы:
1)ОбработкаРеквизита("Товары.Сумма", ТекущаяСтрока, ЭтаФорма); - это нужно для пересчета суммы
а для пересчета розничной цены, нужно знать сколько строк свернулось в текущую строку, чтобы получить "Цена=Цена/Кол.Строк.Свернутых". Как получить сколько строк свернулось в текущую строку? (именно не количество в колонке "количество", а количество свернутых строк по данной позиции)

2) может немножко не в тему: используется это же документ и эта же процедура загрузки из файла - есть проблема автоматической подгрузки "единицы измерения" - не могу настроить так, чтобы брало из файла или выставляло автоматом... как-то с этим можно бороться? может нужно ранее при загрузке номенклатуры создавать для неё "Единицы измерения"?

3) вопрос по ценам в данном документе(почитал хелп - немонятно) поле "Цена" - это грубо говоря "себестоимость" детали по которой она ложится на склад?
"Цена розничная" - я так понял что это должна быть цена по которой мы продаём в розницу или не так? если это так, то почему не подхватывается текущая розничная цена, установленная документом "Изменение цен компании" если это не реальная розничная цена - то данную колонку можно проигнорировать и использовать только колонку "Цена", для задания себестоимости товара на складе. Проясните, пожалуйста, ситуацию.
 
1.
ОбработкаРеквизита("Товары.Сумма", ТекущаяСтрока, ЭтаФорма); нужна для получения цены и процента наценки.
цена розничная = Сумма розничная/количество товара, иначе можем получить большое расхождение между Суммой и ценой умноженной на количество.

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

3.
 "Цена" - это грубо говоря "себестоимость".
 "Цена розничная" - это цена учета на розничном складе, а не цена продажи. Тип розничной цены указывается в поле "Тип цен розничной торговли" у Склада документа, если он розничный. Можно розничную цену не подгружать, а брать из регистра сведений вот нужный вызов события
ОбработкаРеквизита("УстановитьРозничнуюЦену", ТекущаяСтрока, ЭтаФорма);

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

Себестоимость хранится в регистре "Партии товаров компании", а розничная сумма в регистре "Остатки товаров компании".
 
Спасибо!
По ценам.
С ценами вроде понятно: что для чего и как лучше рассчитывать. Только уточню: я правильно понял, что можно только загрузить "Цену" как себестоимость, а "Розничную цену" не загружать совсем - если цены устанавливаются отдельным документом "изменение цен"?
или именно для этого документа нужно подгружать или брать из регистров розничную цену, чтобы правильно потом отображались отчеты?

По "Единицам Измерения".
Не совсем понятно, как это же обработкой загрузить единицы - крутил и так и эдак - не получается... мне для начала надо хотя бы просто всем позициям указать "шт".
Есть ли какой-то пример, как имея Список Номенклатуры(наименование, артикул - уникальный, если нужно - код в БД) - установить для "ввода остатков" единицы измерения "шт"?

Номенклатуру я гружу программно из excel-файла, кусок кода касательно единиц у меня такой:
Код
НовыйЭлемент.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("796");//"шт"
НовыйЭлемент.ОсновнаяЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");//"шт"
 
Цитата
Александр Тугаенко пишет:
я правильно понял, что можно только загрузить "Цену" как себестоимость, а "Розничную цену" не загружать совсем - если цены устанавливаются отдельным документом "изменение цен"?
или именно для этого документа нужно подгружать или брать из регистров розничную цену, чтобы правильно потом отображались отчеты?

Если для розничного склада не будут заданы розничные суммы (цены), то они не попадут в регистр "Остатки товаров компании". Искажаются данные для учета товаров розничного склада в продажных ценах, если не сделать переоценку товара, по ценам регистра сведений "Цены".
Розничные суммы вводятся не обязательно только в документе "Ввод остатков товаров". Они вводятся во всех документах оприходования товара.

Для загрузки единиц обработку "Загрузка данных из табличного документа" нужно запускать из подменю "Обработки" главного меню.
 
Спасибо за помощь!

Кому интересно, в результате делаю так:
1) загружаю Номенклатуру и и в процессе программно для каждой позиции "Основную единицу измерения" - НовыйЭлемент.ОсновнаяЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт")
- получается для всех одинаковая и вроде какая-то виртуальная - до конца не понял :-(.
2) Загружаю через обработку "Загрузка из табличного файла" - в справочник "единицы измерения" записи для каждой позиции номенклатуры.
3) программно изменяю у всей номенклатуры ОсновнуюЕдиницуИзмерения на загруженную на предыдущем шаге.
Теперь у всей номенклатуры ОсновнаяЕдиницаИзмерения=шт и для каждой - своя(в справочнике идут записи со связью по владельцу, в лице которого выступает Номенклатура) - т.к. надо будет потом устанавливать вес, то в качестве связи по владельцу использую Номенклатуру, а не ТипНоменклатуры...
4)В док. "Ввод остатков" через обработку "заполнить из файла" подгружаю остатки номенклатуры, при этом достаточно иметь(для меня): Артикул (уникальный у нас), Количество, Наименование ОсновнойЕдиницыИзмерения - шт, Цену(себестоимость). Остальное - выставляется или вычисляется.
5) после выполнения обработки в ТЧ "Ввод остатков" для всех строк прогоняю обработчик
ОбработкаРеквизита("Товары.Сумма", ТекущаяСтрока, ЭтаФорма);
если этого не сделать - не пропишется себестоимость товара в регистры...

в результате получаю полный список Номенклатуры с остатками, себестоимостью остатков, и для каждой номенклатуры есть своя основная единицы измерения - на которую потом будет подвязываться вес...

P.S. свертку средствами 1С корректно сделать не получилось, а т.к. это надо будет сделать только 1 раз, то выгружаю xls-входные данные в MySQL - там запросом делаю что мне нужно, - выгружаю обратно в xls-файл и уже свернутый и полностью рассчитанный xls-файл гружу в обработку "Загрузка из табличного файла".
Для меня так получилось быстрее, чем докапываться до того как это делается в 1С...  :cry:
Страницы: 1
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С