Имя: Пароль:
1C
1C 7.7
v7: Помогите с формулой расчета!
0 kambar93
 
31.05.12
11:11
Не могу сформулировать формулу, документ - закрытие месяца!
вот к примеру:
А2 = Цена продукции;
А3 = Кол-во выпуска;
А4 = СуммаПоЦене продукции (А2 * А3)
А5 = Затраты

Вот такая формула нужна!
А5.47228 / А4.291525 * А5.47228

вот такой код на 1ске
СуммаПоЦене = СуммаПоЦене + (Цен * ВыпускБезПолуф)
Коэф = (Цен * ВыпускБезПолуф) * 100 / СуммаПоЦене / 100;
Номен.сч1=Счетпокоду("221.1")  
               Операция.НоваяПроводка();
               Операция.Дебет.Счет=СчетПоКоду("900.1");      
               операция.дебет.Номенклатура = Номен;
               Операция.Кредит.Счет=СчетПоКоду("900.5");
               Операция.Сумма=бви.ДО(СчетПоКоду("900.5")) * Коэф;
               Операция.Записать();
1 vicof
 
31.05.12
11:17
Зачем тебе в школе 1с?
2 chief accountant
 
31.05.12
11:19
(1) готовится вернуться в Россию после окончания школы и стать одноэсником
3 palpetrovich
 
31.05.12
11:24
а что такое А5.47228 ?  
А5.47228 = А5 + 0.47228?
4 kambar93
 
31.05.12
11:46
47228 / 291525 * 47228
эту формулу нужно в 1ске написать, пожалуйста помогите!
5 palpetrovich
 
31.05.12
11:53
(4) Результат = 47228 / 291525 * 47228;
дарю  ;)
6 kambar93
 
