Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: БИ не берут остатки в форме списка справочника.

v7: БИ не берут  остатки в форме списка справочника.
Я
   lals
 
11.06.20 - 17:29
есть  фактически только два счета на которых могут храниться ТМЦ, разница в счетах только одна у счета 20.7 два субконто - места хранения и ТМЦ у счета 40.0 только одно ТМЦ
Вот такой код прописан в модуле формы справочника
Функция Остаток()
    Если (ТекущийЭлемент().Выбран()=0) Тогда
        Возврат "";
    КонецЕсли;
        Возврат "остаток " + Строка(Ит.СКД(ТекущийЭлемент().Счет,3,,,ТекущийЭлемент())) + "   на сумму " + Строка(Ит.СКД(ТекущийЭлемент().Счет,1,,,ТекущийЭлемент()));
КонецФункции
//======================================================================
Процедура ПриОткрытии()
    Ит = СоздатьОбъект("БухгалтерскиеИтоги");
    Ит.ПериодМ(РабочаяДата());
    Ит.ИспользоватьСубконто(ВидыСубконто.ТМЦ);
    Ит.Рассчитать(РабочаяДата(),РабочаяДата(),"40.0,20.7");
КонецПроцедуры // ПриОткрытии
проблемма в том что по счету 20.7 все остатки выбирает без проблем где бы они не хранились (это и несущественно) а вот по 40.0 вообще из не видит  ни у одной позиции
Использовал бубны со  кодом счета был он и 04 и 4 и 40 затем стал еще и 40.0 результат один и тот же замена местами в строке  "40.0,20.7" или замена запятой на  ; ну тоже никаких сдвигов.  где тут может быть зарыта собацюга?
   dedmoroz777
 
1 - 11.06.20 - 18:26
А что в реквизите "Счет" в справочнике ТМЦ?
   HawkEye
 
2 - 11.06.20 - 18:32
(0) анализ счета что показывает?
неужели трудно локализовать проблему?

"бубны со  кодом счета был он и 04 и 4 и 40 затем стал еще и 40.0" - нафига?! пытаешься угадать код??
   lals
 
3 - 11.06.20 - 19:24
(1)  реквизит типа "счет" справочник то один  просто у разных ТМЦ разные счета хранения
(2) Анализ счета как раз показывает наличие остатков  есть даже "красные" ну там пересортица была
бубны,  просто подумалось что может ему не нравится 04 без субсчетов поэкс перементировал  по разному результат тот же
   lals
 
4 - 11.06.20 - 19:30
более того  если строка возрата выглядит так
  Возврат "остаток " + Строка(Ит.СКД(ТекущийЭлемент().Счет,3,,,ТекущийЭлемент())) + "   на сумму " + Строка(Ит.СКД(ТекущийЭлемент().Счет,1,,,ТекущийЭлемент()))+" счет -"+ТекущийЭлемент().Счет
 то прекрасно сообщает какой у данного элемента счет хранения
   Birmingem
 
5 - 11.06.20 - 19:31
Правильно говорит HawkEye, надо локализовать проблему.
Если в Ит.Рассчитать(РабочаяДата(),РабочаяДата(),"40.0,20.7") указать только один счет 40.0, остатки дает или нет?
Если написать СчетПоКоду("40.0") что дает?
   lals
 
6 - 11.06.20 - 19:33
(5) локализовал оставил только  40.0 перестал выводить  по 20.7 но по прежнему не дает  по 40.0
сейчас попробую о счет по коду
   lals
 
7 - 11.06.20 - 19:37
СчетПоКоду("40.0") результат тот же
 с одним сороковым
   Birmingem
 
8 - 11.06.20 - 19:40
Нет, я не про то. Метод СчетПоКоду("40.0") в отладчике вообще результат дает? Находит такой счет или нет?
Может тупо номер счета неправильно пишешь.
   Birmingem
 
9 - 11.06.20 - 19:43
И еще, сформируй оборотку по счету 40.0 за один день. Остатки конечные по номенклатуре есть?
   lals
 
10 - 11.06.20 - 19:44
https://drive.google.com/file/d/1xe0b1Ow5-EueLh-0tcSSNIPBem7jBlgp/view?usp=sharing
Скрин плана счетов в конфигураторе
   Birmingem
 
11 - 11.06.20 - 19:45
И еще, я бы лучше использовал метод Ит.ВыполнитьЗапрос()

(10)Нет у меня регистрации в гугле
   dedmoroz777
 
12 - 11.06.20 - 19:47
Кстати, остаток он показывает на конец месяца, если что
   lals
 
13 - 11.06.20 - 19:50
(9)
оборотка за один день  дает остатки  как входящие так и конечные по дебету и красные и черные  оборотов за день нет
(12) ПериодД()
 тоже был
   dedmoroz777
 
14 - 11.06.20 - 19:53
(13) Зачем период там вообще нужен?
И скрин плана счетов не видно. Доступа нет
   Birmingem
 
15 - 11.06.20 - 19:54
40.0 это группа или субсчет?

Вообще никогда не пользовался Ит.Рассчитать(), но для него вроде есть СКДРС() по субконто.

Советую все таки получать остатки через Ит.ВыполнитьЗапрос(). Тут уже не ошибешься. И есть ВключатьСубсчета().
   tgu82
 
16 - 11.06.20 - 20:04
(15) Только через ВыполнитьЗапрос, у него очень много возможностей в том числе и установка различных фильтров
   lals
 
17 - 11.06.20 - 20:29
(11) щас буду пробовать
   lals
 
18 - 11.06.20 - 20:33
поставл вместо Рассчитаь()  ВыполнитьЗапрос()
 стало бвыдавать ошибку  функции 
Возврат Строка(Ит.СКД(ТекущийЭлемент().Счет,3,,,ТекущийЭлемент()));
{Справочник.ТМЦ.ФормаСписка.ФормаСписка.Модуль(8)}: Слишком много параметров передано при вызове функции/процедуры объекта
   lals
 
19 - 11.06.20 - 20:42
даже вот в таком виде дает итоги по 20.7 и еикаких по 40.1
Перем Ит;

Функция Остаток()
    Если (ТекущийЭлемент().Выбран()=0) Тогда
        Возврат "";
    КонецЕсли;
    Возврат Строка(Ит.СКД(ТекущийЭлемент().Счет,3,,,ТекущийЭлемент()));
КонецФункции
//======================================================================

Процедура ПриОткрытии()
    Ит = СоздатьОбъект("БухгалтерскиеИтоги");
КонецПроцедуры// ПриОткрытии
   lals
 
20 - 11.06.20 - 20:43
ИЕкаких = Никаких
   lals
 
21 - 11.06.20 - 20:48
ссорри 40.0
   dedmoroz777
 
22 - 11.06.20 - 20:58
Покажи уже оборотку по твоему 40-му счёту. Только не в гуглдрайв её выкладывай
   lals
 
23 - 11.06.20 - 21:31
куда положить???
   lals
 
24 - 11.06.20 - 21:37
   lals
 
25 - 11.06.20 - 21:37
оборотка
   lals
 
26 - 11.06.20 - 21:38
план счетов
https://mega.dp.ua/ru/v75swCVz
   lals
 
27 - 11.06.20 - 21:52
Пошли спать наверное, завтра со свежими силами
   dedmoroz777
 
28 - 12.06.20 - 04:07
Понятно. У вас на 40.0 ТМЦ идёт первым субконто. Одна запятая лишняя: Возврат Строка(Ит.СКД(ТекущийЭлемент().Счет,3,,ТекущийЭлемент()));
введите две переменные в ПриОткрытии(): Сч20 = СчётПоКоду("20.7"); Сч40 = СчётПоКоду("40.0");
В функции проверяйте какой счет в ТМЦ и выводите нужное:
счетУчета = ТекущийЭлемент().Счет;
Возврат ?(счетУчета = 20, Ит.СКД(Сч20,3,,,ТекущийЭлемент()), Ит.СКД(Сч40,3,,ТекущийЭлемент()));
   dedmoroz777
 
29 - 12.06.20 - 04:09
Вообще, прикольно: "Остаток 4 підготовкi коліс до ремонту"
   lals
 
30 - 12.06.20 - 04:30
(29)  конечно прикольно.  там в справочнике еще не такоеесть  а по поводу первого и второго субконто  вы точно правы,
сейчас проверю отпишусь
 
 Рекламное место пустует
   lals
 
31 - 12.06.20 - 04:45
dedmoroz777 У Вас зрение оказалось лучше всех (о себе я вообще не говорю протупил однозначно)
В самой первой строке  темы было написано:
" разница в счетах только одна у счета 20.7 два субконто - места хранения и ТМЦ у счета 40.0 только одно ТМЦ"
Всеравно всем спасибо.
   lals
 
32 - 12.06.20 - 04:49
И поскольку юзеру надо показать не только количество но и сумму а то умудряются оприходовать 8  штук на 800 а в расход пустить 8 штук  на 400  то  окончательный код теперь выглядит так
Если ТекущийЭлемент().Счет = СчетПоКоду("20.7") Тогда
        Возврат "остаток " + Строка(Ит.СКД(ТекущийЭлемент().Счет,3,,,ТекущийЭлемент())) + "   на сумму " + Строка(Ит.СКД(ТекущийЭлемент().Счет,1,,,ТекущийЭлемент()));
    ИначеЕсли ТекущийЭлемент().Счет = СчетПоКоду("40.0") Тогда
        Возврат "остаток " + Строка(Ит.СКД(ТекущийЭлемент().Счет,3,,ТекущийЭлемент())) + "   на сумму " + Строка(Ит.СКД(ТекущийЭлемент().Счет,1,,ТекущийЭлемент()));
    КонецЕсли;


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.