Имя: Пароль:
1C
1С v8
Задание общей переменной для всей конфигурации
0 PutnikAda
 
06.08.17
00:53
Приветствую всех, господа. Задача такова: есть общий файловый каталог на сервере, к примеру - F:\1. В нем затем созданы подкаталоги: F:\1\2, F:\1\3, F:\1\4. В формах справочников и документов регулярно обращаюсь к этим подкаталогам. Вопрос в следующем: сделать так, чтобы изначальный каталог F:\1 задавался переменной, которую можно было бы менять в какой-нибудь пользовательской форме с той целью, чтобы в случае переезда файлового каталога не пришлось перелопачивать весь код. Первая мысль - "служебный" справочник и отдельный реквизит под это дело, но не совсем ясно, как потом правильно к нему обращаться.

Заранее спасибо за любую информацию.
1 PutnikAda
 
06.08.17
01:52
Пробовал создать "служебный" справочник, в нем реквизит ГлавныйКаталог. Затем в модуле нужной формы по идее можно обратиться к ГлавномуКаталогу так:
ГлавКат = Справочники.Служебный.НайтиПоКоду(001).ГлавныйКаталог;

Но вопрос теперь в том, что общая процедура выполняется на клиенте, а к другим справочникам, как я понимаю можно обращаться только на сервере. Как быть?
2 Garykom
 
гуру
06.08.17
02:05
Скажи а не пробовал хотя бы парочку книжек по 1С почитать? Например там где про "Константы" рассказывают...
3 Otark
 
06.08.17
04:30
>>Но вопрос теперь в том, что общая процедура выполняется на клиенте
Ты общее значение для всех, откуда получать собрался с клиента? Откуда ему там взяться?

>>Как быть?
Ну обратись к серверу. Пусть он отдаст нужную инфу. Открою страшный секрет, при открытии формы, всегда(ну или почти всегда) происходит обращение к серверу. Иначе откуда там возьмутся данные? Посмотри на список событий формы. И да (2) правильно говорит. Справочник использовать не уверен, что имеет смысл.
4 PutnikAda
 
06.08.17
11:22
(2) Спасибо за информацию.
PS: Читаю, не сердись)
5 PutnikAda
 
06.08.17
14:40
(3) Под общей процедурой я подразумевал процедуру работы с файловым каталогом.
6 DDwe
 
06.08.17
14:44
(4) Вот и читай сначала, потом пиши.
7 PutnikAda
 
06.08.17
15:56
Создал константу Главный каталог, ввел в нее значение "F:\1". В модуле формы:

&НаСервереБезКонтекста
Функция ГлавныйКаталог()
    Возврат Константы.ГлавныйКаталог.Получить();
КонецФункции

&НаКлиенте
Процедура ВхВыбрать(Команда)
    ГлавКат = ГлавныйКаталог();
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выберите входящее письмо...";
    Диалог.ПредварительныйПросмотр = Ложь;
    Диалог.МножественныйВыбор = Ложь;
    Диалог.Фильтр = "файлы (*.jpg;*.png;*.jpeg)|*.jpg;*.png;*.jpeg";
    Диалог.Каталог = ГлавКат+"\2";    
    Если Диалог.Выбрать() Тогда
              ИмяФайла = Диалог.ПолноеИмяФайла;
              ВыбФайл = Новый Файл(ИмяФайла);
              Объект.ВхПуть = Диалог.ПолноеИмяФайла;
          Иначе
              Возврат;
          КонецЕсли;    
КонецПроцедуры

Но каталог выбора файла все равно открывается из кеша винды, а не тот, который я, вроде как задаю.
Что я сделал не так, подскажите, пожалуйста.
8 Cyberhawk
 
06.08.17
16:17
РежимДиалогаВыбораФайла
9 PutnikAda
 
06.08.17
16:23
(8) А что с ним не так? Диалог же открывается.
10 PutnikAda
 
06.08.17
16:30
Прошу прощения, сам же и наплужил. В константе символ "С" ввел в английской раскладке, а каталог создан в английской.
Код в моем последнем посте работает, как требуется.
11 Веселый собака
 
06.08.17
16:35
Изначально подход какой-то гнилой. Есть база, в которой все, и, зачем-то нужен каталог. В базе можно хранить что угодно.
12 Веселый собака
 
06.08.17
16:41
(1) поиск по коду непредопределенного элемента справочника - дурной тон.
13 PutnikAda
 
06.08.17
16:55
(11) С целью нераздутия размера базы - много изображений по 5-10 мегабайт. Или это не имеет значения?
14 novichok79
 
06.08.17
16:59
(0) Константу влепи.
15 Имитация работы
 
06.08.17
17:12
(11) Гнилые майкрософтовцы специально гнило вкрутили в свой гнилой склсервер гнилой специальный режим гнилой работы с гнилыми даннными - гнилой filestream.
Гнилые недотёпы!
Ведь всем известно, в базе можно хранить что угодно.
16 Веселый собака
 
06.08.17
19:41
(13) размер элемента имеет значение только для дохлого серверного железа. на поиск и индексацию точно не влияет.
17 Имитация работы
 
06.08.17
19:52
И стал веселый собака начальником всея айти службы. И подписал он бумагу умную, "сла" именуемую, о том, что кровь из носу успевает его служба в разные временные рамки укладываться. И был он умен и горд собою.
А через три месяца вдруг не успел за день базу из бэкапа поднять. Удивились топы, подпись веселой собаки на бумаге той дважды перечитали. Ничего не сказал им гордый веселый собака. Стоял и кланялся, стоял и кланялся.
18 vde69
 
06.08.17
21:18
(0) за такую постановку вопроса в 1с сразу жирный минус ставят...

объясняю

1. общего каталога на сервере не может быть, по тому как 1с не имеет средств контроля на каком именно сервере из кластера серверов выполняется код... то есть нужно использовать или общие сетевые ресурсы или встроенное в 1с хранилище
2. частое использовании в формах общих каталогов файловой системы - не есть хорошо, как минимум это блокировки, медленная работа и прочее... то есть при частом обращении нужно кешировать информацию внутри самой базы, тут не очень понятно что конктренто тебе нужно - по этому конкретного совета и нет
19 vde69
 
06.08.17
21:31
(13)(15) стандартный скан А4 - это 250 кб... предположим в день в базу падает 100 новых сканов, умножаем на 300 рабочих дней и еще на 1.5 (накладные расходы хранения, индексы и прочее) - 0.25*100*300*1,5 = примерно 11 гигов к год...

база в среднем живет 5 лет актуальной информации (до свертки, глубже 5 лет - всегда архив), то есть для документооборота в 100 сканов в день можно закладывать рост базы на дополнительных 55 гигов за весь период работы базы, в принципе это вполне разумный обьем для того что бы не иметь гемороя с раздельным хранением документов в базе и файловом сервере...

а если еще поднапрячься и разделить скульную базу на 2 файла, при этом вынеся таблицу где будут лежать файлы в отдельный вайл и на отдельный диск, то вообще все будет гуд...
20 Имитация работы
 
07.08.17
07:16
(19) Вот, сразу чувствуется матёрый руководитель. Можно даже сразу размер скана в 16 килобайт принять. Наша служба обеспечивает только хранение и доступ, а то что вы их ещё и читать хотите - ваши проблемы, чо. А мне - премию за экономию ресурсов!
21 PutnikAda
 
07.08.17
19:04
На самом деле файлы разные бывают. У меня вот изображения по 5-10, а иногда и больше мегабайт, плюс другие файлы, тоже не худенькие. А еще и другой софт к этим файлам обращается. Как по мне, хранить эти файлы в базе, увеличивая ее размер на 80-90% - это не айс. Да и вобще, вопрос хранения файлов в базе очень древний и не менее спорный. И до сих пор какого-то однозначного ответа на этот вопрос нет. У всех СУБД, с которыми мне приходилось сталкиваться есть инструменты добавления "стримов", ссылок, если хотите, на файлы, вместо самих файлов. А это еще раз говорит о неоднозначности данной темы. Так что насчет "гнилого" подхода - я бы не был так категоричен)
22 Имитация работы
 
07.08.17
20:07
Наброшу, пожалуй (:
Товарищи, а вы бинарники в git тоже храните?
23 vde69
 
07.08.17
21:18
(20)

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


250 кбайт - это РЕАЛЬНЫЙ размер среднего офисного документа отсканированного с разрешением 300дпи в ЦВЕТЕ и сохраненного в джимпеге, выходит вполне читабельно даже для шрифта менее 6...
24 Имитация работы
 
08.08.17
06:52
(23) А вот тут человек в (21) что-то про 5-10 мегабайт говорит. Наверно он какой-то неудобный проект автоматизирует, да? Вот ведь лох. Ведь согласно средней температуре по больнице, абстрактный скан занимает чуть-чуть, совсем-совсем.
25 Имитация работы
 
08.08.17
07:20
(23) Кстати, дядь Дим. У тебя в твоём хранении сканов предупреждение о том,  что "ваш файл гуано, слишком большой и не может быть сохранен" - модально или немодально показывается? (:
26 vde69
 
08.08.17
08:51
(24) обычно юзеры пользуются настройками по дефолту, покупают хороший и дорогой сканер и в нем по умолчанию стоит максимальное разрешение (как минимум 600дпи) и максимальный цвет, ни того ни другого для офисных сканов НЕ НУЖНО, ну и потом если сохранять без компрессии - так и будет... Так, что это вопрос не технический а скорее административный...

Конечно некоторые хотят прикреплять не сканы а пдф в котором 20 листов каждый из которого это скан а не распознанный текст....

В своей практике не встречал ОФИСНЫХ файлов которые нельзя впихнуть в 0,5 метра... Разумеется есть исключения когда автоматизируют не совсем офисное (например чертежи или кадастры) но это исключения...
27 Зуекщмшср
 
08.08.17
09:00
(22) Причем здесь git?
28 Имитация работы
 
08.08.17
09:09
(26) Ну наконец-то, к четвертому посту догадался написать волшебные слова "в своей практике". Это замечательно. А другого не существует, это все ересь, да!
29 Имитация работы
 
08.08.17
09:10
(27) Предпочитаешь mercurial? И как он тебе?
30 Cyberhawk
 
08.08.17
13:17
"максимальное разрешение (как минимум 600дпи) и максимальный цвет, ни того ни другого для офисных сканов НЕ НУЖНО" // Я бы даже сказал, что и для фотографий А4 больше 300 дпи не требуется