31.05.12
11:55
нее(((
7 kambar93
 
31.05.12
11:55
//******************************************************************************
Перем СуммаЦен;
Перем Коэф;

//******************************************************************************
Процедура ОбработкаПроведения(Значение)    
     ДатаНач = НачМесяца(ДатаДок);
   ДатаКон = КонМесяца(ДатаДок);
   //Док = СоздатьОбъект("Документ.Закрытиемесяца");
   //Док.ВыбратьДокументы(ДатаНач, ДатаКон);
   БвИ = СоздатьОбъект("БухгалтерскиеИтоги");
   БвИ.Периодм(ДатаКон);
   БИ = СоздатьОбъект("БухгалтерскиеИтоги");
   БИ.Периодм(ДатаКон);
   сч = СоздатьОбъект("Счет.Основной");
   
   Если БвИ.ДО(СчетПоКоду("931")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("930");
       Операция.Кредит.Счет=СчетПоКоду("931");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("931"));
       Операция.Записать();
   КонецЕсли;    
             
   Если БвИ.ДО(СчетПоКоду("932")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("930");
       Операция.Кредит.Счет=СчетПоКоду("932");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("932"));
       Операция.Записать();
   КонецЕсли;    

   Если БвИ.ДО(СчетПоКоду("933")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("930");
       Операция.Кредит.Счет=СчетПоКоду("933");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("933"));
       Операция.Записать();
   КонецЕсли;    
             
   Если БвИ.ДО(СчетПоКоду("934")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("930");
       Операция.Кредит.Счет=СчетПоКоду("934");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("934"));
       Операция.Записать();
   КонецЕсли;    

   Если БвИ.ДО(СчетПоКоду("935")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("930");
       Операция.Кредит.Счет=СчетПоКоду("935");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("935"));
       Операция.Записать();
   КонецЕсли;    
             
   //Если БвИ.ДО(СчетПоКоду("936")) > 0 Тогда
   //    Операция.НоваяПроводка();
   //    Операция.Дебет.Счет=СчетПоКоду("900.5");
   //    Операция.Дебет.ЭлементыЗатрат = Константа.ЭЗ_ПрочиеЗатраты;
   //    Операция.Кредит.Счет=СчетПоКоду("936");
   //    Операция.Сумма = БвИ.ДО(СчетПоКоду("936"));
   //    Операция.Записать();
   //КонецЕсли;    
             
   Если БвИ.ДО(СчетПоКоду("937")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("930");
       Операция.Кредит.Счет=СчетПоКоду("937");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("937"));
       Операция.Записать();
   КонецЕсли;    

   Если БвИ.ДО(СчетПоКоду("938")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("930");
       Операция.Кредит.Счет=СчетПоКоду("938");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("938"));
       Операция.Записать();
   КонецЕсли;    
                   
   //Если БвИ.ДО(СчетПоКоду("930")) > 0 Тогда
   //    Операция.НоваяПроводка();
   //    Операция.Дебет.Счет=СчетПоКоду("900.5");
   //    Операция.Дебет.ЭлементыЗатрат = Константа.ЭЗ_ПрочиеЗатраты;
   //    Операция.Кредит.Счет=СчетПоКоду("930");
   //    Операция.Сумма = БвИ.ДО(СчетПоКоду("930"));
   //    Операция.Записать();
   //КонецЕсли;    

   Если БвИ.ДО(СчетПоКоду("634.1")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("821.2");
       Операция.Кредит.Счет=СчетПоКоду("634.1");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("634.1"));
       Операция.Записать();
   КонецЕсли;    
             
   Если БвИ.ДО(СчетПоКоду("634.2")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("821.2");
       Операция.Кредит.Счет=СчетПоКоду("634.2");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("634.2"));
       Операция.Записать();
   КонецЕсли;    
                 
   Если БвИ.ДО(СчетПоКоду("904")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("900.5");  
       Операция.Дебет.ЭлементыЗатрат = Константа.ЭЗ_ПрочиеЗатраты;
       Операция.Кредит.Счет=СчетПоКоду("904");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("904")) - БвИ.КО(СчетПоКоду("904"));
       Операция.Записать();
   КонецЕсли;    

   Если БвИ.ДО(СчетПоКоду("901")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("900.5");  
       Операция.Дебет.ЭлементыЗатрат = Константа.ЭЗ_ПрочиеЗатраты;
       Операция.Кредит.Счет=СчетПоКоду("901");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("901"));    
       Операция.Записать();
   КонецЕсли;    
   
             
   Если БвИ.ДО(СчетПоКоду("902")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("900.5");
       Операция.Дебет.ЭлементыЗатрат = Константа.ЭЗ_ПрочиеЗатраты;
       Операция.Кредит.Счет=СчетПоКоду("902");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("902"));
       Операция.Записать();
   КонецЕсли;
   
   Если БвИ.ДО(СчетПоКоду("903")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("900.4");  
       Операция.Дебет.ЭлементыЗатрат = Константа.ЭЗ_ПрочиеЗатраты;
       Операция.Кредит.Счет=СчетПоКоду("903");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("903"));
       Операция.Записать();
   КонецЕсли;          
       
   ///    
   Номенклатура = СоздатьОбъект("СписокЗначений");  
   Сумма = СоздатьОбъект("СписокЗначений");  
   Выпуск = СоздатьОбъект("СписокЗначений");  
   Полуфабрикаты = СоздатьОбъект("СписокЗначений");  
   Цена = СоздатьОбъект("СписокЗначений");    
                                   
   //////АктСписанияВин = СоздатьОбъект("Документ._03_АктСписанияВодки");
   //////АктСписанияВин.ВыбратьДокументы(НачМесяца(ДатаДок), КонМесяца(ДатаДок));
   //////Пока АктСписанияВин.ПолучитьДокумент() = 1 Цикл
   //////    Если АктСписанияВин.ПометкаУдаления() = 0 Тогда
   //////        Если АктСписанияВин.Проведен() = 1 Тогда
   //////            АктСписанияВин.ВыбратьСтроки();
   //////            Пока АктСписанияВин.ПолучитьСтроку() = 1 Цикл
   //////                Если АктСписанияВин.Атрибут = Перечисление.ВидВыпуска.Завершено Тогда
   //////                    //Выпуск
   //////                    Если АктСписанияВин.Вып = 0 Тогда
   //////                        Сообщить("Нет выпуска продукции: документ - " + АктСписанияВин);
   //////                    КонецЕсли;
   //////                    Номен = АктСписанияВин.Номенклатура;
   //////                    Цен = Номен.Цена.Получить(НачМесяца(ДатаДок));
   //////                    Колич = АктСписанияВин.Вып;
   //////                    Вино = АктСписанияВин.Сумма2;
   //////                    Позиция = Номенклатура.НайтиЗначение(Номен);
   //////                    Если Позиция = 0 Тогда
   //////                        Номенклатура.ДобавитьЗначение(Номен, Номен);
   //////                        Цена.ДобавитьЗначение(Цен, Номен);
   //////                        Сумма.ДобавитьЗначение(0, Номен);
   //////                        Выпуск.ДобавитьЗначение(Колич, Номен);
   //////                        Полуфабрикаты.ДобавитьЗначение(0, Номен);
   //////                    Иначе
   //////                        Стр = "";
   //////                        Значение = Выпуск.ПолучитьЗначение(Позиция, Стр);
   //////                        Значение = Значение + Колич;
   //////                        Выпуск.УстановитьЗначение(Позиция, Значение, Номен);
   //////                    КонецЕсли;
   //////                Иначе        
   //////                    //Полуфабрикаты
   //////                    Если АктСписанияВин.Вып = 0 Тогда
   //////                        Сообщить("Нет выпуска продукции: документ - " + АктСписанияВин);
   //////                    КонецЕсли;
   //////                    Номен = АктСписанияВин.Номенклатура;
   //////                    Цен = Номен.Цена.Получить(НачМесяца(ДатаДок));
   //////                    Колич = АктСписанияВин.Вып;                
   //////                    Вино = АктСписанияВин.Сумма2;
   //////                    Позиция = Номенклатура.НайтиЗначение(Номен);                        
   //////                    Если Позиция = 0 Тогда
   //////                        Номенклатура.ДобавитьЗначение(Номен, Номен);
   //////                        Цена.ДобавитьЗначение(Цен, Номен);
   //////                        Сумма.ДобавитьЗначение(0, Номен);
   //////                        Выпуск.ДобавитьЗначение(0, Номен);
   //////                        Полуфабрикаты.ДобавитьЗначение(Колич, Номен);
   //////                    Иначе
   //////                        Стр = "";
   //////                        Значение = Полуфабрикаты.ПолучитьЗначение(Позиция, Стр);
   //////                        Значение = Значение + Колич;
   //////                        Полуфабрикаты.УстановитьЗначение(Позиция, Значение, Номен);
   //////                    КонецЕсли;  
   //////                КонецЕсли;    
   //////            КонецЦикла;
   //////        КонецЕсли;
   //////    КонецЕсли;                                  
   //////КонецЦикла;
   
   /////нач
   АктСписанияВин = СоздатьОбъект("Документ._03_АктСписанияМатериалов");
   АктСписанияВин.ВыбратьДокументы(НачМесяца(ДатаДок), КонМесяца(ДатаДок));
   Пока АктСписанияВин.ПолучитьДокумент() = 1 Цикл
       Если АктСписанияВин.ПометкаУдаления() = 0 Тогда
           Если АктСписанияВин.Проведен() = 1 Тогда
               
               Номен = АктСписанияВин.Номенклатура;
               Колич = АктСписанияВин.Количество;
               
               ////АктСписанияВин.ВыбратьСтроки();
               ////Пока АктСписанияВин.ПолучитьСтроку() = 1 Цикл

                       //Выпуск
                       Если Колич = 0 Тогда
                           Сообщить("Нет выпуска продукции: документ - " + АктСписанияВин);
                       КонецЕсли;
                       
                       Цен = Номен.Цена.Получить(НачМесяца(ДатаДок));
                       

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

   //4 Расчет по документам "Акт списания материалов"                                        
   //Сообщить("Расчет по документам ""Акт списания материалов""", "!");
   ВсегоМатериалов = 0;
   
   Размер = Номенклатура.РазмерСписка();
   Ном = СоздатьОбъект("Справочник.Номенклатура");
   Ном.ВыбратьЭлементы();
   
   //Расчет суммы (по цене) для разложения затрат в процентом отношении
   СуммаПоЦене = 0;
   СчетчикЦикла = 0;
   Для СчетчикЦикла = 1 По Размер Цикл      
       Стр = "";
       Цен = Цена.ПолучитьЗначение(СчетчикЦикла, Стр);
       ВыпускБезПолуф = Выпуск.ПолучитьЗначение(СчетчикЦикла, Стр);
       ВыпускПолуф = Полуфабрикаты.ПолучитьЗначение(СчетчикЦикла, Стр);
       РасчетныйВыпуск = 0;
       РасчетныйВыпуск = ВыпускБезПолуф + ВыпускПолуф;    
       
       //Если РасчетныйВыпуск > 0 Тогда
           //СуммаПоЦене = СуммаПоЦене + (Цен * РасчетныйВыпуск);    
           
           СуммаПоЦене = СуммаПоЦене + (Цен * ВыпускБезПолуф);    
           СуммаПоЦене = СуммаПоЦене + (Цен * ВыпускПолуф);    
           
       //КонецЕсли;                                              
   КонецЦикла;    
   
   //Сообщить("общ="+СуммаПоЦене);

   СчетчикЦикла = 0;
   Для СчетчикЦикла = 1 По Размер Цикл      
       Стр = "";
       МатериаловПоПродукции = 0;
       Материалы = СоздатьОбъект("СписокЗначений");
       СуммаМатериалы = СоздатьОбъект("СписокЗначений");
       КоличМатериалы = СоздатьОбъект("СписокЗначений");
       
       Номен = Номенклатура.ПолучитьЗначение(СчетчикЦикла, Стр);        
       Цен = Цена.ПолучитьЗначение(СчетчикЦикла, Стр);        
       ВыпускБезПолуф = Выпуск.ПолучитьЗначение(СчетчикЦикла, Стр);
       ВыпускПолуф = Полуфабрикаты.ПолучитьЗначение(СчетчикЦикла, Стр);
       РасчетныйВыпуск = ВыпускБезПолуф + ВыпускПолуф;
       
       //сообщить(Номен.Наименование+" "+Цен+" "+ВыпускБезПолуф+" к="+цен*ВыпускБезПолуф/СуммаПоЦене);
       
       Если ВыпускБезПолуф > 0 Тогда
           Коэф = (Цен * ВыпускБезПолуф) * 100 / СуммаПоЦене / 100;
           Если Номен.сч1=Счетпокоду("221.0") тогда
               Операция.НоваяПроводка();
               Операция.Дебет.Счет=СчетПоКоду("900.0");      
               операция.дебет.Номенклатура = Номен;
               Операция.Кредит.Счет=СчетПоКоду("900.4");
               Операция.Сумма=бви.ДО(СчетПоКоду("900.4")) * Коэф;  
               Операция.Записать();                          
           конецесли;  
             если Номен.сч1=Счетпокоду("221.1") тогда
               Операция.НоваяПроводка();
               Операция.Дебет.Счет=СчетПоКоду("900.1");      
               операция.дебет.Номенклатура = Номен;
               Операция.Кредит.Счет=СчетПоКоду("900.5");
               Операция.Сумма=бви.ДО(СчетПоКоду("900.5")) * Коэф;
               Операция.Записать();                          
           конецесли;
             //если Номен.сч1=Счетпокоду("221.2") тогда
           //    Операция.НоваяПроводка();
           //    Операция.Дебет.Счет=СчетПоКоду("900.2");      
           //    операция.дебет.Номенклатура = Номен;
           //    Операция.Кредит.Счет=СчетПоКоду("900.5");
           //    Операция.Сумма=бви.ДО(СчетПоКоду("900.5")) * Коэф;
           //    Операция.Записать();                          
           //конецесли;
       КонецЕсли;
       
       Если ВыпускПолуф > 0 Тогда
           Коэф = (Цен * ВыпускПолуф) * 100 / СуммаПоЦене / 100;
           Если Номен.сч1=Счетпокоду("221.0") тогда
               Операция.НоваяПроводка();
               Операция.Дебет.Счет=СчетПоКоду("900.0");      
               операция.дебет.Номенклатура = Номен;
               Операция.Кредит.Счет=СчетПоКоду("900.4");
               Операция.Сумма=бви.ДО(СчетПоКоду("900.4")) * Коэф;  
               Операция.Записать();                          
           конецесли;  
             если Номен.сч1=Счетпокоду("221.1") тогда
               Операция.НоваяПроводка();
               Операция.Дебет.Счет=СчетПоКоду("900.1");      
               операция.дебет.Номенклатура = Номен;
               Операция.Кредит.Счет=СчетПоКоду("900.5");
               Операция.Сумма=бви.ДО(СчетПоКоду("900.5")) * Коэф;
               Операция.Записать();                          
           конецесли;
             //если Номен.сч1=Счетпокоду("221.2") тогда
           //    Операция.НоваяПроводка();
           //    Операция.Дебет.Счет=СчетПоКоду("900.2");      
           //    операция.дебет.Номенклатура = Номен;
           //    Операция.Кредит.Счет=СчетПоКоду("900.5");
           //    Операция.Сумма=бви.ДО(СчетПоКоду("900.5")) * Коэф;
           //    Операция.Записать();                          
           //конецесли;
       КонецЕсли;
       
       
           //Коэф = (Цен * РасчетныйВыпуск) * 100 / СуммаПоЦене / 100;
           //Если Номен.сч1=Счетпокоду("221.0") тогда
           //    Операция.НоваяПроводка();
           //    Операция.Дебет.Счет=СчетПоКоду("900.0");      
           //    операция.дебет.Номенклатура = Номен;
           //    Операция.Кредит.Счет=СчетПоКоду("900.5");
           //    Операция.Сумма=бви.ДО(СчетПоКоду("900.5")) * Коэф;  
           //    Операция.Записать();                          
           //конецесли;  
             //если Номен.сч1=Счетпокоду("221.1") тогда
           //    Операция.НоваяПроводка();
           //    Операция.Дебет.Счет=СчетПоКоду("900.1");      
           //    операция.дебет.Номенклатура = Номен;
           //    Операция.Кредит.Счет=СчетПоКоду("900.5");
           //    Операция.Сумма=бви.ДО(СчетПоКоду("900.5")) * Коэф;
           //    Операция.Записать();                          
           //конецесли;
             //если Номен.сч1=Счетпокоду("221.2") тогда
           //    Операция.НоваяПроводка();
           //    Операция.Дебет.Счет=СчетПоКоду("900.2");      
           //    операция.дебет.Номенклатура = Номен;
           //    Операция.Кредит.Счет=СчетПоКоду("900.5");
           //    Операция.Сумма=бви.ДО(СчетПоКоду("900.5")) * Коэф;
           //    Операция.Записать();                          
           //конецесли;
   КонецЦикла;
   
   
   
   ////
   //Номен = СоздатьОбъект("Справочник.Номенклатура");    
     //Номен.ВыбратьЭлементы();
     //Пока Номен.ПолучитьЭлемент() = 1 Цикл
     //    Номен.сум = 0;
     //    Номен.Записать();
     //КонецЦикла;
     //
     //СуммаЦен = 0;
   //Док = СоздатьОбъект("Документ._03_АктСписанияВин");
   //Док.ВыбратьДокументы(НачМесяца(ДатаДок), КонМесяца(ДатаДок));
   //Пока Док.ПолучитьДокумент() = 1 Цикл
   //    Если Док.ПометкаУдаления() = 0 Тогда
   //        Если Док.Проведен() = 1 Тогда
   //              Док.ВыбратьСтроки();
   //              Пока Док.ПолучитьСтроку()=1 цикл
   //                Если Номен.НайтиЭлемент(Док.Номенклатура) = 1 Тогда
     //                    СуммаЦен = СуммаЦен + Док.Номенклатура.Цена.Получить(ДатаДок) * Док.вып;
     //                    Номен.сум = Номен.сум + Док.Номенклатура.Цена.Получить(ДатаДок) * Док.вып;
   //                      Номен.Записать();
     //                КонецЕсли    
   //            КонецЦикла;
     //        КонецЕсли;
     //    КонецЕсли;
   //КонецЦикла;
     //
   //ПеремещениеВин = СоздатьОбъект("Документ._03_ПеремещениеВин");            
   //ПеремещениеВин.ВыбратьДокументы(НачМесяца(ДатаДок), КонМесяца(ДатаДок));
   //Пока ПеремещениеВин.ПолучитьДокумент() = 1 Цикл
   //    Если ПеремещениеВин.ПометкаУдаления() = 0 Тогда
   //        Если ПеремещениеВин.Проведен() = 1 Тогда    
   //            ПеремещениеВин.ВыбратьСтроки();
   //            Пока ПеремещениеВин.ПолучитьСтроку() = 1 Цикл
   //                Если Номен.НайтиЭлемент(ПеремещениеВин.Материал) = 1 Тогда
     //                    СуммаЦен = СуммаЦен + ПеремещениеВин.Материал.Цена.Получить(ДатаДок) * ПеремещениеВин.вып;
     //                    Номен.сум = Номен.сум + ПеремещениеВин.Материал.Цена.Получить(ДатаДок) * ПеремещениеВин.вып;
   //                      Номен.Записать();
     //                КонецЕсли    
   //            КонецЦикла;
   //        КонецЕсли;
   //    КонецЕсли;
   //КонецЦикла;
   //
   //Если СуммаЦен > 0 Тогда
     //    Номен.ВыбратьЭлементы();
     //    Пока Номен.ПолучитьЭлемент() = 1 Цикл  
     //        Если Номен.сум > 0 Тогда
     //            Коэф = Номен.сум * 100 / СуммаЦен / 100;
     //            Если Коэф = 100 Тогда
     //                Коэф = 1;
     //            КонецЕсли;                                              
     //            
     //            Если Номен.текущийЭлемент().сч1=Счетпокоду("221.0") тогда
   //                Операция.НоваяПроводка();
   //                Операция.Дебет.Счет=СчетПоКоду("900.0");      
   //                операция.дебет.Номенклатура = Номен.текущийЭлемент();
   //                Операция.Кредит.Счет=СчетПоКоду("900.5");
   //                Операция.Сумма=бви.ДО(СчетПоКоду("900.5")) * Коэф;  
   //                Проба = Проба + (бви.ДО(СчетПоКоду("900.5")) * Коэф);
   //                Операция.Записать();                          
   //            конецесли;  
   //            
   //              если Номен.текущийЭлемент().сч1=Счетпокоду("221.1") тогда
   //                Операция.НоваяПроводка();
   //                Операция.Дебет.Счет=СчетПоКоду("900.1");      
   //                операция.дебет.Номенклатура = Номен.текущийЭлемент();
   //                Операция.Кредит.Счет=СчетПоКоду("900.5");
   //                Операция.Сумма=бви.ДО(СчетПоКоду("900.5")) * Коэф;
   //                Проба = Проба + (бви.ДО(СчетПоКоду("900.5")) * Коэф);
   //                Операция.Записать();                          
   //            конецесли;
   //            
   //              если Номен.текущийЭлемент().сч1=Счетпокоду("221.2") тогда
   //                Операция.НоваяПроводка();
   //                Операция.Дебет.Счет=СчетПоКоду("900.2");      
   //                операция.дебет.Номенклатура = Номен.текущийЭлемент();
   //                Операция.Кредит.Счет=СчетПоКоду("900.5");
   //                Операция.Сумма=бви.ДО(СчетПоКоду("900.5")) * Коэф;
   //                Проба = Проба + (бви.ДО(СчетПоКоду("900.5")) * Коэф);
   //                Операция.Записать();                          
   //            конецесли;
   //        КонецЕсли;
   //    КонецЦикла;  
   //КонецЕсли;      
   
   Если БвИ.ДО(СчетПоКоду("802")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("571");
       Операция.Кредит.Счет=СчетПоКоду("802");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("802"));
       Операция.Записать();
   КонецЕсли;    
             
   Если БвИ.ДО(СчетПоКоду("803")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("571");
       Операция.Кредит.Счет=СчетПоКоду("803");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("803"));
       Операция.Записать();
   КонецЕсли;    
             
   Если БвИ.ДО(СчетПоКоду("804")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("571");
       Операция.Кредит.Счет=СчетПоКоду("804");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("804"));
       Операция.Записать();
   КонецЕсли;    
                   
   Если БвИ.ДО(СчетПоКоду("805")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("571");
       Операция.Кредит.Счет=СчетПоКоду("805");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("805"));
       Операция.Записать();
   КонецЕсли;    
             
   Если БвИ.ДО(СчетПоКоду("806")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("571");
       Операция.Кредит.Счет=СчетПоКоду("806");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("806"));
       Операция.Записать();
   КонецЕсли;    
             
   Если БвИ.ДО(СчетПоКоду("807")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("571");
       Операция.Кредит.Счет=СчетПоКоду("807");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("807"));
       Операция.Записать();
   КонецЕсли;    
             
   Если БвИ.ДО(СчетПоКоду("808")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("571");
       Операция.Кредит.Счет=СчетПоКоду("808");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("808"));
       Операция.Записать();
   КонецЕсли;    
   
   Если БвИ.ДО(СчетПоКоду("811.0")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("571");
       Операция.Кредит.Счет=СчетПоКоду("811.0");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("811.0"));
       Операция.Записать();
   КонецЕсли;    

   Если БвИ.ДО(СчетПоКоду("811.1")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("571");
       Операция.Кредит.Счет=СчетПоКоду("811.1");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("811.1"));
       Операция.Записать();  
   КонецЕсли;    
             
   Если БвИ.ДО(СчетПоКоду("811.2")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("571");
       Операция.Кредит.Счет=СчетПоКоду("811.2");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("811.2"));
       Операция.Записать();                  
   КонецЕсли;    
   
   Если БвИ.ДО(СчетПоКоду("811.3")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("571");
       Операция.Кредит.Счет=СчетПоКоду("811.3");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("811.3"));
       Операция.Записать();                  
   КонецЕсли;    
   
   Если БвИ.ДО(СчетПоКоду("811.4")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("571");
       Операция.Кредит.Счет=СчетПоКоду("811.4");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("811.4"));
       Операция.Записать();                  
   КонецЕсли;                                    
   
   Если БвИ.ДО(СчетПоКоду("861")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("571");
       Операция.Кредит.Счет=СчетПоКоду("861");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("861"));
       Операция.Записать();                  
   КонецЕсли;    

   Если БвИ.ДО(СчетПоКоду("862")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("571");
       Операция.Кредит.Счет=СчетПоКоду("862");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("862"));
       Операция.Записать();                  
   КонецЕсли;    
             
   Если БвИ.ДО(СчетПоКоду("634.4")) > 0 Тогда
       Операция.НоваяПроводка();
       Операция.Дебет.Счет=СчетПоКоду("821.2");
       Операция.Кредит.Счет=СчетПоКоду("634.4");
       Операция.Сумма = БвИ.ДО(СчетПоКоду("634.4"));
8 palpetrovich
 
31.05.12
11:55
+(6)  че?
9 palpetrovich
 
31.05.12
11:58
(7) молодец, пиши исче :)
10 kambar93
 
31.05.12
12:00
не правильно все распределяет
Должно было быть 7651,08 от этой формулы 47228 / 291525 * 47228
выходит 39708,99
11 chief accountant
 
31.05.12
12:00
(7) что это?
12 kambar93
 
31.05.12
12:01
Модуль документа
13 antoneus
 
31.05.12
12:01
развот?
14 Irek-kazan
 
31.05.12
12:03
(7) много букаff не осилил
15 chief accountant
 
31.05.12
12:04
(10) у меня выходит 47228 / 291525 * 47228 = 7651.0899030957893834148
16 kambar93
 
31.05.12
12:07
вот

СуммаПоЦене = 0;
   СчетчикЦикла = 0;
   Для СчетчикЦикла = 1 По Размер Цикл      
       Стр = "";
       Цен = Цена.ПолучитьЗначение(СчетчикЦикла, Стр);
       ВыпускБезПолуф = Выпуск.ПолучитьЗначение(СчетчикЦикла, Стр);
       ВыпускПолуф = Полуфабрикаты.ПолучитьЗначение(СчетчикЦикла, Стр);
       РасчетныйВыпуск = 0;
       РасчетныйВыпуск = ВыпускБезПолуф + ВыпускПолуф;    
       
       //Если РасчетныйВыпуск > 0 Тогда
           //СуммаПоЦене = СуммаПоЦене + (Цен * РасчетныйВыпуск);    
           
           СуммаПоЦене = СуммаПоЦене + (Цен * ВыпускБезПолуф);    
           СуммаПоЦене = СуммаПоЦене + (Цен * ВыпускПолуф);    
           
       //КонецЕсли;                                              
   КонецЦикла;    
   
   //Сообщить("общ="+СуммаПоЦене);

   СчетчикЦикла = 0;
   Для СчетчикЦикла = 1 По Размер Цикл      
       Стр = "";
       МатериаловПоПродукции = 0;
       Материалы = СоздатьОбъект("СписокЗначений");
       СуммаМатериалы = СоздатьОбъект("СписокЗначений");
       КоличМатериалы = СоздатьОбъект("СписокЗначений");
       
       Номен = Номенклатура.ПолучитьЗначение(СчетчикЦикла, Стр);        
       Цен = Цена.ПолучитьЗначение(СчетчикЦикла, Стр);        
       ВыпускБезПолуф = Выпуск.ПолучитьЗначение(СчетчикЦикла, Стр);
       ВыпускПолуф = Полуфабрикаты.ПолучитьЗначение(СчетчикЦикла, Стр);
       РасчетныйВыпуск = ВыпускБезПолуф + ВыпускПолуф;
       
       //сообщить(Номен.Наименование+" "+Цен+" "+ВыпускБезПолуф+" к="+цен*ВыпускБезПолуф/СуммаПоЦене);
       
       Если ВыпускБезПолуф > 0 Тогда
           Коэф = (Цен * ВыпускБезПолуф) * 100 / СуммаПоЦене / 100;
           Если Номен.сч1=Счетпокоду("221.0") тогда
               Операция.НоваяПроводка();
               Операция.Дебет.Счет=СчетПоКоду("900.0");      
               операция.дебет.Номенклатура = Номен;
               Операция.Кредит.Счет=СчетПоКоду("900.4");
               Операция.Сумма=бви.ДО(СчетПоКоду("900.4")) * Коэф;  
               Операция.Записать();                          
           конецесли;  
             если Номен.сч1=Счетпокоду("221.1") тогда
               Операция.НоваяПроводка();
               Операция.Дебет.Счет=СчетПоКоду("900.1");      
               операция.дебет.Номенклатура = Номен;
               Операция.Кредит.Счет=СчетПоКоду("900.5");
               Операция.Сумма=бви.ДО(СчетПоКоду("900.5")) * Коэф;
               Операция.Записать();                          
           конецесли;
             //если Номен.сч1=Счетпокоду("221.2") тогда
           //    Операция.НоваяПроводка();
           //    Операция.Дебет.Счет=СчетПоКоду("900.2");      
           //    операция.дебет.Номенклатура = Номен;
           //    Операция.Кредит.Счет=СчетПоКоду("900.5");
           //    Операция.Сумма=бви.ДО(СчетПоКоду("900.5")) * Коэф;
           //    Операция.Записать();                          
           //конецесли;
       КонецЕсли;
       
       Если ВыпускПолуф > 0 Тогда
           Коэф = (Цен * ВыпускПолуф) * 100 / СуммаПоЦене / 100;
           Если Номен.сч1=Счетпокоду("221.0") тогда
               Операция.НоваяПроводка();
               Операция.Дебет.Счет=СчетПоКоду("900.0");      
               операция.дебет.Номенклатура = Номен;
               Операция.Кредит.Счет=СчетПоКоду("900.4");
               Операция.Сумма=бви.ДО(СчетПоКоду("900.4")) * Коэф;  
               Операция.Записать();                          
           конецесли;  
             если Номен.сч1=Счетпокоду("221.1") тогда
               Операция.НоваяПроводка();
               Операция.Дебет.Счет=СчетПоКоду("900.1");      
               операция.дебет.Номенклатура = Номен;
               Операция.Кредит.Счет=СчетПоКоду("900.5");
               Операция.Сумма=бви.ДО(СчетПоКоду("900.5")) * Коэф;
               Операция.Записать();                          
           конецесли;
             //если Номен.сч1=Счетпокоду("221.2") тогда
           //    Операция.НоваяПроводка();
           //    Операция.Дебет.Счет=СчетПоКоду("900.2");      
           //    операция.дебет.Номенклатура = Номен;
           //    Операция.Кредит.Счет=СчетПоКоду("900.5");
           //    Операция.Сумма=бви.ДО(СчетПоКоду("900.5")) * Коэф;
           //    Операция.Записать();                          
           //конецесли;
       КонецЕсли;
17 Партизан
 
31.05.12
15:02
(4)

Функция РасчетФормулы()
  возврат 47228/291525*47228;
КонецФункции;
18 1Сергей
 
31.05.12
15:16
(17)
Функция РасчетФормулы()
  возврат 7651.08990282;
КонецФункции;
19 chief accountant
 
31.05.12
15:45
(18) Хм, чем считал?
20 1Сергей
 
31.05.12
15:47
(19) калькулятором
21 chief accountant
 
31.05.12
15:48
(20) калькулятор врет, ибо (15)
22 1Сергей
 
31.05.12
15:49
(21) да, вижу уже. но уже пох :)
23 Ненавижу 1С
 
гуру
31.05.12
15:50
ржачно

Коэф = (Цен * ВыпускБезПолуф) * 100 / СуммаПоЦене / 100;