Вопрос № 101475: Здравствуйте!
Я выгружаю из файла такого содержания данные в файл:
//----------------------------------------------------------------------------------------
Сбор данных,ШК+БД,4607001290742,,30
Сбор данных,ШК+БД,4607001290032,МАСЛО ЗО...
Вопрос № 101.475
Здравствуйте!
Я выгружаю из файла такого содержания данные в файл:
//----------------------------------------------------------------------------------------
Сбор данных,ШК+БД,4607001290742,,30
Сбор данных,ШК+БД,4607001290032,МАСЛО ЗОЛОТАЯ СЕМЕЧКА,9
Сбор данных,ШК+БД,4607001290018,vМАСЛО ПОДСОЛН. ЗОЛОТА,32
Сбор данных,ШК+БД,0718122031207,МАСЛО ОЛИВКОВКОВОЕ EV,1
Сбор данных,ШК+БД,4607086490457,МАСЛО ОЛИВКОВОЕ SOFOS,2
Сбор данных,ШК+БД,4607086490426,МАСЛО ОЛИВКОВОЕ SOFOS,7
Сбор данных,ШК+БД,4820043010042,МАСЛО ГРЕЦКОГО ОРЕХА 0,2
Сбор данных,ШК+БД,4820043010417,МАСЛО ТЫКВЕННОЕ 100%,2
Сбор данных,ШК+БД,4607049240037,МАСЛО ГОРЧИЧНОЕ ГОРЛИН,4
//----------------------------------------------------------------------------------------
На самом деле из этого файла берутся только штрих-код и количество, соответственно в строку табличной части устанавливается количество факт, рознечная цена и сумма, фактическая и учетная:
//----------------------------------------------------------------------------------------
Пока ВремЦена.ПолучитьЭлемент() = 1 Цикл
Если ВремЦена.ТипЦен.Наименование = "Закупочные" Тогда
ВремДок.Цена = ВремЦена.Цена.Получить(ВремДок.ДатаДок);
Прервать;
КонецЕсли;
КонецЦикла;
ВремДок.СуммаУчет = ВремДок.Цена * ВремДок.КоличествоУчет;
ВремДок.Сумма = ВремДок.Цена * ВремДок.Количество;
//----------------------------------------------------------------------------------------
Для получения учетного количества естественно нужно получить реальный остаток на дату документа, делаю я это следующим образом, что меня самого не устраивает, т.к. каждый раз при вызове функции происходит заполнение остатками таблицы значений, свертывание этой таблицы, поиск элемента и получение его остатка:
ТабОст, мне сказали свернуть, т.к. в ней могут дублироваться элементы справочников, что-то связано с партиями, я бы хотел, чтобы вы это мне объяснили .....
Какой мне лучше применить способ для получения реального остатка товара, для занисения в колонку "КоличествоУчет" табличной части документа Инвентаризации (по складу)?
Отправлен: 10.09.2007, 07:46
Вопрос задал: _Alexey_ (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 10)
Отвечает: Elric
Здравствуйте, _Alexey_!
Во-первых, Вам правильно объяснили -- у регистра ОстаткиТМЦ есть и другие измерения, кроме "Номенклатура", поэтому один и тот же ТМЦ может фигурировать несколько раз в таблице ТабОст, следовательно ее надо свернуть, как Вы и сделали абсолютно правильно.
Во-вторых, Ваша функция ОстаткиТоваров() работает абсолютно правильно, хоть и не оптимизирована (есть лишние и неработающие строки, но ничего критичного).
В-третьих, эту функцию лучше всего было бы написать так, как у меня в Приложении -- получать сразу нужное значение из регистра, не выгружая весь регистр в таблицу значений. Параметры в примененном у меня методе СводныйОстаток проставьте в соответствии со структурой Вашего регистра ОстаткиТМЦ (см. также Синтакс-Помощник).
Если будут вопросы, задавайте в мини-форуме.
Удачи!
Приложение:
--------- В творчестве рождается истина
Ответ отправил: Elric (статус: Специалист)
Ответ отправлен: 10.09.2007, 11:14 Оценка за ответ: 5 Комментарий оценки: Да, вы правы, у меня все работает, но не очень оптимизированно .... У нас проводится инвентаризация по двум складам .... т.е. в БД есть два склада, следовательно мне будет нужен остаток по определенному складу! На форме обработки, я разместил текстовое поле, которое будет хранить ссылку на склад, т.е. пользователь перед созданием документа должен будет
выбрать склад и соответственно обработка должна выводить остаток по этому складу...