Имя: Пароль:
1C
1С v8
Загрузка остатков из другой базы
0 Natulea27
 
14.02.12
10:56
Помогите пожалуйста. Есть две базы локальная и вторая к которой подсаединились. Как перекачасть остатки по определеному чсету из подключоной базы.
написала код
Процедура ЗаполнитьСчета(v7,База,ТекБаза,счет,Реж)
   Если КоличествоСтрок()>0 Тогда
       Если Вопрос("Перед заполнением очистить таблицу ?",4,60)=6 Тогда
           Очистить();
       КонецЕсли;
   КонецЕсли;      
   
           Если v7 = "" Тогда
               v7=СоздатьОбъект("V77.Application");
               strApp = "/M /D"""+База+"""";
               Попытка
                   Результат = v7.initialize(v7.RMTrade,strApp,"NO_SPLASH_SHOW");  //
               Исключение
                   v7=""; Каталог1=""; Каталог2="";
                   Сообщить("Не прошла инициализация Базы! Ошибка - "+ОписаниеОшибки(),"!");
                   Возврат;
               КонецПопытки;
               Если Результат=0 Тогда
                   v7=""; Каталог1=""; Каталог2="";
                   Сообщить("Не прошла инициализация Базы!","!");
                   Возврат;
               КонецЕсли;
           КонецЕсли;
///////////////////////////   сдесь не знаю как
           НовыйПланСчетов = v7.EvalExpr("ОсновнойПланСчетов().Идентификатор()");
           //НовыйПланСчетов.ВыбратьСчета();
           
           //Для к=1 По ЧислоСправочников Цикл
           //    Назв = v7.EvalExpr("Метаданные.Справочник("+к+").Идентификатор");

   Пока Счет.ПолучитьСчет()=1 Цикл
       Если (Число(Лев(Счет.Код,3))=Счет1)  Тогда  
       //Если Счет.Забалансовый=0 Тогда
           Если Счет.ЭтоГруппа()=0 Тогда  
               
               Кол=Счет.КоличествоСубконто();
               Ит=СоздатьОбъект("БухгалтерскиеИтоги");
               Для Я=1 По Кол Цикл
                   Ит.ИспользоватьСубконто(Счет.ВидСубконто(Я),,,0);
               КонецЦикла;
               Ит.ВыполнитьЗапрос(,ДатаДок,Счет);               //Дата("1990","01","01")
               //Если Счет.ТолькоОбороты()=0 Тогда
               
               Если Кол>0 Тогда
                   Ит.ВыбратьСубконто(1);
                   Пока Ит.ПолучитьСубконто(1)=1 Цикл  
                       Если Кол>1 Тогда
                           Ит.ВыбратьСубконто(2);
                           Пока Ит.ПолучитьСубконто(2)=1 Цикл  
                               Если Кол>2 Тогда
                                   Ит.ВыбратьСубконто(3);
                                   Пока Ит.ПолучитьСубконто(3)=1 Цикл    
                                       Если Счет.Валютный=1 Тогда
                                           Ит.ВыбратьВалюты();
                                           Пока Ит.ПолучитьВалюту()=1 Цикл
                                               Пров(3,Счет,Ит);
                                           КонецЦикла;  
                                       Иначе
                                           Пров(3,Счет,Ит);
                                       КонецЕсли;
                                   КонецЦикла;
                               Иначе
                                   Если Счет.Валютный=1 Тогда
                                       Ит.ВыбратьВалюты();
                                       Пока Ит.ПолучитьВалюту()=1 Цикл
                                           Пров(2,Счет,Ит);
                                       КонецЦикла;  
                                   Иначе
                                       Пров(2,Счет,Ит);
                                   КонецЕсли;
                               КонецЕсли;
                           КонецЦикла;
                       Иначе    
                           Если Счет.Валютный=1 Тогда
                               Ит.ВыбратьВалюты();
                               Пока Ит.ПолучитьВалюту()=1 Цикл
                                   Пров(1,Счет,Ит);
                               КонецЦикла;  
                           Иначе
                               Пров(1,Счет,Ит);
                           КонецЕсли;
                       КонецЕсли;
                       КонецЦикла;
                   Иначе
                       Если Счет.Валютный=1 Тогда
                           Ит.ВыбратьВалюты();
                           Пока Ит.ПолучитьВалюту()=1 Цикл
                               Пров(0,Счет,Ит);
                           КонецЦикла;  
                       Иначе
                           Пров(0,Счет,Ит);
                       КонецЕсли;
                   КонецЕсли;
               КонецЕсли;
               //Иначе
               //    Пров(0,Счет,Ит);
           //КонецЕсли;    
       КонецЕсли;
       КонецЦикла;  
КонецПроцедуры
помогите пожалуйста
1 DrShad
 
14.02.12
11:00
мыло дай
2 Natulea27
 
14.02.12
11:01
Ну зачем сразу мыло?
3 Natulea27
 
14.02.12
11:02
А мыло [email protected]
4 DrShad
 
14.02.12
11:05
сорри почта не работает
5 DrShad
 
14.02.12
11:05
вечером скину обработину
6 Natulea27
 
14.02.12
11:07
А сейчас никак, позарез нужно...Погибаю....Можеть ссылочку какую-то или кусочек кода
7 DrShad
 
14.02.12
11:12
Процедура ПолучитьОстаткиПоСчетуНажатие(Элемент)
   КодСчета = ЭлементыФормы.ДеревоСчетов.ТекущиеДанные.Счет;
   
   ДЗ = Новый ДеревоЗначений;
   ДЗ.Колонки.Добавить("Субконто1",,, 10);
   ДЗ.Колонки.Добавить("Субконто1Представление",,, 10);
   ДЗ.Колонки.Добавить("Субконто2",,, 10);
   ДЗ.Колонки.Добавить("Субконто2Представление",,, 10);
   ДЗ.Колонки.Добавить("Субконто3",,, 10);
   ДЗ.Колонки.Добавить("Субконто3Представление",,, 10);
   ДЗ.Колонки.Добавить("Количество",,, 7);
   ДЗ.Колонки.Добавить("Сумма",,, 7);
   
   Счет77 = глБаза.СчетПоКоду(КодСчета, глБаза.ОсновнойПланСчетов());
   Ит = глБаза.CreateObject("БухгалтерскиеИтоги");
   Если Счет77.КоличествоСубконто() > 0 Тогда
       Ит.ИспользоватьСубконто(Счет77.ВидСубконто(1), "", 1);
   КонецЕсли;
   Если Счет77.КоличествоСубконто() > 1 Тогда
       Ит.ИспользоватьСубконто(Счет77.ВидСубконто(2), "", 1);
   КонецЕсли;
   Если Счет77.КоличествоСубконто() > 2 Тогда
       Ит.ИспользоватьСубконто(Счет77.ВидСубконто(3), "", 1);
   КонецЕсли;
   Ит.ВыполнитьЗапрос(НачПериода, КонПериода, Счет77, "", "", 1, "Месяц","С");
   
   Если Счет77.КоличествоСубконто() > 0 Тогда
       ВывестиСубконтоВДерево(1, Ит, ДЗ.Строки, Счет77);
   КонецЕсли;
   
   ТЧ = ЭлементыФормы.ДеревоОстатков;
   ТЧ.Значение = ДЗ.Скопировать();
   ТЧ.СоздатьКолонки();
   
   ЗаполнитьДеревоОбъектов(Счет77);
КонецПроцедуры

Функция ВывестиСубконтоВДерево(НомерСубконто, Итоги, СтрокиДерева, Счет)
   Итоги.ВыбратьСубконто(НомерСубконто);
   Пока Итоги.ПолучитьСубконто(НомерСубконто) = 1 Цикл
       Если Итоги.СКД("С") + Итоги.СКК("С") = 0 Тогда
           Продолжить;
       КонецЕсли;
       НСтр = СтрокиДерева.Добавить();
       НСтр["Субконто" + НомерСубконто] = Итоги.Субконто(НомерСубконто);
       НСтр["Субконто" + НомерСубконто + "Представление"] = Итоги.Субконто(НомерСубконто).Наименование;
       Если Счет.Активный = 1 Тогда
           НСтр.Сумма = Итоги.СКД("С");
           Если Счет.Количественный = 1 Тогда
               НСтр.Количество = Итоги.СКД("К");
           КонецЕсли;
           // по номенклатуре нет количественного учета, количетво возьмем по регистру партий
           Если Счет.ВидСубконто(НомерСубконто).ТипСубконто() = "Справочник.Материалы" Тогда
               //НСтр.Количество = РегПартии.СводныйОстаток(Неопределено, Итоги.Субконто(НомерСубконто),Неопределено,Неопределено,Неопределено,Неопределено,Неопределено,Неопределено, "Количество");
           КонецЕсли;
       ИначеЕсли Счет.Активный = 2 Тогда
           НСтр.Сумма = Итоги.СКК("С");
           Если Счет.Количественный = 1 Тогда
               НСтр.Количество = Итоги.СКК("К");
           КонецЕсли;
       ИначеЕсли Счет.Активный = 2 Тогда
           НСтр.Сумма = Итоги.СКД("С") + Итоги.СКК("С");
           Если Счет.Количественный = 1 Тогда
               НСтр.Количество = Итоги.СКД("К") + Итоги.СКК("К");
           КонецЕсли;
       КонецЕсли;
       Если Счет.КоличествоСубконто() > НомерСубконто Тогда
           ВывестиСубконтоВДерево(НомерСубконто + 1, Итоги, ?(НСтр.Уровень() = 0, НСтр.Строки, НСтр.Строки), Счет);
       КонецЕсли;
   КонецЦикла;
КонецФункции
8 Natulea27
 
14.02.12
11:16
Пасибочки большое
9 DrShad
 
14.02.12
11:45
я когда-то писал обработку по переносу данных из ПУБ в ИТРП и делал это с визуализацией, а по сему результат выборки остатков по счету выводил в дерево и по дереву уже либо заполнял документ либо бух операции. Дерево обходить проще, если набор субконто не фиксированный
10 Vaxaaa
 
14.02.12
12:18
загрузка http://is.gd/cdh6VO
11 Jaffar
 
14.02.12
12:26
(10) задрал ты со своим спамом.
в бане давно был?
12 Jaffar
 
14.02.12
12:29
(7) не понял, какой смысл в конструкции ?(НСтр.Уровень() = 0, НСтр.Строки, НСтр.Строки) , если оба выражения одинаковы?
13 DrShad
 
14.02.12
13:12
(12) атавизм видимо
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший