helpf.pro
Регистрация

Была такая обработина по 7ке по бух итогам

hanio
14.12.2010 14:19Прочитано: 5333
Давненько была написана такая обработка в виде внешнего отчета по созданию текстов бух итогов, то есть там указываешь счета, субконто и прочее она тебе выкатывает текст БИ который надо вставлять в модуль. Такая была да только давно уже была убита в связи с неиспользованием 7ки а тут вот понадобилась (нужно получить оборот с 10ки на 20ку). Может есть у кого такая или напомнит как БИ писать для получения оборота между счетами
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
14.12.2010 14:39Ответ № 1
(0) hanio, обработки нет *11, а так:
Для получения большего количества итогов (обороты и остатки по разным видам группировок) используется режим запроса.

Перед выполнением запроса устанавливаются различные фильтры:
* ВключатьСубсчета() – устанавливать режим отбора по субсчетам.
* ИспользоватьСубконто(<ВидСубконто>,<Значение>,<ТипФильтра>,<ПоГруппам>) – устанавливать режим отбора итогов в разрезе субконто. Параметр <ВидСубконто> задается выражением типа “ВидСубконто” или строкой, содержащей имя идентификатора вида субконто. Параметр <Значение> задает конкретное значение субконто. Если <ТипФильтра>=1, тогда итоги будут разворачиваться по этому виду субконто. Если <ТипФильтра>=2, тогда итоги будут отбираться по значению субконто. Если <ТипФильтра>=3, тогда это субконто вообще не будет учитываться. Функцию ИспользоватьСубконто() можно выполнять несколько раз для задания в запросе нескольких видов субконто. Обращение к субконто производится по порядковому номеру (порядок определяется последовательностью команд «ИспользоватьСубконто()»).
* ИспользоватьКорСубконто(<ВидСубконто>,<Значение>,<ТипФильтра>,<ПоГруппам>) – устанавливать режим отбора итогов по корреспондирующим счетам в разрезе субконто.

Затем выполняется сам запрос функцией ВыполнитьЗапрос( <ДатаНач>,<ДатаКон>,<ФильтрПоСчетам>,<ФильтрПоКорСчетам>, <Валюта>,<ТипИтогов>,<Периодичность>,<ТипСуммы>), которая возвращает 1, если запрос выполнился успешно.

Параметр <ТипИтогов> принимает следующие значения: 1 – остатки и обороты по счетам, 2 – обороты между счетами, 3 – и то и другое.

Параметр <Периодичность> может принимать следующие значения:
* 1 («Период») – промежуточные итоги не рассчитываются;
* 2 («Операция») – промежуточные итоги рассчитываются по операциям;
* 3 («Проводка») – по проводкам;
* 4 («День») – по дням;
* 5 («Неделя») – по неделям;
* 6 («Декада») – по декадам;
* 7 («Месяц») – по месяцам;
* 8 («Квартал») – по кварталам;
* 9 («Год») – по годам;

Для перебора группировок используются следующие функции:
* ВыбратьСчета(), ПолучитьСчет();
* ВыбратьКорСчета(), ПолучитьКорСчет();
* ВыбратьВалюты(), ПолучитьВалюту();
* ВыбратьПериоды(), ПолучитьПериод();
* ВыбратьСубконто(), ПолучитьСубконто();
* ВыбратьКорСубконто(), ПолучитьКорСубконто();

Функции получения остатков и оборотов такие же, как и при работе с основными итогами.

Код 1C v 7.x
 БИ=СоздатьОбъект(«БухгалтерскиеИтоги»);
БИ.ИспользоватьСубконто(«Номенклатура»);
БИ.ВыполнитьЗапрос(Дата1,Дата2,«41.1»);
БИ.ВыбратьСчета();
Пока БИ.ПолучитьСчет()=1 Цикл
// выводим итоги по счету
БИ.ВыбратьСубконто(1);
Пока БИ.ПолучитьСубконто()=1 Цикл
// выводим итоги по субконто
Сообщить(«Остаток на начало по счету » + БИ.Счет.Код + « товара »
+ БИ.Субконто(1)+Строка(БИ.СНД(3)) + «ед.»);
КонецЦикла;
КонецЦикла;
hanio
14.12.2010 15:00Ответ № 2
а если надо оборот 10 и 20 то
БИ.ВыполнитьЗапрос(Дата1,Дата2,10.1,20);

так?
E_Migachev
14.12.2010 15:20Ответ № 3
Код 1C v 7.x
 БИ.ВыполнитьЗапрос(Дата1,Дата2,"10.1,20"); 
E_Migachev
14.12.2010 15:23Ответ № 4
вот пример:
Код 1C v 7.x
 ТабЗн = СоздатьОбъект("ТаблицаЗначений");
ТабЗн.НоваяКолонка("Подразделение");
ТабЗн.НоваяКолонка("СтатьиЗатрат");
ТабЗн.НоваяКолонка("СуммаДО","Число",19,2);
ТабЗн.НоваяКолонка("СуммаКО","Число",19,2);

БИ = СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.Подразделения, , 1);
БИ.ИспользоватьСубконто(ВидыСубконто.СтатьиЗатратНаПроизводство, , 1);

БИ.ВыполнитьЗапрос(НачДата, КонДата, "20,26", , , 1, , "СК");

БИ.ВыбратьСубконто(1);
Пока БИ.ПолучитьСубконто(1)=1 Цикл
БИ.ВыбратьСубконто(2);
Пока БИ.ПолучитьСубконто(2)=1 Цикл
ТабЗн.НоваяСтрока();
ТабЗн.Подразделение = БИ.Субконто(1);
ТабЗн.СтатьиЗатрат = БИ.Субконто(2);
ТабЗн.СуммаДО = БИ.ДО("С");
ТабЗн.СуммаКО = БИ.КО("С");
КонецЦикла;
КонецЦикла;
hanio
14.12.2010 15:26Ответ № 5
бить будешь ))) это я все понимаю а сейчас если усложнить задачу?

то есть на 10 субконто Материалы, а в документе ГотоваяПродукция (тот что передача готовой продукции) в таблице Номенклатура.... Есть какие нибудь предложения по этому поводу???
E_Migachev
14.12.2010 15:48Ответ № 6
(5) ) не понял что хочешь )
hanio
14.12.2010 15:54Ответ № 7
вообще задача - документ ГотоваяПродукция в 7ке должна списывать с 20ки то что переместили на нее при помощи документов Перемещение товаров в котором перемещали материалы с 10 на 20ку. Тут несколько моментов интересны - с 10 уходит на 20 тут есть количество, а вот когда с 20 на 43 тут незачто цепанутся по количеству. А количество нужно чтобы списывать по средней с 20ки
E_Migachev
14.12.2010 16:06Ответ № 8
(7) а чем не устраивает стандартный механизм?
Ну так получай обороты по 10-20 за период, далее смотри что стоит в док Готовая продукция и по среднему списывай, правда я не совсем понимаю как ты хочешь считать это среднее )
hanio
14.12.2010 16:24Ответ № 9
так наоборот тут мне не понятно как выбирая номенклатуру в доке ГотоваяПродукция понять что это за материал... Тут перемещается на 20ку некоторое количество а в производство уходит немного другое (за вычетом утруски усушки). Так вот получив оборот между 10 и 20 надо как то понять что именно эту сумму поделить на количество и таким образом получить среднее.
E_Migachev
14.12.2010 16:40Ответ № 10
(9) ну так ты получил оборот 10-20?
hanio
23.01.2011 18:47Ответ № 11
а ведь нашел обработку кому надо ловите
hanio
23.01.2011 18:47Ответ № 12
Вопрос закрыт!
E_Migachev
23.01.2011 22:27Ответ № 13
(11) hanio, а где она?
Подсказка: Вы можете приложить к ответу файл или изображение щелкнув по значку или в редакторе.
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.