7.7 92

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем NooKer, 25 мар 2009.

  1. TopicStarter Overlay
    NooKer
    Offline

    NooKer

    Регистрация:
    17 фев 2009
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Вообщем проблема заключается в следущем.

    Имеется несколько однотипныз документов. На протяжении некоторого времени документы заполняли, проводили. Потом выяснилось, что нужно было указывать другой корр.счет.

    Я хотел написать обработку с помощью которой поменять этот корр.счет на нужный и потом перепровести эти документы.

    Код:
        ДокВыписка=СоздатьОбъект("Документ.Выписка");
    ДокВыписка.ВыбратьДокументы (ВыбДата,ВыбДата);
    Пока ДокВыписка.ПолучитьДокумент()>0 Цикл
    *************   
    *************
    *************
    КонецЦикла;  
    
    
    
    В отладчике значение ДокВыписка.КоррСчет вообще пустое.

    Скажите у меня вообще не правильная мысль по этому поводу или я что то не так делаю?
    Может надо изменять корр.счет непосредственно с помощью агрегатного типа "операция"?

    P.S. блин..... модеры извините, забыл тему написать
  2. Vlad
    Offline

    Vlad Модераторы Команда форума Модератор

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    Ты бы не маялся по-напрасну. Возьми диск ИТС. Там есть Универсальная обработка подбора объектов. Разберешься. А попрограммировать на досуге потренируешься.
    А я и не вижу, где у тебя ДокВыписка.КоррСчет.
  3. TopicStarter Overlay
    NooKer
    Offline

    NooKer

    Регистрация:
    17 фев 2009
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Проблема то в том, что в отладчике я смотрю значение "ДокВыписка". КоррСчет у него почему то пустой.... может это из-за того, что у документа "Выписка" несколько полей в табличной части.

    [​IMG]
  4. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    может это из-за того, что у документа "Выписка" несколько полей в табличной части.
    абсолютно верная мысль
    Пока ДокВыписка.ПолучитьДокумент()>0 Цикл
    доквыписка.выбратьстроки
    пока доквыписка.получитьстроку...
  5. TopicStarter Overlay
    NooKer
    Offline

    NooKer

    Регистрация:
    17 фев 2009
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Подскажите пожалуйста можно ли изменить проводки у проведенного документа и как?
    А "Универсальная обработка подбора объектов" для чего предназначенна?
  6. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Если есть желание написать самому обработку, то читай про описание объекта "Операция".
    Делаешь перебор документов, потом выбор движений документа по проводкам, потом меняешь счета/субконто и сохраняешь.
  7. Vlad
    Offline

    Vlad Модераторы Команда форума Модератор

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    Да там несколько функций. Установи - увидишь. И перенумерацию можно делать, и установку реквизитов и т.п.
  8. TopicStarter Overlay
    NooKer
    Offline

    NooKer

    Регистрация:
    17 фев 2009
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Всем спасибо.
    Код:
    Опер=СоздатьОбъект("Операция");
    Опер1=СоздатьОбъект("Операция");
    Опер.ВыбратьОперацииСПроводками(НачДата,КонДата); 
    Пока Опер.ПолучитьОперацию()=1 Цикл
    Если Опер.Документ.Вид()="Выписка" Тогда   
    Опер1.НайтиОперацию(Опер.Документ);
    Опер1.ВыбратьПроводки(); 
    Пока Опер1.ПолучитьПроводку()=1 Цикл 
    Если (Опер1.Кредит.Счет=СчетПоКоду("60.1")) Тогда 
    Опер1.Кредит.Счет=СчетПоКоду("60.2");  
    КонецЕсли; 
    КонецЦикла; 
    Опер1.Записать(); 
    КонецЕсли; 
    КонецЦикла; 
    
    Получилось что то вроде этого.
    Но как сделать что бы изменилось в самом документе так и не понял... :unsure:
  9. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    доквыписка.выбратьстроки
    пока доквыписка.получитьстроку
    доквыписка.коррсчет=Счетпокоду("60.2")

    Но в выписке по 60, 62 счетам лучче ваще ничего не ставить,
    тогда прога сама разнесет куда надо
  10. Vlad
    Offline

    Vlad Модераторы Команда форума Модератор

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    NooKer. Твое желание по-программировать весьма похвально, но стоит заметить, что массовая и без разбору замена 60.1 на 60.2. лично мне не нравится. С огоньком играешь. Ты (или твоЙ бухгалтер) все решили на авансы повесить? Может быть для начала в копии попробовать перепровести все документы, взглянуть до и после этого на оборотку, а потом уже рубить с плеча?
    Кстати, Хряк тебе нечто подобное сказал.
  11. TopicStarter Overlay
    NooKer
    Offline

    NooKer

    Регистрация:
    17 фев 2009
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    60.1 это просто для примера, на самом деле изменения делаю с другими счетами.
    В чем может быть проблема.
    Пытаюсь новому счету присвоить субконто, а оно не присваевается.

    Код:
    Опер1.Кредит.Субконто("икЛицевыеСчета",ЛицСч);
    
    икЛицевыеСчета - так называется справочник в конфигураторе (субсчет не предопределенный)
    ЛицСч - создан с помощью, СоздатьОбъект ("Справочник.икЛицевыеСчета") и соответственно содержит элемент данного типа.
  12. Vlad
    Offline

    Vlad Модераторы Команда форума Модератор

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    Ну не хрена себе примерички!
    Давай сначала. Что за конфа? что за релиз? Что ты конкретно хочешь поиметь?
  13. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    Самое правильное открыть модуль формы выписки и посмотреть, как устанавливается тип субконто в зависимости от счета. И тока потом идет присвоение значений
  14. TopicStarter Overlay
    NooKer
    Offline

    NooKer

    Регистрация:
    17 фев 2009
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    В самой конфигурации это делается вот так.
    Код:
                Для а = 1 по КоррСчет.КоличествоСубконто() Цикл
    Операция.Кредит.Субконто(а, ПолучитьАтрибут("Субконто" +а));
    КонецЦикла;
    
    
    Я знаю какие субконто есть у моего КоррСчета. Значит поидее можно записать вообще

    Код:
    Опер1.Кредит.Субконто(1,ЛицСч);
    
    


    Конфигурация "Инфокрафт 116.495".
    Хочу поменять счет 76.5 в выписках на 76.РК.
    У 76.5 субконто - контрагенты и договоры, у 76.РК - лицевые счета.
    Чтобы получить необходимое субконто нужно использовать справочник "Физические лица", т.к. у справочников "Контрагенты" и "Лицевые счета" нет одинаковых реквизитов
    Код:
    ФизЛиц=СоздатьОбъект("Справочник.икФизическиеЛица"); 
    ЛицСч=СоздатьОбъект("Справочник.икЛицевыеСчета");  
    Опер=СоздатьОбъект("Операция");
    Опер1=СоздатьОбъект("Операция");
    Опер.ВыбратьОперацииСПроводками(НачДата,КонДата); 
    Пока Опер.ПолучитьОперацию()=1 Цикл
    Если Опер.Документ.Вид()="Выписка" Тогда   
    
    
    Опер1.НайтиОперацию(Опер.Документ);
    Опер1.ВыбратьПроводки(); 
    Пока Опер1.ПолучитьПроводку()=1 Цикл 
    Если (Опер1.Кредит.Счет=СчетПоКоду("76.5")) Тогда 
    Субконт=Опер1.Кредит.Контрагенты.ПолнНаименование; 
    
    ФизЛиц.НайтиПоНаименованию(Субконт);
    
    Если ЛицСч.НайтиПоРеквизиту("ОтветственныйКвартиросъемщик",ФизЛиц,0)=1  тогда          
    Опер1.Кредит.Счет=СчетПоКоду("76.РК");  
    Опер1.Кредит.Субконто(1,ЛицСч);
    конецесли;
    
    КонецЕсли; 
    КонецЦикла; 
    Опер1.Записать(); 
    
    КонецЕсли; 
    КонецЦикла; 
    
    
  15. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    Блин, ты пытаешься изменить проводки документа, а не сам документ. Работа впустую, до первого перепроведения документов.
  16. Vlad
    Offline

    Vlad Модераторы Команда форума Модератор

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    Почему? Это же не Комплексная, тут проводки в модуле прописаны.

Поделиться этой страницей