Версия для печати темы (https://pro1c.org.ua/index.php?showtopic=2084)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Счет МЦ

Автор: gryphus 26.10.10, 8:09

Уважаемые, помогите разобраться с забалансовым счетом МЦ.
Проблема вот в чем. На одном из предприятий мне сказали, что это должен быть сугубо количественный счет.Т.е. количечтво должно быть, а суммы не должно. Порывшись в типовых конф., почему-то не обнаружил отличий между их конфигурацией и типовой (касательно этого счета).
Исправив документ Ввод в эксплуатацию (чтоб не делал ставил в проводке сумму по МЦ) , начал писать обработку по обнулению сумм этого счета. Толком ни фига не получилось выдавал сообщение о том что нельзя сохранять записанные проводки.
Решил сделать обработку, которая создаст операцию с такими же проводками, но суммы отрицательные и облом тут тоже что то не то делаю.
Разъясните что делаю не так.
Вот код модуля:

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

Автор: logist 26.10.10, 10:11

Цитата(gryphus @ 26.10.10, 10:09) http://pro1c.org.ua/index.php?act=findpost&pid=12951 есть пример №2, там видно что у МЦ есть суммовой учет.
Ну и вообще принцип в том, что по каждому счету есть сумма, может не быть чего угодно, но сумма должна быть.

Автор: gryphus 26.10.10, 11:29

В примере то оно есть. И в 1С реализовано так что показывает и сумму и количество. Но там ведь не показано откуда это взято.А вот в бух учете надо чтоб, только количество.Это мне не один бух сказал совершенно не знакомые друг с другом.
Я в замешательстве. С одной стороны в 1С не дураки сидят, с другой - люди которым не верить тоже нельзя.Че делать то?

Автор: logist 26.10.10, 13:53

Посовещался с коллегами, признаюсь был чуть не прав smile.gif
МБП в эксплуатации действительно можно (именно можно, но не обязательно) учитывать в количественном выражении, так как для итоговой финансовой отчетности учетная сумма МБП в эксплуатации не используется (при вводе в эксплуатацию они списываются на расходы).
Но это совсем не значит что ее не надо учитывать в суммах. Например некоторые организации с которыми я сталкиваюсь используют субсчет 112.2 для учета МБП в эксплуатации в т.ч. и в количественном выражении с субконто "Номенклатура" (при вводе в эксплуатацию делается проводка на Кт износа, по типу фондирования в бюджете). Для чего это используется - на случай возврата из эксплуатации, или определения суммы недостачи.
Так что, если бухгалтер не хочет видеть суммы он прав. Единственное, сможет ли 7.7 делать такие операции, и как Вам теперь убрать суммы оставив только кол-во...

Автор: gryphus 26.10.10, 13:58

Вот вот. Совершенно согласен. Хочу сделать это операцией в этом периоде, чтоб не трогать старые. Пройтись по операциям и скопировать проводки в одну,но с отрицательными суммами. Будет ли это корректно? И попутный вопрос как проверить проводка включена или нет? Программно имеется ввиду.

Автор: MATEVI 28.10.10, 13:24

Цитата(gryphus @ 26.10.10, 10:09) http://pro1c.org.ua/index.php?act=findpost&pid=12951
И попутный вопрос как проверить проводка включена или нет? Программно имеется ввиду.

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

//СП - Включает/выключает проводки операции.
Возвращает: состояние на момент вызова метода. 1 - проводки операции включены; 0 - проводки операции выключены.
//

Автор: gryphus 29.10.10, 8:48

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


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

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

И еще как вставлять код программы на форум, что б было как в конфигураторе?Как изображение что-ли?

Автор: Vofka 29.10.10, 9:00

gryphus, теги [code][/code]

Автор: MATEVI 29.10.10, 10:13

Цитата(gryphus @ 29.10.10, 10:48) *
в новой операции не получается выбрать именно то что надо и опять таки бред.

Почему? В операцию попадает то что надо. Единственное что записаные кор. операции попадают в выборку. Но это можно пресечь созданием ее на след. день. Что конкретней не получается?

Автор: gryphus 29.10.10, 12:27

Цитата(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 29.10.10, 12:33

Цитата(gryphus @ 29.10.10, 14:27) *
Дт МЦ кол=0 сумма=0 Кт МЦ кол=0,сумма=-154,50

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

Здесь Кт должен быть без минуса, или Дт с минусом.

Автор: MATEVI 29.10.10, 13:13

Ну да. Либо Кт вообще пропустить.
Я бы вообще сделал по другому получил бы остатки на дату (например на конец квартала (месяца) перед отчетным) по МЦ. И Сделал сторно

Автор: gryphus 29.10.10, 13:29

Ну что может и так. Буду пробовать по разному.Но хотелось бы добить то что есть. Хотя вариант с остатками наверное более рациональный. Проблема в том что у меня не получилось их получить.
Выше я предоставлял код. Нет их там и все. А в оборотке есть.

Автор: MATEVI 29.10.10, 14:18

Цитата(gryphus @ 29.10.10, 15:29) *
Ну что может и так. Буду пробовать по разному.Но хотелось бы добить то что есть. Хотя вариант с остатками наверное более рациональный. Проблема в том что у меня не получилось их получить.
Выше я предоставлял код. Нет их там и все. А в оборотке есть.

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

Автор: gryphus 29.10.10, 14:55

Во блин точно.

Автор: gryphus 29.10.10, 15:10

Дуже Вам дякую панове. Радости просто нет границ. Все получилось через остатки.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua