|   |   | 
| 
 | 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,,ТекущийЭлемент())); КонецЕсли; | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |