|
v7: Подскажите по методу ИспользоватьКорСубконто() БУХ Учет 4.5 | ☑ | ||
---|---|---|---|---|
0
CepeLLlka
22.11.16
✎
15:35
|
В общем нужно вытащить корреспонденцию по счету 10.3, чтобы знать сколько с основного склада ГСМ за месяц переместили на другие.
Для этого пишу следующий код: Процедура Сформировать() Склад = ЗначениеИзСтроки("{""Справочник"",""МестаХранения"",""00001""}"); Ит = СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения, Склад, 2); Ит.ИспользоватьСубконто(ВидыСубконто.Материалы,, 1); //Ит.ИспользоватьКорСубконто(ВидыСубконто.МестаХранения,, 1); Ит.ВыполнитьЗапрос(НачДата, КонДата, "10.3",,,3,, "К"); Ит.ВыбратьСчета(); Пока Ит.ПолучитьСчет() = 1 Цикл Ит.ВыбратьСубконто(2,,,,,"Наименование"); Пока Ит.ПолучитьСубконто(2) = 1 Цикл Сообщить(""+Ит.Субконто(2)+" СНД - "+Ит.СНД(3)+" ДО - "+Ит.ДО(3)+" КО - "+Ит.КО(3)+" СКД - "+Ит.СКД(3)); КонецЦикла; КонецЦикла; КонецПроцедуры Мне выдаёт всё четко, как по оборотке, по каждой номенклатуре. Если же добавляю метод - "ИспользоватьКорСубконто", мне сразу же выдаёт совсем другие цифры, оборота по дебету, вообще нет, есть только по кредиту и конечный остаток причём в сумме, по всем субконто сразу. Может я что-то не так пытаюсь сделать, подскажите пожалуйста, как правильно нужно использовать метод ИспользоватьКорСубконто()? |
|||
1
CepeLLlka
22.11.16
✎
15:54
|
Стариков уже не осталось? :)
|
|||
2
CepeLLlka
22.11.16
✎
16:33
|
Делаю всё как по учебнику карочи, не работает :(
http://www.mista.ru/tutor_1c/buh_zapros.htm |
|||
3
CepeLLlka
22.11.16
✎
19:54
|
Нууу? Кто ещё не спит? :)
|
|||
4
asady
22.11.16
✎
20:18
|
Юзай метод КорДО() и КорКО() вместо До() и КО()
|
|||
5
CepeLLlka
22.11.16
✎
21:03
|
(4)Это ничего не меняет, цифры теже
|
|||
6
Хряк
22.11.16
✎
21:11
|
поищи в конфе по корсубконто, поизучай код
ты фсё поймёшь |
|||
7
RoRu
22.11.16
✎
21:12
|
может дело в том, что по местам хранения вообще только количественный учёт ?
|
|||
8
Pahomich
22.11.16
✎
21:12
|
(5) Конструктором попробуй...костяк
|
|||
9
Pahomich
22.11.16
✎
21:15
|
Может попробовать убрать "только по количеству" в запросе
|
|||
10
RoRu
22.11.16
✎
21:26
|
мне вообще непонятно, что ты хочешь получить в таком коде ?
зачем добавлено использовать корр субконто |
|||
11
CepeLLlka
22.11.16
✎
21:38
|
(10)Я получаю данные по 10.3 счету, с отбором по Субконто - "МестаХранения", по элементу - "Основной склад".
Затем делаю выборку по субконто - Номенклатура, то есть хочу понять, сколько той или иной номенклатуры было на начало, пришло, ушло и какое сальдо на конец. И перебирая номенклатуру я хочу получить всё вышеперечисленное в разрезе КоррСубконто - МестаХранения. Другими словами хочу узнать, какое количество товара и на какой склад было перемещено со склада "ОсновнойСклад". |
|||
12
zak555
22.11.16
✎
21:44
|
(11)
Ит = СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ИспользоватьСубконто(ВидыСубконто.Материалы,, 1); Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения, Склад, 2); Ит.ИспользоватьКорСубконто(ВидыСубконто.МестаХранения,, 1); Ит.ВыполнитьЗапрос(НачДата, КонДата, "10.3","10.3",,3,, "К"); Ит.ВыбратьСубконто(1); Пока Ит.ПолучитьСубконто(1) = 1 Цикл //получаем номенклатуру и остатки Ит.ВыбратьКорСубконто(1); Пока Ит.ПолучитьКорСубконто(1) = 1 Цикл //получаем корАналитику МХ и корДО КонецЦикла; КонецЦикла; |
|||
13
CepeLLlka
22.11.16
✎
21:48
|
(12)Да, но меня это не устраивает, я хочу после
Пока Ит.ПолучитьСубконто(1) = 1 Цикл Чтобы можно было получить ДО и КО в общем по этому Субконто, без разреза по КорСубконто, а это не работает почему-то :( |
|||
14
zak555
22.11.16
✎
21:49
|
(13) тебе общая сумма нужна по всем МХ ?
|
|||
15
CepeLLlka
22.11.16
✎
22:16
|
(14)Мне не нужны суммы, мне нужно количество. Общее количество ДО и КО по всей Номенклатуре, а не по МХ.
|
|||
16
CepeLLlka
22.11.16
✎
22:32
|
Мне нужно при переборке Субконто, получать СНД, ДО, КО, и СКД суммой по всем КорСубконто, а когда я уже перебираю КорСубконто получать КорКО по этому КорСубконто. Как в 8ке группировки типа. А тут это не работает. Если я использую - ИспользоватьКорСубконто, то ДО и КО по Субконто уже не работают.
|
|||
17
zak555
22.11.16
✎
22:43
|
(15) т.е. на какие склады тебе информация не нужна ?
|
|||
18
CepeLLlka
22.11.16
✎
22:48
|
(16)Нужна тоже
|
|||
19
CepeLLlka
22.11.16
✎
22:48
|
(17)Зак, ты снова шутишь, или я непонятно объясняю?
|
|||
20
zak555
22.11.16
✎
22:51
|
(18) так чем тебя мой код не устраивает ?
на первой выборке получаешь инфу о номенклатуре и начальных остатках и сколько итого ушло на все МХ на второй группировке смотришь на какие склады скинулось и сколько |
|||
21
CepeLLlka
22.11.16
✎
22:55
|
(20)Не получает сколько итого ушло не показывает, возвращает 0, что КО, что ДО. А мне ещё нужно сколько всего на Склад = ЗначениеИзСтроки("{""Справочник"",""МестаХранения"",""00001""}");
Вот это то и неустраивает. |
|||
22
CepeLLlka
22.11.16
✎
22:56
|
(21)+ .... А мне ещё надо сколько всего ПРИШЛО на Склад = ЗначениеИзСтроки("{""Справочник"",""МестаХранения"",""00001""}");...
Недописал.. |
|||
23
zak555
22.11.16
✎
22:59
|
ты похоже сам не понимаешь, что хочешь
с 12 ты можешь получить для выбранного склада 1. остатки позиции начало и конец 2. на какие склады делалось перемещение по данному счету и в каком объёме |
|||
24
CepeLLlka
22.11.16
✎
23:00
|
(23)Да, а мне надо ещё в 1. получать сколько всего пришло на этот склад. А этого нет.
|
|||
25
zak555
22.11.16
✎
23:01
|
(24) сколько поступило от поставщика ?
|
|||
26
CepeLLlka
22.11.16
✎
23:03
|
(25)Да, именно. Потому что то что ты пишешь не работает, Остаток на конец показывает неверный, без учёта приходов, даже с обороткой не сходится.
|
|||
27
CepeLLlka
22.11.16
✎
23:03
|
(25)Вот так мне надо. Если конечно код нормально отразится.
Процедура Сформировать() Склад = ЗначениеИзСтроки("{""Справочник"",""МестаХранения"",""00001""}"); Ит = СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения, Склад, 2); Ит.ИспользоватьСубконто(ВидыСубконто.Материалы,, 1); Ит.ИспользоватьКорСубконто(ВидыСубконто.МестаХранения,, 1); Ит.ВыполнитьЗапрос(НачДата, КонДата, "10.3",,,3,, "К"); Ит.ВыбратьСчета(); Пока Ит.ПолучитьСчет() = 1 Цикл Ит.ВыбратьСубконто(2,,,,,"Наименование"); Пока Ит.ПолучитьСубконто(2) = 1 Цикл Ит.СНД(3)//Получаю начальный остаток; Это работает Ит.ДО(3) //Получаю сколько всего пришло на основной склад за период; Это НЕ РАБОТАЕТ. ИТ.СКД(3) //Получаю остаток на конец; Вычисляет неправильно, так как ДО = 0, А КО отрабаывает, показывает всё в минуса. Дальше Делаю переборку по КорСубконто Пока Ит.ПолучитьКорСубконто(1) = 1 Цикл //Перебираю все КорСубконто Ит.КорКО(3) //Получаю сколько перемещенно на конкретное КорСубконто и т.д. по циклу КонецЦикла КонецЦикла; КонецЦикла; КонецПроцедуры |
|||
28
zak555
22.11.16
✎
23:08
|
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.Материалы,, 1); Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения, Склад, 2); Ит.ИспользоватьКорСубконто(,, 1); Ит.ВыполнитьЗапрос(НачДата, КонДата, "10.3",СЗ_из_10_6_и_60,,3,, "К"); Ит.ВыбратьСубконто(1); Пока Ит.ПолучитьСубконто(1) = 1 Цикл //получаем номенклатуру и остатки ит.ВыбратьКорСчета() Пока Ит.ПолучитьКорСчет()=1 Цикл Если Ит.Счет = СчетПоКоду("10.6") Тогда //получаем как раньше по МХ Ит.ВыбратьКорСубконто(1); Пока Ит.ПолучитьКорСубконто(1) = 1 Цикл //получаем корАналитику МХ и корДО КонецЦикла; Иначе //получаем сколько пришло от поставщика -- //Ит.КорДо() КонецЦикла; |
|||
29
CepeLLlka
22.11.16
✎
23:14
|
(28)Спс, Зак. Завтра попробую. Только не буду перебирать счета. Там вроде жёстко можно указать после Ит.ВыбратьКорСчета(), Ит.ПолучитьСчет("60"), а потом другой счёт и перебирать корсубконто.
Огромное тебе спасибо, надеюсь всё получится. Не люблю когда не получается, грустно становится сразу очень :( |
|||
30
zak555
22.11.16
✎
23:16
|
(29) так у тебя в сз будет только два счёта
|
|||
31
CepeLLlka
23.11.16
✎
11:20
|
(30)Без указания вида КорСубконто, у когда идёт перебор КорСубконто, то он идёт по номенклатуре, а не по контрагентам.. Такие дела..
|
|||
32
zak555
23.11.16
✎
11:23
|
(31) ааа
итспользуй два раза ИспользоватьКорСубонто и иди по второй группировке, т.к. на счёте 10.6 аналитика номенклатура и мх, а на 60 -- контрагент договор |
|||
33
CepeLLlka
23.11.16
✎
11:26
|
(32)Тоже пробовал, 2 раза использую метод - "ИспользоватьКорСубонто" один раз по Контрагентам, другой раз по МестамХранения. Тогда вообще ничего не возвращает. Даже Ит.ВыбратьКорСчета() возвращает 0, при условии что в выполнить запрос у меня указано "10.1,60.1"..
В общем 1С 77 это такое себе развлечение, танцы с бубнами тут присутствуют :) Сижу вот методом проб и ошибок пытаюсь получить что-нибудь.. |
|||
34
zak555
23.11.16
✎
11:30
|
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.Материалы,, 1); Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения, Склад, 2); Ит.ИспользоватьКорСубконто(,, ); Ит.ИспользоватьКорСубконто(,, ); // СЗ_из_10_6_и_60 --- список значений из двух значений счетПоКоду Ит.ВыполнитьЗапрос(НачДата, КонДата, "10.3",СЗ_из_10_6_и_60,,3,, "К"); Ит.ВыбратьСубконто(1); Пока Ит.ПолучитьСубконто(1) = 1 Цикл //получаем номенклатуру и остатки ит.ВыбратьКорСчета() Пока Ит.ПолучитьКорСчет()=1 Цикл Если Ит.КорСчет = СчетПоКоду("10.6") Тогда //получаем как раньше по МХ Ит.ВыбратьКорСубконто(2); Пока Ит.ПолучитьКорСубконто(2) = 1 Цикл //получаем корАналитику МХ и корКО КонецЦикла; Иначе //получаем сколько пришло от поставщика -- //Ит.КорДо() КонецЦикла; |
|||
35
CepeLLlka
23.11.16
✎
13:39
|
Ит.ВыбратьКорСубконто(2);
Пока Ит.ПолучитьКорСубконто(2) = 1 Цикл //получаем корАналитику МХ и корКО Второй раз не вызывается метод - Ит.ВыбратьКорСубконто(2), возвращает 0. Так это работает видимо только с явным указанием вида субконто. |
|||
36
CepeLLlka
23.11.16
✎
13:57
|
(35)+А если явно указать два раза, разные КорСубконто, БухИтоги не выберут из базы ничего видимо, так как нет таких счетов корреспондирующих у которых будет такие два субконто как МестоХранения и Контрагент сразу.
|
|||
37
CepeLLlka
23.11.16
✎
15:07
|
Вот так только получилось...
Процедура Сформировать() Склад = ЗначениеИзСтроки("{""Справочник"",""МестаХранения"",""00001""}"); СкладБелянцевИВ = ЗначениеИзСтроки("{""Справочник"",""МестаХранения"",""00265""}"); Ит1 = СоздатьОбъект("БухгалтерскиеИтоги"); Ит1.ИспользоватьСубконто(ВидыСубконто.МестаХранения, Склад, 2); Ит1.ИспользоватьСубконто(ВидыСубконто.Материалы,, 1); Ит1.ВыполнитьЗапрос(НачДата, КонДата,"10.3",,,3,, "К"); Ит1.ВыбратьСчета(); Ит = СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения, Склад, 2); Ит.ИспользоватьСубконто(ВидыСубконто.Материалы,, 1); Ит.ИспользоватьКорСубконто(ВидыСубконто.МестаХранения,, 1); Ит.ВыполнитьЗапрос(НачДата, КонДата,"10.3",,,2,, "К"); Ит.ВыбратьСчета(); Пока Ит.ПолучитьСчет() = 1 Цикл Ит1.ПолучитьСчет(Ит.Счет); Ит1.ВыбратьСубконто(2); Ит.ВыбратьСубконто(2,,,,,"Наименование"); Пока Ит.ПолучитьСубконто(2) = 1 Цикл Ит1.ПолучитьСубконто(2,,Ит.Субконто(2)); Сообщить(""+Ит1.Субконто(2)+" Остаток на начало - "+Ит1.СНД(3)+" Приход - "+Ит1.ДО(3)+" Конечный остаток - "+Ит1.СКД(3)); Ит.ВыбратьКорСубконто(1); Пока Ит.ПолучитьКорСубконто(1) = 1 Цикл Сообщить(""+Ит.Субконто(2)+" ДО - "+Ит.КорДО(3)+" КО - "+Ит.КорКО(3)+" "+Ит.КорСубконто(1)); КонецЦикла; КонецЦикла; КонецЦикла; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |