Имя: Пароль:
1C
 
Установка соответствия счетов БУ и НУ
0 olia_superstar
 
21.05.08
15:35
Конфигурация БП, релиз 1.6.8.3
Ставлю в методе начисления амортизации ОС счет бу 91.02 в ну 91.02.П
Закрытие месяца по бу начисляет все правильно на 91.02, в ну 91.02.П
Между этими суммами существует временная разница, которую тоже надо отразить на 91.02.П, а она отражается на 91.02.7 - этот счет она берет из регистра сведений (счет бу 91.02 вид расходов Прочие внереализационные доходы (расходы) счет ну 91.02.7)
Я добавила новую запись для своего случая
счет бу 91.02 счет корр. 02.01 вид расходов Прочие внереализационные доходы (расходы) счет ну 91.02.П.
Но при закрытии месяца он все равно берет 91.02.7
Какой смысл тогда значения в поле счет корр. если он все равно берет значение первое попавшееся ?!
1 Господин ПЖ
 
21.05.08
15:36
никакого... там видать механизм еще времен первых УПП - через ж.пу всё сделано...
2 olia_superstar
 
21.05.08
15:48
Я смотрела модуль закрытия месяца. Когда она ищет счет для отражения разницы, обращается в общий модуль Бухгалтерский учет, Функция ПреобразоватьСчетаБУвСчетНУ, вот в этой функции запрос возвращает значение с двумя строками (с одинаковыми счетами по бу и видом затрат), но возвращает она значение той строки, которая первая попадается и никакой проверки на счет корр нет...
А в современной УПП это уже исправлено ???
3 Господин ПЖ
 
21.05.08
15:50
(2) не знаю... я еще год назад для УПП свой механизм делал, со сравнением по подходящий аналитике и т.п. От 1С не дождешься...
4 GenV
 
21.05.08
15:54
(2) Проверка на корр. счет и статью затрат делается в ислючительных случаях и в основном при выборе счета в документах. В остальном, как правильно уже заметили, там все через ж... Лучше не использовать аналитику и корр.счет для сопоставления счетов БУ и НУ.

ЗЫ В некоторых документах сопоставление не используется и счет НУ забит в модуле (уже и не помню где).
5 olia_superstar
 
21.05.08
16:00
(4) Все бы хорошо, но если мне нужны оба случая
бу 91.02 вид прочих дох.и расх. прочие внереализац. ну 91.02.7
бу 91.02 вид прочих дох.и расх. прочие внереализац. ну 91.02.П
И как тогда различать в каком случае, какой счет брать ???
6 GenV
 
21.05.08
16:05
(5) Если есть желание, тогда пропиши правильное получение счета НУ по статье затрат в закрытии месяца ... Тем более, что только по амортизации такое.
7 olia_superstar
 
21.05.08
16:13
(6) Не лучше ли сразу дописать функцию в общем модуле ПреобразоватьСчетаБУвСчетНУ, на случай заполненного корр. счета.
Хотя мне совершенно не понятно, зачем добавлять это поле корр. счет в регистр сведений, если оно не отрабатывается...
8 GenV
 
21.05.08
16:16
(7) Главное не дописать, а передовать в эту функцию этот самый кор.счет :) А документы этого не делают ...

ЗЫ это с давних времен когда хотели делать соответствия еще и по субконто, но не потянули ...
9 olia_superstar
 
21.05.08
16:21
Передавать это само собой, в этой функции нигде нет проверки на наличие этого счета, так что как минимум одно условие надо добавить.
Насчет вызова этой функции из других документов, согласна придется добавить еще один параметр. Зато решение получилось бы универсальнее, чем просто изменить чуть-чуть закрытие месяца.
Ведь подобная проблема может возникнуть и в других случаях.
10 GenV
 
21.05.08
16:28
(9) По своему опыту говорю - это в большинстве случаев не требуется. Но, если есть желание - пример:

Функция ПреобразоватьСчетаБУвСчетНУ(СтруктураДанных, Тип = "НУ", СУчетомВидаЗатрат = Ложь, Знач ДатаСреза = Неопределено) Экспорт

   Перем СчетБУ, СчетКоррБУ, ВидЗатратНУ, СтатьяЗатратБУ;

   Если ТипЗнч(СтруктураДанных) <> Тип("Структура")
    ИЛИ НЕ СтруктураДанных.Свойство("СчетБУ", СчетБУ)
    ИЛИ НЕ ЗначениеЗаполнено(СчетБУ) Тогда
       Возврат Неопределено;
   КонецЕсли;

   Результат = ПланыСчетов.Налоговый.ПустаяСсылка();

   // если для счета БУ в плане счетов указан конкретный счет НУ, то
   // в не зависимости от других параметров возвращаем его
   Результат = СчетБУ.СчетНУ;
   Если НЕ ЗначениеЗаполнено(Результат) Тогда

       ЕстьВидЗатратНУ  = СтруктураДанных.Свойство("ВидЗатратНУ",  ВидЗатратНУ);
       ЕстьСтатьяЗатрат = СтруктураДанных.Свойство("СтатьяЗатрат", СтатьяЗатратБУ);
       ЕстьСчетКоррБУ   = СтруктураДанных.Свойство("СчетКоррБУ",   СчетКоррБУ);

       Запрос = Новый Запрос();
       Запрос.Текст =
       "ВЫБРАТЬ ПЕРВЫЕ 1
       |    Соответствие.СтатьяЗатратБУ,
       |    Соответствие.ВидЗатратНУ,
       |    Соответствие.СчетКоррБУ,
       |    Соответствие.СчетНУ
       |ИЗ
       |    РегистрСведений.СоответствиеСчетовБУиНУ.СрезПоследних(
       |            &ДатаСреза,
       |            СчетБУ = &СчетБУ
       |                И "+?(ЕстьСчетКоррБУ, "(СчетКоррБУ = &СчетКоррБУ ИЛИ СчетКоррБУ = &ПустаяСчетКоррБУ)","СчетКоррБУ = &ПустаяСчетКоррБУ")+"
       |                И "+?(ЕстьСтатьяЗатрат, "(СтатьяЗатратБУ = &СтатьяЗатратБУ ИЛИ СтатьяЗатратБУ = &ПустаяСтатьяЗатратБУ)","СтатьяЗатратБУ = &ПустаяСтатьяЗатратБУ")+"
       |                И "+?(ЕстьВидЗатратНУ, "(ВидЗатратНУ = &ВидЗатратНУ ИЛИ ВидЗатратНУ.Ссылка ЕСТЬ NULL)","ВидЗатратНУ.Ссылка ЕСТЬ NULL")+"
       |        ) КАК Соответствие
       |
       |УПОРЯДОЧИТЬ ПО
       |    СтатьяЗатратБУ УБЫВ,
       |    ВидЗатратНУ УБЫВ,
       |    СчетКоррБУ УБЫВ";

       Запрос.УстановитьПараметр("ДатаСреза", ДатаСреза);
       Запрос.УстановитьПараметр("СчетБУ", СчетБУ);
       Запрос.УстановитьПараметр("ПустаяСчетКоррБУ", ПланыСчетов.Хозрасчетный.ПустаяСсылка());
       Запрос.УстановитьПараметр("ПустаяСтатьяЗатратБУ", Справочники.СтатьиЗатрат.ПустаяСсылка());
       Если ЕстьСчетКоррБУ Тогда
           Запрос.УстановитьПараметр("СчетКоррБУ", СчетКоррБУ);
       КонецЕсли;
       Если ЕстьСтатьяЗатрат Тогда
           Запрос.УстановитьПараметр("СтатьяЗатратБУ", СтатьяЗатратБУ);
       КонецЕсли;
       Если ЕстьВидЗатратНУ Тогда
           Запрос.УстановитьПараметр("ВидЗатратНУ", ВидЗатратНУ);
       КонецЕсли;

       // отбор счет НУ по счету БУ. Порядок отбора по параметрам:
       // 1) СчетБУ, СчетКоррБУ, СтатьяЗатрат, ВидЗатратНУ
       // 2) СчетБУ, СчетКоррБУ, ВидЗатратНУ
       // 3) СчетБУ, СчетКоррБУ
       // 4) СчетБУ, СтатьяЗатрат, ВидЗатратНУ
       // 5) СчетБУ, ВидЗатратНУ
       // 6) СчетБУ

       Выборка = Запрос.Выполнить().Выбрать();
       Если Выборка.Следующий() Тогда
           Результат = Выборка.СчетНУ;
       КонецЕсли;

   КонецЕсли;

   Возврат ?(СУчетомВидаЗатрат, Новый Структура("СчетНУ", Результат), Результат);

КонецФункции // ПреобразоватьСчетаБУвСчетНУ()
11 GenV
 
21.05.08
16:29
10+ единственное отличие от типовой - у меня для плана счетов БУ добавлен реквизит "СчетНУ", чтобы не обращаться к регистру сведений, если это простой счето (10, 41 и т.п.)
12 olia_superstar
 
21.05.08
16:35
(10) Спасибо, поразбираюсь. Если появятся вопросы или предложения можно в аську напишу ?
13 GenV
 
21.05.08
16:36
(12) Пиши, только проверяю еще не часто. Обычно утром и в обед.
Независимо от того, куда вы едете — это в гору и против ветра!