Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
15 Дек 2017, 03:54
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Не могу рассчитать временные итоги после ТА!  (Прочитано 7284 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Iven

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-08-11
  • Сайт: 
Имеется отчет - оборот товара с возможностью выбора периода времени
Выдает сегодня ошибку, указанную в теме, если указать дату формирования отчета по 10 или по 11(сегодняшнее) нынешнего месяца.

	РассчитатьРегистрыНа(начДата);
нс=0;
СпрТ.ВыбратьЭлементы();
Пока СпрТ.ПолучитьЭлемент() = 1 Цикл
Если ВыбТовары.Принадлежит(СпрТ.ТекущийЭлемент())=1 Тогда
Если СпрТ.ЭтоГруппа()=1 Тогда
    продолжить;
КонецЕсли;
ост = Рег.СводныйОстаток(Константа.ОсновнаяФирма, Спрт.ТекущийЭлемент(), , "ОстатокТовара");                       
нс=нс+1;
ТЗ.НоваяСтрока(нс);
ТЗ.УстановитьЗначение(нс,1,Спрт.ТекущийЭлемент());
ТЗ.УстановитьЗначение(нс,2,ост);
ТЗ.УстановитьЗначение(нс,3,0); 
ТЗ.УстановитьЗначение(нс,4,0);
ТЗ.УстановитьЗначение(нс,5,0); 
ТЗ.УстановитьЗначение(нс,6,СпрТ.Родитель);         
// Сообщить(СокрЛП(СпрТ.ТекущийЭлемент()) + "  " + ост);
КонецЕсли;
КонецЦикла;
   

РассчитатьРегистрыПо(конДата);

СпрТ.ВыбратьЭлементы();
Пока СпрТ.ПолучитьЭлемент() = 1 Цикл
Если ВыбТовары.Принадлежит(СпрТ.ТекущийЭлемент())=1 Тогда
Если СпрТ.ЭтоГруппа()=1 Тогда
    продолжить;
КонецЕсли;
ост = Рег.СводныйОстаток(Константа.ОсновнаяФирма, Спрт.ТекущийЭлемент(), , "ОстатокТовара");                       
нс=нс+1;
ТЗ.НоваяСтрока(нс);
ТЗ.УстановитьЗначение(нс,1,Спрт.ТекущийЭлемент());
ТЗ.УстановитьЗначение(нс,2,0); 
ТЗ.УстановитьЗначение(нс,3,0);
ТЗ.УстановитьЗначение(нс,4,0);
ТЗ.УстановитьЗначение(нс,5,ост);
ТЗ.УстановитьЗначение(нс,6,СпрТ.Родитель);         
// Сообщить(СокрЛП(СпрТ.ТекущийЭлемент()) + "  " + ост);
КонецЕсли;
КонецЦикла;

К сожалению, с 1с только знакомлюсь.
По сему прошу помочь и ответить как чайнику.


Оффлайн DDD

  • ****
  • Сообщений: 374
  • РЕПУТАЦИЯ: 23
  • КПД: 6%
  • Регистрация: 2008-07-12
  • Сайт: 
После ТА и нельзя получить. Если просто раздражает эта ошибка, когда пользователь задает дату после ТА, то поставьте в код проверку на ТА (используя ПолучитьДатуТА() ) и программа сама скорректирует дату до максимально возможной.

Оффлайн Iven

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-08-11
  • Сайт: 
понятно что после та никто и не пытается - пытаются за сегодня и за вчера
как сделать чтобы можно было применять вчерашнюю и сегодняшнюю даты ?

ПолучитьДатуТА() - будет сегодняшняя ?

тогда проверка что-то вроде

Если конДата > ПолучитьДатуТА() Тогда
конДата = ПолучитьДатуТА()

что-то вроде ?

Процедура Сформировать()  
СпрТ = СоздатьОбъект("Справочник.Номенклатура");
ДокР = СоздатьОБъект("Документ.РасходнаяНакладная");
ДокП = СоздатьОБъект("Документ.ПриходнаяНакладная");
ТЗ = СоздатьОБъект("ТаблицаЗначений");
ТЗ.КоличествоКолонок(6);
Таб = СоздатьОБъект("Таблица");
Рег = СоздатьОбъект("Регистр.ОстаткиТоваров");   
Рег.ВременныйРасчет(1); 

Если ПустоеЗначение(начДата) = 1 Тогда
        Предупреждение("НЕ указана дата начала отчета !", 30);
        Возврат;
    ИначеЕсли начДата > конДата Тогда
        Предупреждение("Дата начала отчета больше чем дата окончания !", 30);
        Возврат;
    ИначеЕсли конДата > ПолучитьДатуТА() Тогда
        конДата = ПолучитьДатуТА();
    КонецЕсли;

РассчитатьРегистрыНа(начДата);
нс=0;
СпрТ.ВыбратьЭлементы();
Пока СпрТ.ПолучитьЭлемент() = 1 Цикл
Если ВыбТовары.Принадлежит(СпрТ.ТекущийЭлемент())=1 Тогда
Если СпрТ.ЭтоГруппа()=1 Тогда
    продолжить;
КонецЕсли;
ост = Рег.СводныйОстаток(Константа.ОсновнаяФирма, Спрт.ТекущийЭлемент(), , "ОстатокТовара");                       
нс=нс+1;
ТЗ.НоваяСтрока(нс);
ТЗ.УстановитьЗначение(нс,1,Спрт.ТекущийЭлемент());
ТЗ.УстановитьЗначение(нс,2,ост);
ТЗ.УстановитьЗначение(нс,3,0); 
ТЗ.УстановитьЗначение(нс,4,0);
ТЗ.УстановитьЗначение(нс,5,0); 
ТЗ.УстановитьЗначение(нс,6,СпрТ.Родитель);         
// Сообщить(СокрЛП(СпрТ.ТекущийЭлемент()) + "  " + ост);
КонецЕсли;
КонецЦикла;
   

РассчитатьРегистрыПо(конДата);

СпрТ.ВыбратьЭлементы();
Пока СпрТ.ПолучитьЭлемент() = 1 Цикл
Если ВыбТовары.Принадлежит(СпрТ.ТекущийЭлемент())=1 Тогда
Если СпрТ.ЭтоГруппа()=1 Тогда
    продолжить;
КонецЕсли;
ост = Рег.СводныйОстаток(Константа.ОсновнаяФирма, Спрт.ТекущийЭлемент(), , "ОстатокТовара");                       
нс=нс+1;
ТЗ.НоваяСтрока(нс);
ТЗ.УстановитьЗначение(нс,1,Спрт.ТекущийЭлемент());
ТЗ.УстановитьЗначение(нс,2,0); 
ТЗ.УстановитьЗначение(нс,3,0);
ТЗ.УстановитьЗначение(нс,4,0);
ТЗ.УстановитьЗначение(нс,5,ост);
ТЗ.УстановитьЗначение(нс,6,СпрТ.Родитель);         
// Сообщить(СокрЛП(СпрТ.ТекущийЭлемент()) + "  " + ост);
КонецЕсли;
КонецЦикла;

этот самопал не хочет всеравно работать

первое если срабатывает когда указываю начальную дату выше конечной, а остальные ...
указываю 10 число - показывает ошибку указанную в теме, указываю 11 дату и выше - в окошке конечной даты перекидывает на 10 число и показывает снова таки упомянутую ошибку

просил же - для чайника ответ )

вот почему оно не хочет за 10 число делать ? и почему нельзя по сегодняшнее 11 число ? почему ПолучитьДатуТА() равна 10 числу ?

Оффлайн DDD

  • ****
  • Сообщений: 374
  • РЕПУТАЦИЯ: 23
  • КПД: 6%
  • Регистрация: 2008-07-12
  • Сайт: 
А у вас чему вообще ТА равна? 10? Зайдите монопольно и посмотрите в Операции - Управление оперативными итогами И поменяйте там. Можно установить равной концу текущего месяца.

Оффлайн Iven

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-08-11
  • Сайт: 
c проблемой вчерашнего дня разобрались - действительно провтыкал этот момент - там стояло 10 а не 11 число
теперь за 10 число считает
а как сделать так чтобы считало за сегодняшнее 11 число ? если я его указываю то продолжает выкидывать ошибку


Оффлайн Iven

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-08-11
  • Сайт: 
а можно пару слов о самих Управление оперативными итогами ?
там если ставить дату выше установленной выскакивают две колонки - по привычке все галочки я там конечно же ставлю ) - вот если бы кто еще объяснил что это такое и надо ли там ставить эти самые галочки ?

если я там выставлю 12 число то полагаю за сегодняшнее 11 отчет будет формироваться, но это по идее не верное решение - нужно понять почему не формируется отчет по дате ПолучитьДатуТА()


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
175 Сообщений
ilyay ilyay
69 Сообщений
oleg-x
48 Сообщений
alex0402
44 Сообщений
andron81_81
38 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
31 Сообщений
BuhRust
30 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 173
  • Точка Скрытых: 0
  • Точка Пользователей: 3
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal