Имя: Пароль:
1C
1C 7.7
v7: Торговля и Склад. Закрытие минусовых остатков по фирмам
,
0 shergar
 
27.06.12
13:12
Конфигурация: Торговля и Склад Типовая
Был склад, теперь этот склад не используется. (давно)
Если смотреть в ведомости по Остаткам ТМЦ по этому складу то все остатки закрыты, т.е. нулевые. Но если смотреть этот же склад в разрезе фирм (их две), то остатки красные, те остатки что с минусами должны относиться к другой фирме. Из-за этого при выгрузке на сайт вылезают эти минусовые остатки.
Появилась идея сделать просто перемещение с фирмы на фирму и тогда все все остатки по фирмам закроются.
Но тут вылезла другая проблема.
При формировании остатков по регистру ОстаткиТМЦ, с помощью внешней обработки, получились по некоторым позициям номенклатуры, остатки отличные от тех что я получаю если сформирую отчет Ведомость по остаткам ТМЦ или отчет по регистрам regprint.ert
Нужна помощь:
1) Предложить идею, как закрыть минусовые остатки без документа ПеремещениеТМЦ, чтобы на сайт попадали остатки без минусов
Вот картинка ведомостей сформированных по одному складу, но по разным фирмам:
http://img-fotki.yandex.ru/get/5405/7456566.1f/0_7b668_335d00f5_XXL.jpg
2) Почему различаются конечные остатки некоторых позиций номенклатуры, если все условия одинаковые
Вот код обработки, там два варианта получения остатков, но оба варианта по остаткам не соответствуют данным из ведомости ОстаткиТМЦ.
Код:

//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать2()
Перем Запрос, ТекстЗапроса;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с '01.01.2012' по '29.05.2012';
|Фирма = Регистр.ОстаткиТМЦ.Фирма;
|Склад = Регистр.ОстаткиТМЦ.Склад;
|Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;
|Количество = Регистр.ОстаткиТМЦ.Количество;
|Функция КоличествоКонОст = КонОст(Количество);
|Группировка Номенклатура без групп;
|Условие(Фирма = ВыбФирма);
|Условие(Склад = ВыбСклад);
|Условие(Номенклатура = ВыбНоменклатура);
|Условие(Количество > 0);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса

// Заполнение полей "Заголовок"

Док = СоздатьОбъект("Документ.ПеремещениеТМЦ");
Док.Новый();
Док.Фирма = ВыбФирма;
Док.Склад = ВыбСклад;
Док.Валюта = Константа.ВалютаБухУчета;
Фирм = СоздатьОбъект("Справочник.Фирмы");
Фирм.НайтиПоКоду("00002",0);
Док.ФирмаПолучатель = Фирм.ТекущийЭлемент();
Док.СкладПолучатель = ВыбСклад;
Пока Запрос.Группировка(1) = 1 Цикл
Док.НоваяСтрока();
Док.Номенклатура = Запрос.Номенклатура;
Док.Количество = Запрос.КоличествоКонОст;
Док.Единица = Док.Номенклатура.ОсновнаяЕдиница;
Док.Коэффициент = Док.Единица.Коэффициент;
Док.Цена = 0;
// Заполнение полей Номенклатура

КонецЦикла;
Док.Записать();
Док.Провести();
// Заполнение полей "Итого"

// Вывод заполненной формы

КонецПроцедуры

Процедура Сформировать()
Док = СоздатьОбъект("Документ.ПеремещениеТМЦ");
Док.Новый();
Док.Фирма = ВыбФирма;
Док.Склад = ВыбСклад;
Док.Валюта = Константа.ВалютаБухУчета;
Фирм = СоздатьОбъект("Справочник.Фирмы");
Фирм.НайтиПоКоду("00002",0);
Док.ФирмаПолучатель = Фирм.ТекущийЭлемент();
Док.СкладПолучатель = ВыбСклад;

ВремРегистры = СоздатьОбъект("Регистры");
РегТовары = ВремРегистры.ОстаткиТМЦ;
РегТовары.УстановитьФильтр(ВыбФирма,ВыбНоменклатур а,ВыбСклад,,);
РегТовары.ВыбратьИтоги();
Пока РегТовары.ПолучитьИтог()=1 Цикл
Док.НоваяСтрока();
Док.Номенклатура = РегТовары.Номенклатура;
Док.Количество = РегТовары.Количество;
Док.Единица = Док.Номенклатура.ОсновнаяЕдиница;
Док.Коэффициент = Док.Единица.Коэффициент;
Док.Цена = 0;
КонецЦикла;
Док.Записать();
Док.Провести();
КонецПроцедуры


Где лажа?
П.С. Не обращайте внимание на различные периоды дат, в 2012 году на этом складе не было никаких оборотов
1 DGorgoN
 
27.06.12
13:14
Чувствую у вас ноги от учета неправильного растут.
Если там минуса есть то что-то там неправильно..
2 Любопытная
 
27.06.12
13:20
(0) А чего вы просто инвентаризацию не сделаете?
3 shergar
 
27.06.12
13:23
(1)
Сейчас все ведется по другим складам и все хорошо, но выгрузка на сайт прихватывает те старые минуса
4 shergar
 
27.06.12
13:24
(2)
Это же равноценно ПеремещениюТМЦ? Ручками не получится, слишком много позиций
5 AlisaM
 
27.06.12
13:30
В Инвентаризации есть кнопка заполнить.
6 fedoss
 
27.06.12
13:32
(0) Ведомость по остаткам делает примерно такой же запрос. Остатки могут отличатся по товарам, у которых более 1 ед. измерения, т.к. Ведомость пересчитывает количество в Основную/Базовую
7 shergar
 
27.06.12
13:33
(5)
Пробую
8 shergar
 
27.06.12
13:33
(6)
Отличная идея, ушла копаться
9 shergar
 
27.06.12
14:23
(5)
Склад розничный. Инвентаризация не заполняется по розничному складу. Надо менять документ в конфе, что ненужно. А далее если пытаемся провести, что Списание, что Перемещение, что Оприходование, выдает что нет нужного количества на складе, т.е. остатки нулевые, потому что по складу они действительно нулевые.

Может есть возможность безболезненно сделать склад оптовым?
10 shergar
 
27.06.12
15:13
(6) У тех позиций что различаются, у них одна единица измерения
11 Туц
 
28.06.12
07:04
(0) Ну если там минусы, то продают с одной фирмы то что приходуется на другую. В данном конкретном случае из запроса просто уберите фирму.
12 ЧеловекДуши
 
28.06.12
07:17
Мдя... ТиС с несколькими фирмами :)
...И автор все ровно, как муха бьется об стекло :)
13 ЧеловекДуши
 
28.06.12
07:18
+(0)Делай инвентаризация с учетом фирмы, открой конфигуратор (ТиС - это не та конфа которую нельзя изменять под нужды компании, обычно её допиливают и отпукают в плаванье)