Имя: Пароль:
1C
 
КА. Расчет себестоимости. Разные суммы БУ и УчетаЗатрат
,
0 DirecTwiX
 
04.03.15
10:05
Суть проблемы отражена на скрине:
http://i10.pixs.ru/storage/2/0/7/SSpng_6637507_16310207.png

Кто-нибудь сталиквался? Как решали?
1 DirecTwiX
 
04.03.15
13:05
Ап
2 Krendel
 
04.03.15
13:13
Металлической линейкой обычно
3 ДенисЧ
 
04.03.15
13:16
ручные операции?
4 Krendel
 
04.03.15
13:16
(3) К гадалке не ходи
5 DirecTwiX
 
04.03.15
13:21
(3) (4) Какие нафиг ручные операции, если в (0) движения только одного документа - даже в колонку отдельную специально вывел?
6 ДенисЧ
 
04.03.15
13:22
(5) ручные операции нафик в периоде расчёта
7 Krendel
 
04.03.15
13:24
(5) РС, Амортизация, Погашение стоимости- это итог тех документов, которые ты навбивал за период. Поэтому смотреть надо первичку, а не РС
8 DirecTwiX
 
04.03.15
13:29
(6) (7) Имеете в виду корректировку записей регистров (по учету затрат), наверн, а не ручную операцию?
Нет, пусто, ни одной корректировки в этом месяце.

Сейчас гляну ещё документы, у которых по учету затрат есть суммы, а по БУ нет.
9 ДенисЧ
 
04.03.15
13:30
(8) Нет. Именно операцияБух как документ
10 DirecTwiX
 
04.03.15
13:33
(9) Так они никак не влияют на результат расчета?
11 Krendel
 
04.03.15
13:34
(10) Да ладно
12 DirecTwiX
 
04.03.15
13:35
(11) А как?
Расчет же идёт по данным регистра УчетаЗатрат.
13 ДенисЧ
 
04.03.15
13:36
(10) Они влияют на сальдо по бухсчетам.
14 Krendel
 
04.03.15
13:39
(12) Все верно, а бух операции двигают только хозрасчетный регистр
15 DirecTwiX
 
04.03.15
13:40
(13) Сальдо как-то замешано в расчете?
(14) И что из этого следует? У меня в (0) на скрине отображены Обороты, а не остатки.
16 ДенисЧ
 
04.03.15
13:41
(15) Нет, оно и обороты по хозрасчётному совершенно просто так валяются... И никаким образом на цифры отчёта не влияют...
17 Krendel
 
04.03.15
13:42
(15) Ты лучше не свои отборы покажи, а отчеты стандартные
18 DirecTwiX
 
04.03.15
13:43
(16) При чем тут какой-то отчет? Или ты про скрин из (0)? Так там только обороты по регистратору.
А оно и обороты нужны бухгалтерам, чтобы ОСВ формировать.

(17) Что именно интересует?
19 шаэс
 
04.03.15
13:44
(18) а Вы не издеваетесь над нами? точно?
20 Krendel
 
04.03.15
13:45
(18) Оборотка конечно, и ведомость по учету затрат (хотя хз где 15 счет хранится)
21 Krendel
 
04.03.15
13:46
(19) Он просто не платит по 2 штуки в час, поэтому может себе это позволить ;-)
22 DirecTwiX
 
04.03.15
13:49
(16) (19) Не, может, я просто не шарю, но до этого момента я думал, что данные ОСВ не влиют на расчет СС, который использует данные УчетаЗатрат.
Влиют? Пример пожалуйста.

(20) Сек...
23 шаэс
 
04.03.15
13:57
(21) вообще фразу не поняла... кому не платит?
24 шаэс
 
04.03.15
13:58
(22) т.е. Вы реально не понимаете, что если у Вас движения по регистру хозрасчета (данные оборотки) не совпадают с движениями по регистру затрат до расчета себестоимости, то и РСВ сделает движения с разными суммами в итоге?
25 DirecTwiX
 
04.03.15
14:04
(24) Да, реально уверен, что суммы отличаться не будут.
Встречный вопрос. Т.е. Вы считаете, что проводки БУ получаются не из данных учета затрат, а независимо рассчитываются из данных ОСВ??
26 шаэс
 
04.03.15
14:08
(25) ну у Вас же как-то так и получилось, не?
27 DirecTwiX
 
04.03.15
14:11
(26) Не понял, так откуда проводки БУ беруться?
28 DirecTwiX
 
04.03.15
14:18
Вот запрос:

ВЫБРАТЬ
    УчетЗатратОбороты.Период,
    УчетЗатратОбороты.Регистратор,
    УчетЗатратОбороты.КоличествоОборот,
    УчетЗатратОбороты.СтоимостьОборот КАК СтоимостьОборот
ПОМЕСТИТЬ УЗ
ИЗ
    РегистрНакопления.УчетЗатратРегл.Обороты(&НП, &КП, Регистратор, ) КАК УчетЗатратОбороты
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаВидаУчета КАК АВУ
        ПО УчетЗатратОбороты.АналитикаВидаУчета = АВУ.Ссылка
ГДЕ
    АВУ.СчетУчета = &СчетУчета
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ХозрасчетныйОбороты.Регистратор,
    ХозрасчетныйОбороты.СуммаОборот
ПОМЕСТИТЬ БУ
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(&НП, &КП, Регистратор, Счет = &СчетУчета, , , , ) КАК ХозрасчетныйОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    УЗ.Период,
    УЗ.Регистратор,
    УЗ.КоличествоОборот,
    УЗ.СтоимостьОборот,
    БУ.Регистратор КАК Регистратор1,
    БУ.СуммаОборот,
    ЕСТЬNULL(УЗ.СтоимостьОборот, 0) - ЕСТЬNULL(БУ.СуммаОборот, 0) КАК Поле1
ИЗ
    УЗ КАК УЗ
        ПОЛНОЕ СОЕДИНЕНИЕ БУ КАК БУ
        ПО УЗ.Регистратор = БУ.Регистратор

УПОРЯДОЧИТЬ ПО
    Поле1 Возр
ИТОГИ
    КОЛИЧЕСТВО( РАЗЛИЧНЫЕ Поле1)
ПО
    ОБЩИЕ

Вот резузльтат:
http://i10.pixs.ru/storage/4/4/3/444PNG_7019815_16313443.png
Счет в запросе = 15.01

Надеюсь, из результата видно, что там не может быть никаких ручных операций.
29 Krendel
 
04.03.15
14:45
(28) Я не программер, мне пофигу что у тя там за код, и каков запрос. Я вижу что нет тех отчетов к которым я привык.  Так что необходим доступ к базе чтобы сказать чо к чему.
30 DirecTwiX
 
04.03.15
15:45
(16) (18) Всё-таки вы были не правы.

Но почему 1С списывает по БУ меньше чем по учету затрат, я так и не понял.. А лезть в отладчик при расчете мне не хочется..

(29) http://i10.pixs.ru/storage/5/9/5/555png_5204596_16314595.png
31 eklmn
 
гуру
04.03.15
15:48
потому что у тебя ручная проводка в прошлом периоде
32 Krendel
 
04.03.15
15:48
Ну вот и ответ, где начальный остаток за предыдущий период в БУ?
33 Krendel
 
04.03.15
15:50
(31) Странно что не списало по БУ в минус, видимо что-то поправили в РС
34 eklmn
 
гуру
04.03.15
15:52
(33) да не, там при расчете тупо остаток берет и считает
35 Krendel
 
04.03.15
15:58
(34) ХЗ с 15-м не работал.
36 DirecTwiX
 
04.03.15
16:25
(31) Поподробнее пожалуйста

(32) Не в нём проблема. Бухи забыли распровести 15 счете перед расчетом СС за январь.

(33) Я это и пытался до вас донести. И только это сейчас покрыто мраком.

(34) Остаток на 15 в ОСВ? Наверн, после расчета?
Я правильно понимаю, что ты имеешь в виду следующее? Если я перед расчетом за февраль закину в ОСВ на 15 счет 10 000 так, чтобы начальный остаток был (14 555 штук на 10 000 у.е.), перепроведу расчет, то оборот по кредиту в ОСВ увеличится на 10 000???
37 DirecTwiX
 
04.03.15
16:56
Бл*

Оказалось, что старый прог неплохо так поковырял модуль объекта расчета сс (точнее, всё было сделано в конце обработки проведения)..

Та часть кода, из-за которой произошёл весь этот сыр-бор:
СчетБУ = Новый Массив;
        СчетБУ.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("15.01"));
        
        Запрос = Новый Запрос;
        Запрос.Текст =
                
        "ВЫБРАТЬ
        |    ХозрасчетныйОстаткиИОбороты.Счет,
        |    ХозрасчетныйОстаткиИОбороты.Субконто1,
        |    ХозрасчетныйОстаткиИОбороты.Субконто2,
        |    ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт,
        |    ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстатокДт
        |ИЗ
        |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаКон, &ДатаКон, , , Счет В ИЕРАРХИИ (&СчетБУ), , ) КАК ХозрасчетныйОстаткиИОбороты";
        
        //Запрос.УстановитьПараметр("ДатаНач", НачалоМесяца(Ссылка.Дата));
        Запрос.УстановитьПараметр("ДатаКон", КонецМесяца(Ссылка.Дата));
        Запрос.УстановитьПараметр("НашаФирма", Ссылка.Организация);
        Запрос.УстановитьПараметр("СчетБУ", СчетБУ);
        
        ТТ = Запрос.Выполнить().Выгрузить();
        
        Для Каждого Стр Из ТТ Цикл
            Проводка = НаборЗаписей.Добавить();
            Проводка.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("15.01");
            Проводка.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("41.01");
            Проводка.Сумма = Стр.СуммаКонечныйОстатокДт;
            БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Номенклатура",Стр.Субконто1);
            БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Номенклатура",Стр.Субконто1);
            БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Склады",Стр.Субконто2);
            Проводка.Содержание = "Перемещение между складами";
            Проводка.ДатаЗаписи = КонецМесяца(Ссылка.Дата);
            Проводка.Активность = Истина;
            Проводка.Организация = Ссылка.Организация;
            Проводка.Регистратор = Ссылка;
            Проводка.Период = КонецМесяца(Ссылка.Дата);
        КонецЦикла;
        НаборЗаписей.Записать();


Даже таблица с оборотами...

А вот вся его вставка целиком...
Если Ссылка.ОтражатьВБухгалтерскомУчете = Истина Тогда
        
        СчетБУ = Новый Массив;
        СчетБУ.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.1"));
        СчетБУ.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.2"));
        
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    ХозрасчетныйДвиженияССубконто.СубконтоДт1,
        |    ХозрасчетныйДвиженияССубконто.СубконтоДт2,
        |    ХозрасчетныйДвиженияССубконто.СубконтоКт1,
        |    ХозрасчетныйДвиженияССубконто.СубконтоКт2,
        |    ХозрасчетныйДвиженияССубконто.Организация,
        |    ХозрасчетныйДвиженияССубконто.СчетДт,
        |    ХозрасчетныйДвиженияССубконто.СчетКт,
        |    ХозрасчетныйДвиженияССубконто.Сумма КАК Сумма,
        |    ХозрасчетныйДвиженияССубконто.Регистратор,
        |    ХозрасчетныйДвиженияССубконто.Регистратор.Подразделение
        |ИЗ
        |    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто( &ДатаНач, &ДатаКон, (СчетКт В Иерархии(&СчетБУ) ИЛИ СчетДт В Иерархии(&СчетБУ)) И Организация = &НашаФирма) КАК ХозрасчетныйДвиженияССубконто
        |";
        
        Запрос.УстановитьПараметр("ДатаНач", НачалоМесяца(Ссылка.Дата));
        Запрос.УстановитьПараметр("ДатаКон", КонецМесяца(Ссылка.Дата));
        Запрос.УстановитьПараметр("НашаФирма", Ссылка.Организация);
        Запрос.УстановитьПараметр("СчетБУ", СчетБУ);
        
        ТТ = Запрос.Выполнить().Выгрузить();
        ТТ.Свернуть("СубконтоКт1","Сумма");
        ТТ.Сортировать("СубконтоКт1");
        
        СчетБУ = Новый Массив;
        СчетБУ.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("44.01.1"));
        
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    ХозрасчетныйОстаткиИОбороты.Счет КАК Счет,
        |    ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Статья,
        |    ХозрасчетныйОстаткиИОбороты.Организация КАК Организация,
        |    ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт КАК СумОстатокДт
        |ИЗ
        |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , Счет В Иерархии(&СчетБУ), ,Организация = &НашаФирма) КАК ХозрасчетныйОстаткиИОбороты
        |ГДЕ
        |   СуммаКонечныйОстатокДт > 0
        |";
        
        Запрос.УстановитьПараметр("ДатаНач", НачалоМесяца(Ссылка.Дата));
        Запрос.УстановитьПараметр("ДатаКон", КонецМесяца(Ссылка.Дата));
        Запрос.УстановитьПараметр("НашаФирма", Ссылка.Организация);
        Запрос.УстановитьПараметр("СчетБУ", СчетБУ);
        
        Т = Запрос.Выполнить().Выгрузить();
        
        НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.Регистратор.Установить(Ссылка);
        НаборЗаписей.Прочитать();
        Для Каждого СтрокаТ Из Т Цикл
            Для Каждого СтрокаТТ Из ТТ Цикл
                Если СтрокаТ.Статья.ВидРасходовНУ = Перечисления.ВидыРасходовНУ.НеУчитываемыеВЦеляхНалогообложения Тогда
                    Проводка = НаборЗаписей.Добавить();
                    Проводка.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("44.01.1");
                    Проводка.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.07.1");
                    Проводка.Сумма = Окр(СтрокаТ.СумОстатокДт*СтрокаТТ.Сумма/ТТ.Итог("Сумма"),2);
                    БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"СтатьиЗатрат",СтрокаТ.Статья);
                    БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"НоменклатурныеГруппы",СтрокаТТ.СубконтоКт1);
                    Проводка.Содержание = "Распределение издержек обращения";
                    Проводка.ДатаЗаписи = КонецМесяца(Ссылка.Дата);
                    Проводка.Активность = Истина;
                    Проводка.Организация = Ссылка.Организация;
                    Проводка.Регистратор = Ссылка;
                    Проводка.Период = КонецМесяца(Ссылка.Дата);
                КонецЕсли;
            КонецЦикла;
        КонецЦикла;
        НаборЗаписей.Записать();
        
        НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.Регистратор.Установить(Ссылка);
        НаборЗаписей.Прочитать();
        Для Каждого Проводка Из НаборЗаписей Цикл
            Если Проводка.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("01.01") Тогда
                Отбор = Новый Структура;
                Отбор.Вставить("ОсновноеСредство",Проводка.СубконтоДт.ОсновныеСредства);
                НаборЗап = РегистрыСведений.МестонахождениеОСБухгалтерскийУчет.СрезПоследних(ЭтотОбъект.Дата,Отбор);
                Попытка
                    БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Подразделения",НаборЗап[0].Местонахождение);
                Исключение
                КонецПопытки;
            КонецЕсли;
        КонецЦикла;
        НаборЗаписей.Записать();
        
        //15 счет
        НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.Регистратор.Установить(Ссылка);
        НаборЗаписей.Прочитать();
        КолСтр = НаборЗаписей.Количество();
        Пока КолСтр > 0 Цикл
            КолСтр = КолСтр - 1;
            Проводка = НаборЗаписей.Получить(КолСтр);
            
            Если Проводка.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("41.01") И Проводка.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("15.01") Тогда
                НаборЗаписей.Удалить(НаборЗаписей.Индекс(Проводка));
            КонецЕсли;
        КонецЦикла;
        НаборЗаписей.Записать();
        
        СчетБУ = Новый Массив;
        СчетБУ.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("15.01"));
        
        Запрос = Новый Запрос;
        Запрос.Текст =
                
        "ВЫБРАТЬ
        |    ХозрасчетныйОстаткиИОбороты.Счет,
        |    ХозрасчетныйОстаткиИОбороты.Субконто1,
        |    ХозрасчетныйОстаткиИОбороты.Субконто2,
        |    ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт,
        |    ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстатокДт
        |ИЗ
        |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаКон, &ДатаКон, , , Счет В ИЕРАРХИИ (&СчетБУ), , ) КАК ХозрасчетныйОстаткиИОбороты";
        
        //Запрос.УстановитьПараметр("ДатаНач", НачалоМесяца(Ссылка.Дата));
        Запрос.УстановитьПараметр("ДатаКон", КонецМесяца(Ссылка.Дата));
        Запрос.УстановитьПараметр("НашаФирма", Ссылка.Организация);
        Запрос.УстановитьПараметр("СчетБУ", СчетБУ);
        
        ТТ = Запрос.Выполнить().Выгрузить();
        
        Для Каждого Стр Из ТТ Цикл
            Проводка = НаборЗаписей.Добавить();
            Проводка.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("15.01");
            Проводка.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("41.01");
            Проводка.Сумма = Стр.СуммаКонечныйОстатокДт;
            БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Номенклатура",Стр.Субконто1);
            БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Номенклатура",Стр.Субконто1);
            БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Склады",Стр.Субконто2);
            Проводка.Содержание = "Перемещение между складами";
            Проводка.ДатаЗаписи = КонецМесяца(Ссылка.Дата);
            Проводка.Активность = Истина;
            Проводка.Организация = Ссылка.Организация;
            Проводка.Регистратор = Ссылка;
            Проводка.Период = КонецМесяца(Ссылка.Дата);
        КонецЦикла;
        НаборЗаписей.Записать();
    КонецЕсли;

Беда...
38 Krendel
 
04.03.15
17:32
Ну видишь, а на нас гнал ;-)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший