выгрузка остатков ТиС 964

  • Автор темы Автор темы KiR
  • Дата начала Дата начала
Тогда воспользуйся тем, что я уже не раз изложил - для остатков - два регистра, для резервов - еще два,
для взаиморасчетов - Касса, Банк, ВзаиморасчетыПоставщиков, ВзаиморасчетыПокупателей
 
при переносе остатков (без резервов) регистры ОстаткиТМЦ и ПартииНаличие
будут содержать нужные данные, остальные регистры тебя заботить не должны
абсолютно верно. но в обработке кажется нет ПратииНаличие... (в принципе реально дописать)
и еще мне не понятно пару моментов:
1. в справочнике цены по идее должны оставаться все цены, в том числе и внесенные документами - для истории и для наличия последней цены прихода. эти цены не потеряются при таком переносе?
2. влияет ли SC214.DBF на регистр ПратииНаличие и справочник Цен?
 
в справочнике цены по идее должны оставаться все цены, в том числе и внесенные документами - для истории и для наличия последней цены прихода. эти цены не потеряются при таком переносе?
С этим проблем не наблюдал
2. влияет ли SC214.DBF на регистр ПартииНаличие и справочник Цен?
1. На цены НЕ влияет
2. Справочник партии должен быть вычищен, ибо при вводе начальных остатков будут созданы соответствующие его
элементы для каждой номенклатуры.

Прилагаю программу экспорта состояния регистра "ПартииНаличие" - оттуда берутся цены по партиям.
Если нужно среднюю цену - справишься, если по партиям - придется загрузить отдельно пары "Номенклатура-цена" с соответствующими
количествами
 

Вложения

vbs, очередной раз сердечно благодарю и прошу прощения за невнимательность - недоглядел ибо в архиве была эта или подобная обработка :ya_lamo:
 
vbs, да. пока они не нужны. спасибо! просто изначально неверные данные мне давали - что типа нада все переносить, а как выяснилось - только 2 регистра реально нужно. ну и справочники все
 
народ, откликнитесь пожалуйста кто пользовался типовой сверткой ТиСа
 
Я пробовал 2 раза, больше не хочу - тошно смотреть, как она часами переливает из пустого в порожнее.
И это с базой, которой отроду 15 месяцев
 
у мну такой вопрос - создались документы Ввод Остатков ТМЦ причем с двумя видами операций - Остатки ТМЦ на складе без учета партий и Остатки ТМЦ по партиям. у первых присутствует в реквизитах склад, но отсутствуют Цены (и как следствие Сумма документа), во вторых - наоборот, отсутствует склад. Почему так и правильно ли это?
 
Видимо, имеешь в виду движения регистров "ОстаткиТМЦ" и "ПартииНаличие" ?
Тогда, в общем случае, все у тебя правильно.
Но если хочешь привязать цены к остаткам, надо заполнять измерение ЦеныПрод в регистре "ОстаткиТМЦ",
а если партии - к складам - в регистре "ПартииНаличие" заполнять измерение МОЛ соответствующим значением для каждого склада (из справочника "Склады").

Мне это было не нужно, я и не заморачивался
 
Видимо, имеешь в виду движения регистров "ОстаткиТМЦ" и "ПартииНаличие" ?
Тогда, в общем случае, все у тебя правильно.
Но если хочешь привязать цены к остаткам, надо заполнять измерение ЦеныПрод в регистре "ОстаткиТМЦ",
а если партии - к складам - в регистре "ПартииНаличие" заполнять измерение МОЛ соответствующим значением для каждого склада (из справочника "Склады").

Мне это было не нужно, я и не заморачивался
МОЛы к сожалению не подвязаны. посему необходимо в доке ВводаОстатковСпартиями добавить склад
 
я делал проще - выгружал все остатки в текстовые файлы процедуркой

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

ТекстЗапроса ="Период с ДатаКонца По ДатаКонца;
|Без Итогов;" +РазделительСтрок;
СчетчикЦикла = 0;

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

Запрос.Выполнить(ТекстЗапроса);
Запрос.Выгрузить(ТЗ); 
Тз.Свернуть(СтрокаСверткиИзмерение,СтрокаСверткиРесурс);
Текст = СоздатьОбъект("Текст");
Текст.ДобавитьСтроку(ЗначениеВСтроку(ТЗ));
Текст.записать(КаталогИБ() + "\остатки\" + ИмяРегистра +".txt");

КонецЦикла;

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


потом делал документ, реквизитов никаких . В модуле проведения
Код:
Процедура ОбработкаПроведения()
Тз = СоздатьОбъект("ТаблицаЗначений");
Док = СоздатьОбъект("Документ");
Для ааа = 1 по Метаданные.Регистр() Цикл
Если метаданные.регистр(ааа).ТипРегистра = "Обороты" Тогда
Продолжить
КонецЕсли;
ИмяРегистра = Метаданные.Регистр(ааа).Идентификатор; 
Текст = СоздатьОбъект("Текст"); 
ИмяКаталога = каталогИБ() + "\остатки\";
Текст.открыть(имяКаталога + ИмяРегистра + ".txt");
Вывод = Текст.ПолучитьСтроку(1);
Тз.Загрузить(ЗначениеИзСтроки(Вывод));


Рег = Регистр.ПолучитьАтрибут(ИмяРегистра);
Если Тз.КоличествоСтрок() = 0 Тогда
Продолжить;
КонецЕсли;

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

Приход - потому как не заморачивался. При желании можно хоть все движения перенести. Базу сворачивал прямым удалением записей на скуле (там были хитрые условия, типа свернуть - но не всех и их родственников ;-), а база под 200тыщ документов). Как дотестирую - выложу.
 
На вкус и цвет, как говорится...
Но, похоже, описанный случай - для переноса всех данных по регистрам.
Я в четырех фирмах делал подобное для ТиС (Бухгалтерия - вопрос отдельный, на мой взгляд, с ней проще).
Во всех случаях нужно было перенести только остатки товаров и, возможно, взаиморасчеты.
Так вот, при создании документов "ВводОстатковТМЦ" именно реквизитами шапки учитывается специфика каждой конторы,
заполнить их автоматически несложно (был у меня случай, когда этих документов делалось 22 - по числу складов),
а модуль проведения остается родным.
Мне кажется, подобное понадежнее (не влезаем в конфигурацию)
 
суть в том что уже имею что имею - базу обрезанную стандартными средствами. теперь нужен товарный отчет с разделением по складам а не по молам. чтобы получить разрез складов надо чтобы в ВводеОстатковТМЦ с операцией Остатки По Партиям (который содержит цены) - добавить еще и склад, ибо реквизит склад в этих доках не заполнен. а заполнен он в доке ВводОстатковТМЦ с операцией Остатки Без Партий...
 
Типовая ТиС такую операцию почему-то не предусматривает.
Придется дать возможность добавить такой вид операции (см. процедуру "ПоКнопкеОперация") и доработать
модуль документа. Но... be careful !
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab