|
v7: БИ не берут остатки в форме списка справочника. | ☑ | ||
---|---|---|---|---|
0
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" или замена запятой на ; ну тоже никаких сдвигов. где тут может быть зарыта собацюга? |
|||
1
dedmoroz777
11.06.20
✎
18:26
|
А что в реквизите "Счет" в справочнике ТМЦ?
|
|||
2
HawkEye
11.06.20
✎
18:32
|
(0) анализ счета что показывает?
неужели трудно локализовать проблему? "бубны со кодом счета был он и 04 и 4 и 40 затем стал еще и 40.0" - нафига?! пытаешься угадать код?? |
|||
3
lals
11.06.20
✎
19:24
|
(1) реквизит типа "счет" справочник то один просто у разных ТМЦ разные счета хранения
(2) Анализ счета как раз показывает наличие остатков есть даже "красные" ну там пересортица была бубны, просто подумалось что может ему не нравится 04 без субсчетов поэкс перементировал по разному результат тот же |
|||
4
lals
11.06.20
✎
19:30
|
более того если строка возрата выглядит так
Возврат "остаток " + Строка(Ит.СКД(ТекущийЭлемент().Счет,3,,,ТекущийЭлемент())) + " на сумму " + Строка(Ит.СКД(ТекущийЭлемент().Счет,1,,,ТекущийЭлемент()))+" счет -"+ТекущийЭлемент().Счет то прекрасно сообщает какой у данного элемента счет хранения |
|||
5
Birmingem
11.06.20
✎
19:31
|
Правильно говорит HawkEye, надо локализовать проблему.
Если в Ит.Рассчитать(РабочаяДата(),РабочаяДата(),"40.0,20.7") указать только один счет 40.0, остатки дает или нет? Если написать СчетПоКоду("40.0") что дает? |
|||
6
lals
11.06.20
✎
19:33
|
(5) локализовал оставил только 40.0 перестал выводить по 20.7 но по прежнему не дает по 40.0
сейчас попробую о счет по коду |
|||
7
lals
11.06.20
✎
19:37
|
СчетПоКоду("40.0") результат тот же
с одним сороковым |
|||
8
Birmingem
11.06.20
✎
19:40
|
Нет, я не про то. Метод СчетПоКоду("40.0") в отладчике вообще результат дает? Находит такой счет или нет?
Может тупо номер счета неправильно пишешь. |
|||
9
Birmingem
11.06.20
✎
19:43
|
И еще, сформируй оборотку по счету 40.0 за один день. Остатки конечные по номенклатуре есть?
|
|||
10
lals
11.06.20
✎
19:44
|
https://drive.google.com/file/d/1xe0b1Ow5-EueLh-0tcSSNIPBem7jBlgp/view?usp=sharing
Скрин плана счетов в конфигураторе |
|||
11
Birmingem
11.06.20
✎
19:45
|
И еще, я бы лучше использовал метод Ит.ВыполнитьЗапрос()
(10)Нет у меня регистрации в гугле |
|||
12
dedmoroz777
11.06.20
✎
19:47
|
Кстати, остаток он показывает на конец месяца, если что
|
|||
13
lals
11.06.20
✎
19:50
|
(9)
оборотка за один день дает остатки как входящие так и конечные по дебету и красные и черные оборотов за день нет (12) ПериодД() тоже был |
|||
14
dedmoroz777
11.06.20
✎
19:53
|
(13) Зачем период там вообще нужен?
И скрин плана счетов не видно. Доступа нет |
|||
15
Birmingem
11.06.20
✎
19:54
|
40.0 это группа или субсчет?
Вообще никогда не пользовался Ит.Рассчитать(), но для него вроде есть СКДРС() по субконто. Советую все таки получать остатки через Ит.ВыполнитьЗапрос(). Тут уже не ошибешься. И есть ВключатьСубсчета(). |
|||
16
tgu82
11.06.20
✎
20:04
|
(15) Только через ВыполнитьЗапрос, у него очень много возможностей в том числе и установка различных фильтров
|
|||
17
lals
11.06.20
✎
20:29
|
(11) щас буду пробовать
|
|||
18
lals
11.06.20
✎
20:33
|
поставл вместо Рассчитаь() ВыполнитьЗапрос()
стало бвыдавать ошибку функции Возврат Строка(Ит.СКД(ТекущийЭлемент().Счет,3,,,ТекущийЭлемент())); {Справочник.ТМЦ.ФормаСписка.ФормаСписка.Модуль(8)}: Слишком много параметров передано при вызове функции/процедуры объекта |
|||
19
lals
11.06.20
✎
20:42
|
даже вот в таком виде дает итоги по 20.7 и еикаких по 40.1
Перем Ит; Функция Остаток() Если (ТекущийЭлемент().Выбран()=0) Тогда Возврат ""; КонецЕсли; Возврат Строка(Ит.СКД(ТекущийЭлемент().Счет,3,,,ТекущийЭлемент())); КонецФункции //====================================================================== Процедура ПриОткрытии() Ит = СоздатьОбъект("БухгалтерскиеИтоги"); КонецПроцедуры // ПриОткрытии |
|||
20
lals
11.06.20
✎
20:43
|
ИЕкаких = Никаких
|
|||
21
lals
11.06.20
✎
20:48
|
ссорри 40.0
|
|||
22
dedmoroz777
11.06.20
✎
20:58
|
Покажи уже оборотку по твоему 40-му счёту. Только не в гуглдрайв её выкладывай
|
|||
23
lals
11.06.20
✎
21:31
|
куда положить???
|
|||
24
lals
11.06.20
✎
21:37
|
||||
25
lals
11.06.20
✎
21:37
|
оборотка
|
|||
26
lals
11.06.20
✎
21:38
|
план счетов
https://mega.dp.ua/ru/v75swCVz |
|||
27
lals
11.06.20
✎
21:52
|
Пошли спать наверное, завтра со свежими силами
|
|||
28
dedmoroz777
12.06.20
✎
04:07
|
Понятно. У вас на 40.0 ТМЦ идёт первым субконто. Одна запятая лишняя: Возврат Строка(Ит.СКД(ТекущийЭлемент().Счет,3,,ТекущийЭлемент()));
введите две переменные в ПриОткрытии(): Сч20 = СчётПоКоду("20.7"); Сч40 = СчётПоКоду("40.0"); В функции проверяйте какой счет в ТМЦ и выводите нужное: счетУчета = ТекущийЭлемент().Счет; Возврат ?(счетУчета = 20, Ит.СКД(Сч20,3,,,ТекущийЭлемент()), Ит.СКД(Сч40,3,,ТекущийЭлемент())); |
|||
29
dedmoroz777
12.06.20
✎
04:09
|
Вообще, прикольно: "Остаток 4 підготовкi коліс до ремонту"
|
|||
30
lals
12.06.20
✎
04:30
|
(29) конечно прикольно. там в справочнике еще не такоеесть а по поводу первого и второго субконто вы точно правы,
сейчас проверю отпишусь |
|||
31
lals
12.06.20
✎
04:45
|
dedmoroz777 У Вас зрение оказалось лучше всех (о себе я вообще не говорю протупил однозначно)
В самой первой строке темы было написано: " разница в счетах только одна у счета 20.7 два субконто - места хранения и ТМЦ у счета 40.0 только одно ТМЦ" Всеравно всем спасибо. |
|||
32
lals
12.06.20
✎
04:49
|
И поскольку юзеру надо показать не только количество но и сумму а то умудряются оприходовать 8 штук на 800 а в расход пустить 8 штук на 400 то окончательный код теперь выглядит так
Если ТекущийЭлемент().Счет = СчетПоКоду("20.7") Тогда Возврат "остаток " + Строка(Ит.СКД(ТекущийЭлемент().Счет,3,,,ТекущийЭлемент())) + " на сумму " + Строка(Ит.СКД(ТекущийЭлемент().Счет,1,,,ТекущийЭлемент())); ИначеЕсли ТекущийЭлемент().Счет = СчетПоКоду("40.0") Тогда Возврат "остаток " + Строка(Ит.СКД(ТекущийЭлемент().Счет,3,,ТекущийЭлемент())) + " на сумму " + Строка(Ит.СКД(ТекущийЭлемент().Счет,1,,ТекущийЭлемент())); КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |