Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Счет МЦ
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
gryphus
Уважаемые, помогите разобраться с забалансовым счетом МЦ.
Проблема вот в чем. На одном из предприятий мне сказали, что это должен быть сугубо количественный счет.Т.е. количечтво должно быть, а суммы не должно. Порывшись в типовых конф., почему-то не обнаружил отличий между их конфигурацией и типовой (касательно этого счета).
Исправив документ Ввод в эксплуатацию (чтоб не делал ставил в проводке сумму по МЦ) , начал писать обработку по обнулению сумм этого счета. Толком ни фига не получилось выдавал сообщение о том что нельзя сохранять записанные проводки.
Решил сделать обработку, которая создаст операцию с такими же проводками, но суммы отрицательные и облом тут тоже что то не то делаю.
Разъясните что делаю не так.
Вот код модуля:
Процедура Сформировать()
    СчМЦ = СчетПоКоду("МЦ");
    Опер = СоздатьОбъект("Операция");
    ОперНова=СоздатьОбъект("Операция");
    ОперНова.Новая();
    Опер.ВыбратьОперации (НД,КД);
    Пока Опер.ПолучитьОперацию()=1 Цикл
         Опер.ВыбратьПроводки();
            
                Пока Опер.ПолучитьПроводку()=1 Цикл
                Если (Опер.Дебет.Счет=СчМЦ)или (Опер.Дебет.Счет=СчМЦ)Тогда
                    ОперНова.НоваяПроводка();
                    
                    оперНова.дебет.Счет=Опер.Дебет.Счет;
                    ОперНова.Кредит.Счет=Опер.Кредит.Счет;
                    ОперНова.Дебет.Субконто(1)=Опер.Дебет.Субконто(1);
                    ОперНова.Дебет.Субконто(2)=Опер.Дебет.Субконто(2);
                    ОперНова.Дебет.Субконто(3)=Опер.Дебет.Субконто(3);
                    ОперНова.Сумма=опер.Сумма*(-1);
                    ОперНова.Кредит.Субконто(1)=Опер.Кредит.Субконто(1);
                    ОперНова.Кредит.Субконто(2)=Опер.Кредит.Субконто(2);
                    ОперНова.Кредит.Субконто(3)=Опер.Кредит.Субконто(3);
                КонецЕсли;
                КонецЦикла;
                
            КонецЦикла;
    ОперНова.Записать();        
КонецПроцедуры
logist
Цитата(gryphus @ 26.10.10, 10:09) необходимо зарегистрироваться для просмотра ссылки
На одном из предприятий мне сказали, что это должен быть сугубо количественный счет.Т.е. количечтво должно быть, а суммы не должно.

Вас обманули.
необходимо зарегистрироваться для просмотра ссылки есть пример №2, там видно что у МЦ есть суммовой учет.
Ну и вообще принцип в том, что по каждому счету есть сумма, может не быть чего угодно, но сумма должна быть.
gryphus
В примере то оно есть. И в 1С реализовано так что показывает и сумму и количество. Но там ведь не показано откуда это взято.А вот в бух учете надо чтоб, только количество.Это мне не один бух сказал совершенно не знакомые друг с другом.
Я в замешательстве. С одной стороны в 1С не дураки сидят, с другой - люди которым не верить тоже нельзя.Че делать то?
logist
Посовещался с коллегами, признаюсь был чуть не прав smile.gif
МБП в эксплуатации действительно можно (именно можно, но не обязательно) учитывать в количественном выражении, так как для итоговой финансовой отчетности учетная сумма МБП в эксплуатации не используется (при вводе в эксплуатацию они списываются на расходы).
Но это совсем не значит что ее не надо учитывать в суммах. Например некоторые организации с которыми я сталкиваюсь используют субсчет 112.2 для учета МБП в эксплуатации в т.ч. и в количественном выражении с субконто "Номенклатура" (при вводе в эксплуатацию делается проводка на Кт износа, по типу фондирования в бюджете). Для чего это используется - на случай возврата из эксплуатации, или определения суммы недостачи.
Так что, если бухгалтер не хочет видеть суммы он прав. Единственное, сможет ли 7.7 делать такие операции, и как Вам теперь убрать суммы оставив только кол-во...
gryphus
Вот вот. Совершенно согласен. Хочу сделать это операцией в этом периоде, чтоб не трогать старые. Пройтись по операциям и скопировать проводки в одну,но с отрицательными суммами. Будет ли это корректно? И попутный вопрос как проверить проводка включена или нет? Программно имеется ввиду.
MATEVI
Цитата(gryphus @ 26.10.10, 10:09) необходимо зарегистрироваться для просмотра ссылки
Уважаемые, помогите разобраться с забалансовым счетом МЦ.

     
оперНова.дебет.Счет=Опер.Дебет.Счет;
ОперНова.Кредит.Счет=Опер.Кредит.Счет;
КСД = Опер.Дебет.Счет.КоличествоСубконто();
Для а = 1 По КСД Цикл
       ОперНова.Дебет.Субконто(а, Опер.Дебет.Субконто(а));    
КонецЦикла;
КСК = Опер.Кредит.Счет.КоличествоСубконто();
Для а = 1 По КСК Цикл
       ОперНова.Кредит.Субконто(а, Опер.Кредит.Субконто(а));    
КонецЦикла;
                
//ОперНова.Дебет.Субконто(1) = Опер.Дебет.Субконто(1);
//ОперНова.Дебет.Субконто(2) =Опер.Дебет.Субконто(2);
//ОперНова.Дебет.Субконто(3) =Опер.Дебет.Субконто(3);
                
//ОперНова.Кредит.Субконто(1)=Опер.Кредит.Субконто(1);
//ОперНова.Кредит.Субконто(2)=Опер.Кредит.Субконто(2);
//ОперНова.Кредит.Субконто(3)=Опер.Кредит.Субконто(3);

ОперНова.Сумма             =опер.Сумма*(-1);


Цитата(gryphus @ 26.10.10, 15:58) необходимо зарегистрироваться для просмотра ссылки
И попутный вопрос как проверить проводка включена или нет? Программно имеется ввиду.

Опер.ВключитьПроводки() = 0

//СП - Включает/выключает проводки операции.
Возвращает: состояние на момент вызова метода. 1 - проводки операции включены; 0 - проводки операции выключены.
//
gryphus
Вообщем ничего путнего не получается. Операции исправить не удается(Нельзя сохранить), в новой операции не получается выбрать именно то что надо и опять таки бред.
Есть еще один вариант. Хочу попробовать немного подправить документ списаниеМБП,(убрать из проводки сумму и списать все к черту), но опять же не потянет ли это за собой какую-нить херь.
И как заполнить автоматом табличную часть. У меня что-то не получается. Делаю вот-так:


Процедура Заполнить()
        ИтОстатокФакт = СоздатьОбъект("БухгалтерскиеИтоги");
        ИтОстатокФакт.ИспользоватьСубконто(ВидыСубконто.МестаХранения,МестоХранения,2);
        ИтОстатокФакт.ИспользоватьСубконто(ВидыСубконто.НеоборотныеАктивы,,1);
        СчОстатков = СчетПоКоду("МЦ");
//        ИтОстатокФакт.Опции(1,0);
//        ИтОстатокФакт.ВключатьСубсчета(-1);
        // определим дату
        Дат = ДатаДок;
        ИтОстатокФакт.ВыполнитьЗапрос(Дат,,СчОстатков,,,,,"К");
        ИтОстатокФакт.ВыбратьСубконто(1);
    //    Если ИтОстатокФакт.ПолучитьСубконто(1,,МестоХранения)=1 Тогда      
     Пока ИтОстатокфакт.ПолучитьСубконто(1)=1 Цикл
         

            ИтОстатокФакт.ВыбратьСубконто(2);
            Пока ИтОстатокФакт.ПолучитьСубконто(2)=1 Цикл    
                // Заполняем по НА
    //                ИтОстатокФакт.ВыбратьСчета();
        //            Пока ИтОстатокФакт.ПолучитьСчет()=1 Цикл
                        Спр= ИтОстатокФакт.Субконто(2);
                                КоличествоНаименованийФакт = КоличествоНаименованийФакт + 1;
                                текНомерСтрокиФакт = КоличествоНаименованийФакт;
                                НоваяСтрока();
                                ТМЦ = ИтОстатокФакт.Субконто(2);  
                                Кво = ИтОстатокФакт.СНД("К");
                                Сумма777 =  ИтОстатокФакт.СНД("С");
                    //КонецЦикла;
            КонецЦикла;  
    //    КонецЕсли;
         КонецЦикла;
КонецПроцедуры

И еще как вставлять код программы на форум, что б было как в конфигураторе?Как изображение что-ли?
Vofka
gryphus, теги [code][/code]
MATEVI
Цитата(gryphus @ 29.10.10, 10:48) необходимо зарегистрироваться для просмотра ссылки
в новой операции не получается выбрать именно то что надо и опять таки бред.

Почему? В операцию попадает то что надо. Единственное что записаные кор. операции попадают в выборку. Но это можно пресечь созданием ее на след. день. Что конкретней не получается?
gryphus
Цитата(MATEVI @ 29.10.10, 12:13) необходимо зарегистрироваться для просмотра ссылки
Почему? В операцию попадает то что надо. Единственное что записаные кор. операции попадают в выборку. Но это можно пресечь созданием ее на след. день. Что конкретней не получается?

В ОСВ проскакивают суммы. Причем операция создается вроде бы правильно.Это касаемо документа перемещение.
Документ перемещение формирует проводки
Дт МЦ кол=1 сумма=0 Кт МЦ кол=0,сумма=0
Дт МЦ кол=3 сумма=154,50 Кт МЦ кол=0,сумма=0
Наша операция на это реагирует следующим образом:
Меняет первое субконто(Место хранение) местами и делает след. проводки
Дт МЦ кол=0 сумма=-154,5 Кт МЦ кол=0,сумма=0
Дт МЦ кол=0 сумма=-154,5 Кт МЦ кол=0,сумма=0
Дт МЦ кол=0 сумма=+154,5 Кт МЦ кол=0,сумма=0

Обратно меняем субконто местами и

Дт МЦ кол=0 сумма=0 Кт МЦ кол=0,сумма=-154,50

В итоге от чего плясали к тому и пришли.
logist
Цитата(gryphus @ 29.10.10, 14:27) необходимо зарегистрироваться для просмотра ссылки
Дт МЦ кол=0 сумма=0 Кт МЦ кол=0,сумма=-154,50

В итоге от чего плясали к тому и пришли.

Здесь Кт должен быть без минуса, или Дт с минусом.
MATEVI
Ну да. Либо Кт вообще пропустить.
Я бы вообще сделал по другому получил бы остатки на дату (например на конец квартала (месяца) перед отчетным) по МЦ. И Сделал сторно
gryphus
Ну что может и так. Буду пробовать по разному.Но хотелось бы добить то что есть. Хотя вариант с остатками наверное более рациональный. Проблема в том что у меня не получилось их получить.
Выше я предоставлял код. Нет их там и все. А в оборотке есть.
MATEVI
Цитата(gryphus @ 29.10.10, 15:29) необходимо зарегистрироваться для просмотра ссылки
Ну что может и так. Буду пробовать по разному.Но хотелось бы добить то что есть. Хотя вариант с остатками наверное более рациональный. Проблема в том что у меня не получилось их получить.
Выше я предоставлял код. Нет их там и все. А в оборотке есть.

А почему ?
ИтОстатокФакт.ИспользоватьСубконто(ВидыСубконто.НеоборотныеАктивы,,1);
В типовой МХ, ТМЦ, Партии
gryphus
Во блин точно.
gryphus
Дуже Вам дякую панове. Радости просто нет границ. Все получилось через остатки.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.