Вывод остатков..помогите
17.07.2009
11:42
#1
"Здравствуйте! Помогите пожалуйста, если сможите начинающему.Имеются подразделения. Реализовано списание техники, премещение между подразделениями в 1С77. Всё это на
забалансовом счёте МЦ04.Теперь возникла необходимость получения остатков по каждому подразделению.
Написан следующий код:
Опер22=СоздатьОбъект ("Операция");
опер22.использоватьСубконто(ВидыСубконто.Подразделения,Подразделение);
Опер22.ВыбратьОперацииСПроводкми(ВыбНачПериода,ВыбКонПериода,счет,,1);
Пока Опер22.ПолучитьПроводку()=1 Цикл
Приход =БухИтоги.СКД(счет,3,,Опер22.дебет.материалы,подразделение);
Если Приход > 0 Тогда
//вывод в отчёт
порНом=Порном+1;
маиериал=опер22.дебет.материалы;
Инв_Номер=опер22.дебет.материалы.код;
таб.вывестиСекцию("Строка");
КонецЕсли;
КонецЦикла;
Ошибка следующая:
В отчёте строки дублируются.
Причина:
При перемещении материала1 из подразделения1 в подроазделение2 всё нормально.
А При возвращении материала1 из подразделеня2 в подразделение1 начинается дублирование строк в отчёт, т.к:
Выведем остатки Подразделения2:
вот проводки:
1. Д-т подразделение2/подразделение1 материал СКД(подразделение2)=1 Вывод в отчёт
2. К-т подразделение1/подразделение2 материал СКД(подразделение2)=0 В отчёт не выводится
3. Д-т подразделение2/подразделение1 материал СКД(подразделение2)=1 Вывод в отчёт
Что можно сделать в этом случае? Может я изначально что то не так делаю? Ч то Вы можете предложить?
Заранее огромное Спасибо!!! "
забалансовом счёте МЦ04.Теперь возникла необходимость получения остатков по каждому подразделению.
Написан следующий код:
Опер22=СоздатьОбъект ("Операция");
опер22.использоватьСубконто(ВидыСубконто.Подразделения,Подразделение);
Опер22.ВыбратьОперацииСПроводкми(ВыбНачПериода,ВыбКонПериода,счет,,1);
Пока Опер22.ПолучитьПроводку()=1 Цикл
Приход =БухИтоги.СКД(счет,3,,Опер22.дебет.материалы,подразделение);
Если Приход > 0 Тогда
//вывод в отчёт
порНом=Порном+1;
маиериал=опер22.дебет.материалы;
Инв_Номер=опер22.дебет.материалы.код;
таб.вывестиСекцию("Строка");
КонецЕсли;
КонецЦикла;
Ошибка следующая:
В отчёте строки дублируются.
Причина:
При перемещении материала1 из подразделения1 в подроазделение2 всё нормально.
А При возвращении материала1 из подразделеня2 в подразделение1 начинается дублирование строк в отчёт, т.к:
Выведем остатки Подразделения2:
вот проводки:
1. Д-т подразделение2/подразделение1 материал СКД(подразделение2)=1 Вывод в отчёт
2. К-т подразделение1/подразделение2 материал СКД(подразделение2)=0 В отчёт не выводится
3. Д-т подразделение2/подразделение1 материал СКД(подразделение2)=1 Вывод в отчёт
Что можно сделать в этом случае? Может я изначально что то не так делаю? Ч то Вы можете предложить?
Заранее огромное Спасибо!!! "
17.07.2009
12:30
#2
"Что то как то все там в алгоритме в кучу и бухитоги и перебор проводок какой то операции зачем то. Надо так:
Предположим, что на вашем счете МЦ04 организована аналитика по двум разрезам Материалы и Подразделения
БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьСубконто(ВидыСубконто.Подразделения);
БухИт.ИспользоватьСубконто(ВидыСубконто.Материалы);
БухИт.ВыполнитьЗапрос(,НужнаяДата,"МЦ04",,,,,3);
БухИт.ВыбратьСубконто(ВидыСубконто.Подразделения);
Пока БухИт.ПолучитьСубконто(ВидыСубконто.Подразделения)=1 Цикл
Таб.ВывестиСтроку("ШапкаПодразделения"); //прямо в таблице в какой нибудь ячейке этой секции можно написать формулу БухИт.СКД("С") - это будет сводный остаток в денежном выражении по всем материалам, которые есть в подразделении, в качестве наименования подразделения обращаемся к ссылку в результате бухитогов БухИт.Субконто(ВидыСубконто.Подразделения) - тоже пишем это в какой нибудь ячейке секции
БухИт.ВыбратьСубконто(ВидыСубконто.Материалы);
Пока БухИт.ПолучитьСубконто(ВидыСубконто.Материалы)=1 Цикл
Таб.ВывестиСтроку("Строка"); //тут все по аналогии... БухИт.Субконто(ВидыСубконто.Материалы) - это элемент, по которому выводятся остатки, БухИт.СКД("К") - количественный остаток, БухИт.СКД("С") - денежный
КонецЦикла;
КонецЦикла;"
Предположим, что на вашем счете МЦ04 организована аналитика по двум разрезам Материалы и Подразделения
БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьСубконто(ВидыСубконто.Подразделения);
БухИт.ИспользоватьСубконто(ВидыСубконто.Материалы);
БухИт.ВыполнитьЗапрос(,НужнаяДата,"МЦ04",,,,,3);
БухИт.ВыбратьСубконто(ВидыСубконто.Подразделения);
Пока БухИт.ПолучитьСубконто(ВидыСубконто.Подразделения)=1 Цикл
Таб.ВывестиСтроку("ШапкаПодразделения"); //прямо в таблице в какой нибудь ячейке этой секции можно написать формулу БухИт.СКД("С") - это будет сводный остаток в денежном выражении по всем материалам, которые есть в подразделении, в качестве наименования подразделения обращаемся к ссылку в результате бухитогов БухИт.Субконто(ВидыСубконто.Подразделения) - тоже пишем это в какой нибудь ячейке секции
БухИт.ВыбратьСубконто(ВидыСубконто.Материалы);
Пока БухИт.ПолучитьСубконто(ВидыСубконто.Материалы)=1 Цикл
Таб.ВывестиСтроку("Строка"); //тут все по аналогии... БухИт.Субконто(ВидыСубконто.Материалы) - это элемент, по которому выводятся остатки, БухИт.СКД("К") - количественный остаток, БухИт.СКД("С") - денежный
КонецЦикла;
КонецЦикла;"
17.07.2009
14:47
#3
"> Что то как то все там в алгоритме в кучу и бухитоги и перебор проводок какой то операции зачем то. Надо так:
> Предположим, что на вашем счете МЦ04 организована аналитика по двум разрезам Материалы и Подразделения
>
> БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
> БухИт.ИспользоватьСубконто(ВидыСубконто.Подразделения);
> БухИт.ИспользоватьСубконто(ВидыСубконто.Материалы);
> БухИт.ВыполнитьЗапрос(,НужнаяДата,"МЦ04",,,,,3);
> БухИт.ВыбратьСубконто(ВидыСубконто.Подразделения);
> Пока БухИт.ПолучитьСубконто(ВидыСубконто.Подразделения)=1 Цикл
> Таб.ВывестиСтроку("ШапкаПодразделения"); //прямо в таблице в какой нибудь ячейке этой секции можно написать формулу БухИт.СКД("С") - это будет сводный остаток в денежном выражении по всем материалам, которые есть в подразделении, в качестве наименования подразделения обращаемся к ссылку в результате бухитогов БухИт.Субконто(ВидыСубконто.Подразделения) - тоже пишем это в какой нибудь ячейке секции
> БухИт.ВыбратьСубконто(ВидыСубконто.Материалы);
> Пока БухИт.ПолучитьСубконто(ВидыСубконто.Материалы)=1 Цикл
> Таб.ВывестиСтроку("Строка"); //тут все по аналогии... БухИт.Субконто(ВидыСубконто.Материалы) - это элемент, по которому выводятся остатки, БухИт.СКД("К") - количественный остаток, БухИт.СКД("С") - денежный
> КонецЦикла;
> КонецЦикла;
Огромное Вам спасибо! Всё заработало, никаких дублированей) Просто я новичёк и не очень понимал как это всё просто!"
> Предположим, что на вашем счете МЦ04 организована аналитика по двум разрезам Материалы и Подразделения
>
> БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
> БухИт.ИспользоватьСубконто(ВидыСубконто.Подразделения);
> БухИт.ИспользоватьСубконто(ВидыСубконто.Материалы);
> БухИт.ВыполнитьЗапрос(,НужнаяДата,"МЦ04",,,,,3);
> БухИт.ВыбратьСубконто(ВидыСубконто.Подразделения);
> Пока БухИт.ПолучитьСубконто(ВидыСубконто.Подразделения)=1 Цикл
> Таб.ВывестиСтроку("ШапкаПодразделения"); //прямо в таблице в какой нибудь ячейке этой секции можно написать формулу БухИт.СКД("С") - это будет сводный остаток в денежном выражении по всем материалам, которые есть в подразделении, в качестве наименования подразделения обращаемся к ссылку в результате бухитогов БухИт.Субконто(ВидыСубконто.Подразделения) - тоже пишем это в какой нибудь ячейке секции
> БухИт.ВыбратьСубконто(ВидыСубконто.Материалы);
> Пока БухИт.ПолучитьСубконто(ВидыСубконто.Материалы)=1 Цикл
> Таб.ВывестиСтроку("Строка"); //тут все по аналогии... БухИт.Субконто(ВидыСубконто.Материалы) - это элемент, по которому выводятся остатки, БухИт.СКД("К") - количественный остаток, БухИт.СКД("С") - денежный
> КонецЦикла;
> КонецЦикла;
Огромное Вам спасибо! Всё заработало, никаких дублированей) Просто я новичёк и не очень понимал как это всё просто!"
20.07.2009
01:36
#5
"> > порНом=Порном+1;
> Мне вот это понравилось. Супер!
А так было бы лучше?
ЭротНом=ЭротНом+1;
"
> Мне вот это понравилось. Супер!
А так было бы лучше?
ЭротНом=ЭротНом+1;
"
20.07.2009
09:52
#7
"> Что то как то все там в алгоритме в кучу и бухитоги и перебор проводок какой то операции зачем то. Надо так:
> Предположим, что на вашем счете МЦ04 организована аналитика по двум разрезам Материалы и Подразделения
>
> БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
> БухИт.ИспользоватьСубконто(ВидыСубконто.Подразделения);
> БухИт.ИспользоватьСубконто(ВидыСубконто.Материалы);
> БухИт.ВыполнитьЗапрос(,НужнаяДата,"МЦ04",,,,,3);
> БухИт.ВыбратьСубконто(ВидыСубконто.Подразделения);
> Пока БухИт.ПолучитьСубконто(ВидыСубконто.Подразделения)=1 Цикл
> Таб.ВывестиСтроку("ШапкаПодразделения"); //прямо в таблице в какой нибудь ячейке этой секции можно написать формулу БухИт.СКД("С") - это будет сводный остаток в денежном выражении по всем материалам, которые есть в подразделении, в качестве наименования подразделения обращаемся к ссылку в результате бухитогов БухИт.Субконто(ВидыСубконто.Подразделения) - тоже пишем это в какой нибудь ячейке секции
> БухИт.ВыбратьСубконто(ВидыСубконто.Материалы);
> Пока БухИт.ПолучитьСубконто(ВидыСубконто.Материалы)=1 Цикл
> Таб.ВывестиСтроку("Строка"); //тут все по аналогии... БухИт.Субконто(ВидыСубконто.Материалы) - это элемент, по которому выводятся остатки, БухИт.СКД("К") - количественный остаток, БухИт.СКД("С") - денежный
> КонецЦикла;
> КонецЦикла;
а зачем так? ПРОЩЕ:
БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьСубконто(ВидыСубконто.Материалы);
БухИт.ИспользоватьСубконто(ВидыСубконто.Подразделения, Подразделение, 2);
БухИт.ВыполнитьЗапрос(,НужнаяДата,"МЦ04",,,,,3);
//БухИт.ВыбратьСубконто(ВидыСубконто.Подразделения);
//Пока БухИт.ПолучитьСубконто(ВидыСубконто.Подразделения)=1 Цикл
// Таб.ВывестиСтроку("ШапкаПодразделения"); //прямо в таблице в какой нибудь ячейке этой ////секции можно написать формулу БухИт.СКД("С") - это будет сводный остаток в денежном выражении //по всем материалам, которые есть в подразделении, в качестве наименования подразделения обращаемся к ссылку в результате бухитогов БухИт.Субконто(ВидыСубконто.Подразделения) - тоже пишем это в какой нибудь ячейке секции
БухИт.ВыбратьСубконто(ВидыСубконто.Материалы);
Пока БухИт.ПолучитьСубконто(ВидыСубконто.Материалы)=1 Цикл
Таб.ВывестиСтроку("Строка"); //тут все по аналогии... БухИт.Субконто(ВидыСубконто.Материалы) - это элемент, по которому выводятся остатки, БухИт.СКД("К") - количественный остаток, БухИт.СКД("С") - денежный
КонецЦикла;
КонецЦикла;
"
> Предположим, что на вашем счете МЦ04 организована аналитика по двум разрезам Материалы и Подразделения
>
> БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
> БухИт.ИспользоватьСубконто(ВидыСубконто.Подразделения);
> БухИт.ИспользоватьСубконто(ВидыСубконто.Материалы);
> БухИт.ВыполнитьЗапрос(,НужнаяДата,"МЦ04",,,,,3);
> БухИт.ВыбратьСубконто(ВидыСубконто.Подразделения);
> Пока БухИт.ПолучитьСубконто(ВидыСубконто.Подразделения)=1 Цикл
> Таб.ВывестиСтроку("ШапкаПодразделения"); //прямо в таблице в какой нибудь ячейке этой секции можно написать формулу БухИт.СКД("С") - это будет сводный остаток в денежном выражении по всем материалам, которые есть в подразделении, в качестве наименования подразделения обращаемся к ссылку в результате бухитогов БухИт.Субконто(ВидыСубконто.Подразделения) - тоже пишем это в какой нибудь ячейке секции
> БухИт.ВыбратьСубконто(ВидыСубконто.Материалы);
> Пока БухИт.ПолучитьСубконто(ВидыСубконто.Материалы)=1 Цикл
> Таб.ВывестиСтроку("Строка"); //тут все по аналогии... БухИт.Субконто(ВидыСубконто.Материалы) - это элемент, по которому выводятся остатки, БухИт.СКД("К") - количественный остаток, БухИт.СКД("С") - денежный
> КонецЦикла;
> КонецЦикла;
а зачем так? ПРОЩЕ:
БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьСубконто(ВидыСубконто.Материалы);
БухИт.ИспользоватьСубконто(ВидыСубконто.Подразделения, Подразделение, 2);
БухИт.ВыполнитьЗапрос(,НужнаяДата,"МЦ04",,,,,3);
//БухИт.ВыбратьСубконто(ВидыСубконто.Подразделения);
//Пока БухИт.ПолучитьСубконто(ВидыСубконто.Подразделения)=1 Цикл
// Таб.ВывестиСтроку("ШапкаПодразделения"); //прямо в таблице в какой нибудь ячейке этой ////секции можно написать формулу БухИт.СКД("С") - это будет сводный остаток в денежном выражении //по всем материалам, которые есть в подразделении, в качестве наименования подразделения обращаемся к ссылку в результате бухитогов БухИт.Субконто(ВидыСубконто.Подразделения) - тоже пишем это в какой нибудь ячейке секции
БухИт.ВыбратьСубконто(ВидыСубконто.Материалы);
Пока БухИт.ПолучитьСубконто(ВидыСубконто.Материалы)=1 Цикл
Таб.ВывестиСтроку("Строка"); //тут все по аналогии... БухИт.Субконто(ВидыСубконто.Материалы) - это элемент, по которому выводятся остатки, БухИт.СКД("К") - количественный остаток, БухИт.СКД("С") - денежный
КонецЦикла;
КонецЦикла;
"
Читают тему
(гостей: 1)