Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 ноя 2024, 02:51

Архитектурный вопрос - где и как хранить мои данные

Автор Максипес, 30 июн 2015, 12:36

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

Максипес

Цитата: vitasw от 07 июл 2015, 13:58Зачем делать что-то неправильно?!?!

я наоборот сейчас делаю правильную, практически академическую бд.. все через встроенные методы 1с как и задумывалось разработчиками. это такая кристально чистая бд получится.. возможно это не самый быстрый вариант, но потом, в конечном счете, итог все равно надо считать, буду я делать это сам или будет это делать 1с в методе "ОбработкаПроведения" вопрос на данном этапе второстепенный.
Добавлено: 07 июл 2015, 16:13


Немножко шокирован работой с датой.. особенно после php .. может просто что не понимаю..

есть дата в формате строки такого типа "16.03.2015 22:15:03"

нужна дата в формате дата для вызова метода 1с

ничего лучше чем это =Дата(Формат(Дата,"ДФ=""ггггММдд""")
придумать не смог..

т.е сначала строку "Дата" форматируем по-новому, а потом ее преобразуем в тип дата.
так чтоли?

SkyNetYar

Можно так
Сообщить(Формат(Дата, "ДЛФ=ДВ")); // 01.01.2005 20:01:03

cska-fanat-kz

Цитата: Максипес от 07 июл 2015, 10:25
Люди добрые, еще вопрос.. как мне из обработчика Процедура ОбработкаПроведения(Отказ, Режим)
    // здесь нужны данные
КонецПроцедуры
как правильней получать данные из периодических регистров сведений.. запросом или методами? Приложение управляемое.

по обстановке.
но голосую за запрос - более универсальнее в плане различных отборов и последующей доработки.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

Цитата: Максипес от 07 июл 2015, 14:55есть дата в формате строки такого типа "16.03.2015 22:15:03"

нужна дата в формате дата для вызова метода 1с

ничего лучше чем это
Код: [Выделить]

=Дата(Формат(Дата,"ДФ=""ггггММдд""")

придумать не смог..

т.е сначала строку "Дата" форматируем по-новому, а потом ее преобразуем в тип дата.
так чтоли?

а время не важно?

скорее так:
=Дата(Число(Сред(стрДата,7,4)),Число(Сред(стрДата,3,2)),Число(Лев(стрДата,2)))

ЗЫ для того чтобы сработал Формат() в
=Дата(Формат(Дата,"ДФ=""ггггММдд""")
нужно чтобы Дата была типа дата
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

Во что вычитал, не пробовал правда

Формат даты в 1С совсем другой, это не Excel, например:

ДатаНулевая = '00010101000000';                         

Или:
Дата2 = Дата(<Год>, <Месяц>, <День>, <Час>, <Минута>, <Секунда>)
Сначала в число преобразуем:

ЧислоДата = Число(СтрЗаменить("28.02.2011", ".", ""));


Потом полученное превращаем в дату:

Дата = Формат(ЧислоДата, "ЧЦ=8; ЧРГ=.; ЧВН=; ЧГ=4,2,0");      // Дата = "28.02.2011"
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Максипес

Цитата: cska-fanat-kz от 08 июл 2015, 08:14ЧислоДата = Число(СтрЗаменить("28.02.2011", ".", ""));

Дату мне возвращает Процедура ОбработкаПроведения(Отказ, Режим) как реквизит документа, который будет проводиться.

напрямую в запросе я ее не могу юзать:
СтруктураКурс = РегистрыСведений.ИндикативныеКурсы.Получить(Дата, Отбор);

потому что дата которая из документа со временем, а дата которая в ИндикативныеКурсы тоже со временем, но оно равно 00.00.00.

т.е. в таком случае они никогда не находит искомую строку.

мне надо у даты, которая из документа обнулить время.


о.. сообразил как  СтруктураКурс = РегистрыСведений.ИндикативныеКурсы.Получить(Началодня(Дата), Отбор);
Добавлено: 08 июл 2015, 11:25


Новый вопрос.. уже стыдно даже.. по самым элементарным моментам приходится обращаться.. ни книги ни гугл не дают ответ, а сам не могу хоть убей разобраться.

в в обработчике, который вызывается при проведении документа
Процедура ОбработкаПроведения(Отказ, Режим)
КонецПроцедуры

хочу запомнить значения курса и котировки на дату.. т.е. смысл такой.. доки идут потоком сортированные по дате.. чтобы при массовой проводке не запрашивать из бд каждый раз курс долларах хочу его как то запомнить и только если дата проводимого документа изменилась прочитать из базы новое значение.

беда, что не могу использовать глобальные переменные.. их все равно в этом модуле в упор не видно.
пробовал использовать Параметры сеанса, но их надо инициализировать похоже перед тем как юзать, для этого хотел вставить обработчик события ПриНачалеРаботыСистемы, но в упор не могу найти где и как это сделать.. облазил все менюшки и все окна .. пытался вручную во все модули его вписать.. но нет. ппц.

cska-fanat-kz

Цитата: Максипес от 08 июл 2015, 10:27беда, что не могу использовать глобальные переменные.. их все равно в этом модуле в упор не видно.

почему же?
параметры сеанса или константы вполне себе видно.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Максипес

Цитата: cska-fanat-kz от 08 июл 2015, 11:35
Цитата: Максипес от 08 июл 2015, 10:27беда, что не могу использовать глобальные переменные.. их все равно в этом модуле в упор не видно.

почему же?
параметры сеанса или константы вполне себе видно.

параметры сеанса, конечно, видно. но при обращение выдает ошибку.. типа надо проинициализировать.. читал что сначала надо записать значение в них, а потом только читать.. у меня же сразу пытается читать.

хотел их в обработчике события ПриНачалеРаботыСистемы инициализировать, но не могу сообразить где и как описать этот обработчик. я просто не могу найти модуль где его записать или кнопку какую по нажатии которой появится шаблон этого обработчика. уже глаз дергается.

MuI_I_Ika

В конфигурации есть такой Модуль сеанса. Предполагается, что именно в нем должны инициализироваться параметры сеанса.

cska-fanat-kz

сделать 2 константы: ДатаКурса и ЗначениеКурса
в начале обработки проведения дока проверять, если дата дока больше ДатаКурса, то записать дату дока в ДатаКурса и обновить ЗначенияКурса из регистра.
следующие доки будут читать уже значение константы а не с регистра...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск