Имя: Пароль:
1C
1С v8
Как обнулить счёт
, ,
0 Самая счастливая
 
23.05.14
11:00
Добрый день ! Ситуация такая :
в оборотке по счету 41.09 (номенклатура, склады , партии)
                  
Подразделение - Бухгалтерия
Склад         - Основной
Номенклатура  - Номенклатура
(-----)       - 1000
(-----)       - -1000  (с минусом)  

"И этого много", пытаюсь написать обработку , чтобы обнулить счета, не получается делаю бух справку с продками Дт 000 Кт 41.09 1000
                                   Дт 41.09 Кт 000  -1000

всё время попадаем на нижнее субконто
1 Wobland
 
23.05.14
11:02
кто здесь?
2 salvator
 
23.05.14
11:03
(0) Ну давай, показывай...
3 vis_tmp
 
23.05.14
11:05
Выбрать эти остатки в разрезе всех субконто и сделать проводку с этими же субконто с противоположным знаком.
4 Самая счастливая
 
23.05.14
11:31
делаю же так, не получается
5 salvator
 
23.05.14
11:34
(4) Вас уговаривать надо, чтобы код показали?
6 Самая счастливая
 
23.05.14
11:35
ДобавляемыйДокОпер                    = Документы.ОперацияБух.СоздатьДокумент();
    ДобавляемыйДокОпер.Движения.Хозрасчетный.Очистить();
    ДобавляемыйДокОпер.Дата               = Дата;
    ДобавляемыйДокОпер.Содержание         = "Закрытие остатков по счету 41.09";
    ДобавляемыйДокОпер.СпособЗаполнения     = "Вручную";
    ДобавляемыйДокОпер.Организация          = Организация;
    ДобавляемыйДокОпер.Записать();
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ХозрасчетныйОстатки.Организация КАК Организ,
    |    ХозрасчетныйОстатки.Подразделение КАК Подраз,
    |    ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
    |    ХозрасчетныйОстатки.Субконто2 КАК Склады,
    |    ХозрасчетныйОстатки.Субконто3 КАК Партии,
    |    ХозрасчетныйОстатки.СуммаОстаток КАК Сумма
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.Остатки(
    |            ,
    |            Счет = &Счет,
    |            ,
    |            Организация = &Организация
    |                И Субконто1 = &Номенклатура) КАК ХозрасчетныйОстатки";
    
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Запрос.УстановитьПараметр("Организация", Организация);
    Запрос.УстановитьПараметр("Счет", Счет);
    
    Результат = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    
//    Движения.Хозрасчетный.Очистить();
    
    Пока   ВыборкаДетальныеЗаписи.Следующий() Цикл
        
        
        
        Движение = ДобавляемыйДокОпер.Движения.Хозрасчетный.Добавить();
        Движение.Период = Дата;
        Движение.Организация = Организация;

        
        Если ВыборкаДетальныеЗаписи.Сумма > 0  Тогда
        Движение.СчетДт = ПланыСчетов.Хозрасчетный.Вспомогательный;
        Движение.СчетКт = ПланыСчетов.Хозрасчетный.ТоварыГазкомплект;
        Движение.ПодразделениеКт = ВыборкаДетальныеЗаписи.Подраз;
        Движение.Сумма = ВыборкаДетальныеЗаписи.Сумма;
        //    Движение.КоличествоКт = 0;
        //    Движение.СуммаНУКт = ж;
        //    Движение.СуммаПРКт = ж;
        //    Движение.СуммаВРКт = ж;
        //    Движение.Содержание = Содержание;
        //    Движение.НеКорректироватьСтоимостьАвтоматически = ж;
        //    Движение.ВладелецФилиал = ВладелецФилиал;
        //    Движение.ОбщийДоступ = ОбщийДоступ;
        Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура] = ВыборкаДетальныеЗаписи.Номенклатура;
        Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады] = ВыборкаДетальныеЗаписи.Склады;
        Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Партии] = ВыборкаДетальныеЗаписи.Партии ;
           ИначеЕсли ВыборкаДетальныеЗаписи.Сумма < 0 Тогда
                
        Движение.СчетДт = ПланыСчетов.Хозрасчетный.ТоварыГазкомплект;
        Движение.СчетКт = ПланыСчетов.Хозрасчетный.Вспомогательный;
        Движение.Сумма = ВыборкаДетальныеЗаписи.Сумма;
        //Движение.КоличествоДт = 0;
        //Движение.СуммаНУДт = 0;
        //Движение.СуммаПРДт = 0;
        //Движение.СуммаВРДт = 0;
        //Движение.Содержание = Содержание;
        //Движение.ВладелецФилиал = ВладелецФилиал;
        //Движение.ОбщийДоступ = ОбщийДоступ;
        Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура] = ВыборкаДетальныеЗаписи.Номенклатура;
        Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады] = ВыборкаДетальныеЗаписи.Склады;
        Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Партии] = ВыборкаДетальныеЗаписи.Партии ;
    
                    
        
        КонецЕсли;
        
    
        
    КонецЦикла;
7 Самая счастливая
 
23.05.14
11:38
субконто3 = партии пустое
8 salvator
 
23.05.14
11:40
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ДобавляемыйДокОпер.Ссылка);
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
   Движение = НадобЗаписей.();
   ...
9 salvator
 
23.05.14
11:41
Движение = НаборЗаписей.Добавить();

** сорри опечатался
10 Самая счастливая
 
23.05.14
11:42
а зачем набор записей?
11 Самая счастливая
 
23.05.14
11:42
он создаёт документ с проводками
12 salvator
 
23.05.14
11:43
Ну и потом после цикла НаборЗаписей.Записать();

(11) Кто это "он"?
13 Самая счастливая
 
23.05.14
11:43
обработка, мой код
14 Самая счастливая
 
23.05.14
11:44
надо механизм придумать
15 salvator
 
23.05.14
11:46
Короче, в чем проблема, что не получается-то?
16 Самая счастливая
 
23.05.14
11:49
картина такая :
Подразделение - Бухгалтерия
Склад         - Основной
Номенклатура  - Номенклатура
(-----)       - 1000
(-----)       - -1000  (с минусом)  

Делаю проводки : Дт 000 Кт 41.09 1000
                 Дт 000 Кт 41.09  -1000
ничего не меняется
17 Самая счастливая
 
23.05.14
11:49
т.е надо убрать остатки
18 Самая счастливая
 
23.05.14
11:50
я их не могу отловить, потому что пустые субконто
19 Самая счастливая
 
23.05.14
11:52
Основной склад   №4 Стер    БУ            67 135,53    67 135,53    
    Кол.            5,000    5,000    
<...>    БУ            67 135,53    65 844,96    1 290,57
    Кол.            5,000    5,000    
<...>    БУ                1 290,57    -1 290,57
    Кол.
20 salvator
 
23.05.14
11:53
Если ВыборкаДетальныеЗаписи.Сумма > 0  Тогда
   ...
   Движение.Сумма = ВыборкаДетальныеЗаписи.Сумма;
ИначеЕсли ВыборкаДетальныеЗаписи.Сумма < 0 Тогда
   ...
   Движение.Сумма = ВыборкаДетальныеЗаписи.Сумма;

и где ты "минусуешь" сумму?
21 Самая счастливая
 
23.05.14
11:54
это второй вариант для проводки Дт 000 Кт 41.09 1000
                 Дт 000 Кт 41.09  -1000
22 Самая счастливая
 
23.05.14
11:59
ситуация такая т.к пустое субконто при расходе не видет сумму, и не закрывает приход, а делает новую запись с минусом
23 FullMoon
 
23.05.14
12:00
(0) Это из-за различия между незаполненным субконто, пустым субконто, неопределено и Null
24 FullMoon
 
23.05.14
12:00
(23) Можно для начала попробовать ТИИ
25 salvator
 
23.05.14
12:00
Перекиньте это "пустое" субконто на одну пустую ручную партию.
26 Самая счастливая
 
23.05.14
12:00
это что?
27 Самая счастливая
 
23.05.14
12:01
не вариант, их много
28 FullMoon
 
23.05.14
12:01
(24) (26) Тестирование и исправление базы
29 Самая счастливая
 
23.05.14
12:03
а другие варианты?
30 FullMoon
 
23.05.14
12:08
Возможно, субконто партии неверного типа или Null. Попробуйте написать запрос через консоль и посмотреть что там у вас висит в действительности.
31 Самая счастливая
 
23.05.14
12:11
Неопределенно
32 FullMoon
 
23.05.14
12:14
(31) А там где с минусом что висит?
Неопределено и пустое субконто определенного типа это разные вещи
33 Самая счастливая
 
23.05.14
12:30
присваиваю Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Партии] = Тип("ДокументСсылка.Партия")
34 Самая счастливая
 
23.05.14
12:31
не помогает
35 aka AMIGO
 
23.05.14
12:40
(32) точно! (34) - см.
а можно и отладчик включить
36 Самая счастливая
 
23.05.14
13:56
не поняла, присвоила неопределенно, все равно не получается
37 aka AMIGO
 
23.05.14
14:48
(36) ИМХО - тебе посоветовали не "присвоить", а посмотреть какой тип у субконто - это можно сделать в отладчике, или отчетом

а уж после этого - решать, как обнулить уже известное (или известные) субконто по счету
38 Самая счастливая
 
23.05.14
15:07
ДокументСсылка.Партия
39 Самая счастливая
 
23.05.14
15:08
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Партии] = ВыборкаДетальныеЗаписи.Партии.Ссылка;
40 Самая счастливая
 
23.05.14
15:08
у Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Партии] тип ДокументСсылка.Партия
41 Самая счастливая
 
23.05.14
15:09
оборотку формирую также(((
42 ptiz
 
23.05.14
15:25
Скорее всего, тип субконто "портится" (становится отличным от того, что присваиваешь по результатам запроса) в подписке при записи регистра бухгалтерии.
Попробуй набор записывать со свойством ОбменДанными.Загрузка = Истина;
43 Самая счастливая
 
23.05.14
15:29
это как?
44 Самая счастливая
 
23.05.14
15:31
напишите код
45 Самая счастливая
 
26.05.14
06:56
не помогает(((
46 vis_tmp
 
27.05.14
21:30
(45) Пробовала (3) ?
Основная теорема систематики: Новые системы плодят новые проблемы.