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

Автор Тема: Периодическая константа в 1с 8.1  (Прочитано 6409 раз)

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

Оффлайн Zeratul

  • **
  • Сообщений: 91
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2010-06-02
  • Сайт: 
Добрый день!Существует константа СезонГорючего,тип данных перечисления!
В данной константе человек выбирает летний либо зимний, в зависимости от выбранного значения, при расчете нормы расходы бензина в путлисте, меняется норма расхода бензина!
Так вот вопрос, мне нужно сделать следующее:
установить дату начала зимнего периода, то есть если человек делает пут листы с 1 декабря, то автоматом берется норма зимняя, если до этого то берется норма летняя!
Как мне добавить данную константу в регистрсведений, чтобы все изменения регистрировались?
Или может в модуле документа переписать код процедуры рассчитать?
Процедура ПроцедураРассчитать(Элемент)
   Если Константы.СезонГорючего.Получить()=Перечисления.СезонТС.Зима тогда 
      НормаРасхода = ТранспортноеСредство.НормаГорючегоЗимняя;
   иначе
      НормаРасхода =  ТранспортноеСредство.НормаГорючего;
   КонецЕсли;   
   РасходГорючегоНорма = НормаРасхода * ПробегОбщий / 100;
   РасходГорючегоФакт = НормаРасхода * ПробегОбщий / 100;
   СпидометрОкончание = СпидометрНачало+ПробегОбщий;
   ГорючееОкончание=ГорючееНачало+Заправлено-РасходГорючегоФакт;
   
КонецПроцедуры

Вместо константы брать данные из РС?
Подскажите пожалуйста как сделать!


Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
А зачем вам здесь константа?

Сделайте периодический регистр сведений. поставьте в измерение ваше перечисление.
Добавляйте туда записи: 1 декабря - то-то и т.п.
А где нужно получайте срез последних на дату.

Оффлайн Zeratul

  • **
  • Сообщений: 91
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2010-06-02
  • Сайт: 
Процедура ПроцедураРассчитать(Элемент)
   Если РегистрыСведений.РегистрСведенийСезонГорючего.СрезПоследних(Дата)=Перечисления.СезонТС.Зима тогда 
      НормаРасхода = ТранспортноеСредство.НормаГорючегоЗимняя;
   иначе
      НормаРасхода =  ТранспортноеСредство.НормаГорючего;
   КонецЕсли;   
   РасходГорючегоНорма = НормаРасхода * ПробегОбщий / 100;
   РасходГорючегоФакт = НормаРасхода * ПробегОбщий / 100;
   СпидометрОкончание = СпидометрНачало+ПробегОбщий;
   ГорючееОкончание=ГорючееНачало+Заправлено-РасходГорючегоФакт;
   
КонецПроцедуры


В регистре в измерение добавлено моё перечисление в ресурс дата!
Данные из регистра все равное не берутся, что я не так делаю?

Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|Рег.НормаРасхода КАК НормаРасхода
|ИЗ РегистрСведений.РегистрСведенийСезонГорючего.СрезПоследних(&НаДату) КАК Рег";
Выборка = Запрос.Выполнить.Выбрать();
Если Выборка.Количество()>0 Тогда
Выборка.Следующий();
НормаРасхода = Выборка.НормаРасхода;
КонецЕсли;

Оффлайн Zeratul

  • **
  • Сообщений: 91
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2010-06-02
  • Сайт: 
А если не через запрос?=)

Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
Попробуйте так:
ТабСП = РегистрыСведений.РегистрСведенийСезонГорючего.СрезПоследних(Дата);
Если ТабСП.Количество() > 0 Тогда
Стр = ТабСП.Получить(0);
НормаРасхода = Стр.НормаРасхода;
КонецЕсли;   

Оффлайн Slin

  • Глобальный модератор
  • *****
  • Сообщений: 780
  • РЕПУТАЦИЯ: 247
  • КПД: 32%
  • Game over...
  • Регистрация: 2010-10-13
  • Сайт: 
  • Профессия: Программист 1С
Перечисление должно быть не измерением, а ресурсом. Дата присутствует и так, в силу периодичности регистра.
Функция СрезПоследних() возвращает таблицу.
Пишите примерно в таком ключе:
Таб = Регистры сведений.РегистрСведенийСезонГорючего.СрезПоследних(Дата);
Если Таб.Количество > 0 Тогда    // если значение существует
// ваш код
КонецЕсли;
skype: slin-dev

Оффлайн Slin

  • Глобальный модератор
  • *****
  • Сообщений: 780
  • РЕПУТАЦИЯ: 247
  • КПД: 32%
  • Game over...
  • Регистрация: 2010-10-13
  • Сайт: 
  • Профессия: Программист 1С
Чего-то код коряво отображается :(
skype: slin-dev

Оффлайн Zeratul

  • **
  • Сообщений: 91
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2010-06-02
  • Сайт: 
Всем спасибо, все получилось!
Сделал так:

ТабСП = РегистрыСведений.РегистрСведенийСезонГорючего.СрезПоследних(Дата);
Если ТабСП.Количество() > 0 Тогда
Стр = ТабСП.Получить(0);
НормаРасхода = Стр;

КонецЕсли;
Если НормаРасхода.СезонГорючего = Перечисления.СезонТС.Зима Тогда
    НормаРасходаГор = ТранспортноеСредство.НормаГорючегоЗимняя;
 Иначе
    НормаРасходаГор =  ТранспортноеСредство.НормаГорючего;
  КонецЕсли;
  РасходГорючегоНорма = НормаРасходаГор * ПробегОбщий / 100;
   РасходГорючегоФакт = НормаРасходаГор * ПробегОбщий / 100;
   СпидометрОкончание = СпидометрНачало+ПробегОбщий;
   ГорючееОкончание=ГорючееНачало+Заправлено-РасходГорючегоФакт;

Оффлайн Slin

  • Глобальный модератор
  • *****
  • Сообщений: 780
  • РЕПУТАЦИЯ: 247
  • КПД: 32%
  • Game over...
  • Регистрация: 2010-10-13
  • Сайт: 
  • Профессия: Программист 1С
skype: slin-dev


Теги:
 

{Константа.ПараметрыРаботыПользователей.МодульМенеджераЗначения(205)}: Ошибка в процедуре ПриОпределенииНазначенияРолей общего модуля ПользователиПереопределяемый.

Автор boulingist81Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 540
Последний ответ 21 Апр 2017, 21:36
от boulingist81
В семерке есть константа, там можно было указать соцналог , соцотчисление и т.д.

Автор helpРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 1161
Последний ответ 08 Сен 2011, 16:13
от help
Константа с методами списания товаров

Автор inoifantomРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 2572
Последний ответ 19 Июл 2011, 01:14
от Klyacksa
константа не доступна для редактирования

Автор mikel10Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 3278
Последний ответ 24 Окт 2013, 15:33
от MuI_I_Ika
Константа.

Автор JeffxРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1181
Последний ответ 05 Ноя 2013, 12:30
от MuI_I_Ika

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
168 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
48 Сообщений
andron81_81
42 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal