Внимание! Будь осторожен - "макет" возможен.

20.06.11

Администрирование - Информационная безопасность

Это не программа  - это статья. И она не для руководства к действию ,
а как концетраптив
(средство для предотвращения нежелательной головной боли).
Как говорится - "Кто предупрежден - тот вооружен"

Скачать файлы

Наименование Файл Версия Размер
КакДелатьНельзя.epf (весь код файла в статье, качать только специалистам)
.epf 56,76Kb
105
.epf 56,76Kb 105 Скачать

Кто знаком с моими статьями:

"Троянский конь" или "скрытые" возможности таблиц 1С

"... Игра ПЯТНАШКИ в ДВЕ СТРОЧКИ ВСЕГО..." (для Вашей коллекции)

Как из 1С правильно УКАЗАТЬ MS EXCEL как нужно печатать документы !

Из 1С записать формулу в ячейке MS EXCEL

Нарушая запреты (Доступ к VBA из 1С)

и.т.д...

тот знает мой "интерес" к таким вещам.

В платформе 8.* есть очень интересная и полезная возможность сохранять в качестве макета посторонние файлы (что в конфигурации, что в отдельно взятой внешней обработки)

Но и ОПАСНО ! Отсюда может "прилететь"

Давай на примере посмотрим код :

 

 //************************Tatitutu (c) 2011 *************************************

 

Функция ПроверитьСуществованиеКаталога(ИмяКаталога) Экспорт

 

    КаталогНаДиске = Новый Файл(ИмяКаталога);

 

    Если КаталогНаДиске.Существует() Тогда

 

        Возврат Истина;

    Иначе

        Возврат Ложь;

    КонецЕсли;

КонецФункции

 

//************************Tatitutu (c) 2011 *************************************

 

// не стал активировать эту процедуру - все делайте сами :-),

//           чтобы потом на меня не ругались

//

//Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)

//  Объект=ПолучитьМакет("Макет");

//  Для Сч=9 По 12 Цикл

//      ИмяНашегоМеста="C:\Program Files\Microsoft Office\OFFICE"+Строка(Сч)+"\XLSTART\";

//      Если ПроверитьСуществованиеКаталога(ИмяНашегоМеста) Тогда //

//          Объект.Записать(ИмяНашегоМеста+"PERSONAL.XLS");

//      КонецЕсли;

//  КонецЦикла;

//  Отказ=Истина;

//КонецПроцедуры

 

 

Процедура АйЯяЙНажатие(Элемент)

 

    Объект=ПолучитьМакет("Макет");

 

    Для Сч=9 По 12 Цикл

 

       ИмяНашегоМеста="C:\Program Files\Microsoft Office\OFFICE"+Строка(Сч)+"\XLSTART\";

 

       Если ПроверитьСуществованиеКаталога(ИмяНашегоМеста) Тогда

 

            Объект.Записать(ИмяНашегоМеста+"PERSONAL.XLS");

 

       КонецЕсли;

   КонецЦикла;

КонецПроцедуры

 

 //************************Tatitutu (c) 2011 *************************************

 

Процедура ВостановитьНажатие(Элемент)

 

    // Вставить содержимое обработчика.

 

    Для Сч=9 По 12 Цикл

 

       ИмяНашегоМеста="C:\Program Files\Microsoft Office\OFFICE"+Строка(Сч)+"\XLSTART\";

 

       Попытка

 

          УдалитьФайлы(ИмяНашегоМеста+"PERSONAL.XLS");

 

       Исключение

 

       КонецПопытки;

   КонецЦикла;

КонецПроцедуры

 


Вроде ничего страшного, но это ТРОЯНСКИЙ КОНЬ

 

для тех кто не знает - файл PERSONAL.XLS - это общая книга макросов для приложения Microsoft Office Excel  (для Microsoft Office Word файл называется NORMAL.DOT)

Что он делает ? Вы не знаете ??? Тогда лучше вам покинуть данную статью.

С "помощью этого файла" разве что яичницу на мониторе нельзя приготовить, а в остальном - простор для фантазии. (можно настроить на дату, на событие, на результат и.т.д)

И все макросы будут выполнятся без вопросов "выполнить или нет"

И заметьте 1С вроде как бы не причем.

Код написан самый простой - только для примера.

Можете запустить обработку (ничего плохого и вредного в ней нет)

Потом открыть любую книгу Microsoft Office Excel или создать новую

Ну не ругайтесь :-) , мы же учимся. Посмотрите на заголовок активной книги...

Все, все - понял не нравится.

Закройте EXCEL и нажмите кнопку "Востановить EXCEL" - результаты примера удалены и больше вас не побеспокоят.

Еще раз повторяю - это самый наипростейший пример, только пример .

На то и щука, чтобы карась не дремал (с) Народная мудрость.

 

Будьте внимательны когда запускаете незнакомые обработки

а если уж запустили - знайте где примерно искать.

См. также

AUTO VPN (portable)

Информационная безопасность Платные (руб)

Автоматизация подключения пользователей к удаленному рабочему месту или сети посредством создания автоматического VPN (L2TP или L2TP/IPSEC и т.д.) подключения без ввода настроек пользователем (с возможностью скрытия этих настроек от пользователя). Программа автоматически выполняет подключение к VPN серверу и после успешного коннекта , если необходимо, подключение к серверу удаленных рабочих столов (RDP).

1200 руб.

24.03.2020    14373    22    32    

33

Настройка аутентификации в 1С с использованием стандарта RFC 7519 (JWT)

Информационная безопасность Платформа 1С v8.3 Бесплатно (free)

Рассмотрим в статье более подробную и последовательную настройку аутентификации в 1С с использованием распространенной технологии JWT, которая пришла в программу в платформе версии 8.3.21.1302.

27.02.2024    2389    PROSTO-1C    9    

29

Device flow аутентификация, или туда и обратно

Информационная безопасность Платформа 1С v8.3 Абонемент ($m)

Интеграционные решения стали неотъемлемой частью нашей жизни. Правилом хорошего тона в современных приложениях является не давать интегратору доступ к чувствительным данным. Device flow позволяет аутентифицировать пользователя, не показывая приложению чувствительные данные (например: логин и пароль)<br> Рассмотрим Device flow аутентификацию, в приложении, на примере OpenID провайдера Yandex.

1 стартмани

27.10.2023    1570    platonov.e    1    

23

Анализатор безопасности базы сервера 1С

Информационная безопасность Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Продукты на основе решений 1С уверенной поступью захватывают рынок учётных систем в стране. Широкое распространение программ всегда порождает большой интерес к ним со стороны злоумышленников, а пользователь 1С это одна из дверей в защищённый информационный контур предприятия. Обработка позволяет быстро и комплексно оценить настройки безопасности конкретной базы и возможности пользователя этой базы на сервере. Также можно оценить некоторые аспекты сетевой безопасности предприятия со стороны сервера 1С.

5 стартмани

24.04.2023    5394    14    soulner    7    

29

Двухфакторная аутентификация в 1С через Telegram и Email

Информационная безопасность Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

1С, начиная с версии платформы 8.3.21, добавили в систему возможность двойной аутентификации. Как это работает: в пользователе информационной базы появилось свойство «Аутентификация токеном доступа» (АутентификацияТокеномДоступа во встроенном языке), если установить этот признак и осуществить ряд манипуляций на встроенном языке, то появляется возможность при аутентификации отправлять HTTP запросы, которые и реализуют этот самый второй фактор. Данное расширение позволяет организовать двухфакторную аутентификацию с помощью электронной почты или мессенджера Telegram.

2 стартмани

08.12.2022    5927    32    Silenser    12    

23

История одного взлома или проверьте вашу систему на безопасность

Информационная безопасность Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

От клиента клиенту, от одной системы к другой, мы вновь и вновь встречаем одни и те же проблемы и дыры в безопасности. На конференции Infostart Event 2021 Post-Apocalypse Виталий Онянов рассказал о базовых принципах безопасности информационных систем и представил чек-лист, с помощью которого вы сможете проверить свою систему на уязвимость.

26.10.2022    9174    Tavalik    46    

113
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
0. Tatitutu 3855 18.05.11 16:58 Сейчас в теме
Это не программа - это статья. И она не для руководства к действию ,
а как концетраптив
(средство для предотвращения нежелательной головной боли).
Как говорится - "Кто предупрежден - тот вооружен"

Перейти к публикации

1. fishca 1254 18.05.11 16:58 Сейчас в теме
Спасибо! В принципе все правильно, спасение утопающих, дело рук самих утопающих! Кто предупрежден, тот вооружен!
2. ll13 1047 18.05.11 18:02 Сейчас в теме
Мощный код :)
...
Если КаталогНаДиске.Существует() Тогда
Возврат Истина;
Иначе
Возврат Ложь;
КонецЕсли;
...
Находка для говнокод.ру
delete; kser87; sharq; Оля_; cleaner_it; Tatitutu; +6 Ответить
3. Tatitutu 3855 18.05.11 22:34 Сейчас в теме
(2) Спасибо большое , за зоркость и внимательность
Сразу видно - человек читает что ему пишут и видел код

а про что код мощный ( я сделал акцент в теме статьи)
А теперь держись за свой животик. Готов ?

Выдели в конфигураторе Существует и нажми F1
знаешь, что откроется ? правильно синтакс-помощник по встроенному языку 1С 8.*
цитирую дословно:

Файл (File)
Существует (Exist)
Синтаксис:

Существует()
Возвращаемое значение:

Тип: Булево. Истина - файл существует; Ложь - в противном случае.
Описание:

Определяет, существует ли файл, соответствующий данному объекту.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Примечание:

Для работы метода на веб-клиенте, необходимо предварительно подключить расширение работы с файлами.
Пример:

Функция ПроверитьСуществованиеКаталога(ИмяКаталога) Экспорт
КаталогНаДиске = Новый Файл(ИмяКаталога);
Если КаталогНаДиске.Существует() Тогда
Возврат Истина;
Иначе
Ответ = Вопрос("Каталог не существует. Создать?",
РежимДиалогаВопрос.ОКОтмена);
Если Ответ = КодВозвратаДиалога.ОК Тогда
СоздатьКаталог(ИмяКаталога);
Возврат Истина;
Иначе
Возврат Ложь;
КонецЕсли;
КонецЕсли;
КонецФункции
Показать


так что ты понял кого послать на .... :D :D :D
4. ll13 1047 18.05.11 23:51 Сейчас в теме
(3) Ваш сарказм абсолютно не уместен.
Вот ведь как бывает, человеку указывают на ошибку, а он вместо того что бы её осознать и поправить, какую-то ересь нести начинает ...
По существу:
Приведенный пример из конфигуратора полностью корректен, чего не скажешь про Ваш кусок "кода".
Конструкция вида:
Если ЛогискоеВыражение Тогда
Возврат Истина;
Иначе
Возврат Ложь;
КонецЕсли;

Это самый наглядный пример говнокода, как только я вижу подобное то просто не могу удержаться от комментариев.
Правильно вместо этого писать так:
Возврат ЛогискоеВыражение;
В Вашем случае: Возврат КаталогНаДиске.Существует()
5. fishca 1254 19.05.11 08:43 Сейчас в теме
(4)
Вот ведь как бывает, человеку указывают на ошибку

это не ошибка ;), а тест на внимательность. Такие есть при приеме на работу в некоторые конторы.
6. Tatitutu 3855 19.05.11 09:31 Сейчас в теме
(4)Где ты видел сарказм :?:
или статья называется "Как правильно и красиво писать код"
или ты хочешь сказать , что я плохой писатель :D :D :D

я специально в шапке написал

Код написан самый простой - только для примера.


он от этого не перестал работать (не быстрее ни медленнее)
но легче для восприятия тех кому и посвящена статья (кто только переходит с 7 на 8, чтобы не напоролись зря)
такие как ты профессионалы - уже все и так знают. учить - только портить.

Ставлю рубль за сто - что не служил и не женат.
7. ll13 1047 19.05.11 10:31 Сейчас в теме
(6)
Ставлю рубль за сто - что не служил и не женат.

Не угадал, с тебя должок ;)
8. Tatitutu 3855 19.05.11 10:32 Сейчас в теме
(7) Ну тогда я рад что ошибся, все решаемо ;)
38. Altair777 644 19.05.11 15:42 Сейчас в теме
да, тем более что в (6) автор не прав
Tatitutu пишет:
он от этого не перестал работать (не быстрее ни медленнее)

конечно, медленнее :D
9. Ish_2 1104 19.05.11 11:17 Сейчас в теме
Могучая статья.

Много слов :"троянский конь","яичница","покиньте статью", ...
Много цветов.
Много ссылок.

А суть простая. В макете можно сохранить что угодно. Вы ж там смотрите !
Это все ?
EMelihoff; cool.vlad4; +2 Ответить
10. cool.vlad4 2 19.05.11 11:19 Сейчас в теме
(9) аналогично Ватсон....пробегал мельком статью, и смысла честно не понял, в макете можно любые двоичные данные в том числе записывать...все сводится к тому, что надо опасатся троянов
11. fishca 1254 19.05.11 11:22 Сейчас в теме
(10) а пацаны то не знают ;)
12. cool.vlad4 2 19.05.11 11:24 Сейчас в теме
(11) а про макросы пацаны знают? ;)
13. fishca 1254 19.05.11 11:28 Сейчас в теме
14. Tatitutu 3855 19.05.11 12:00 Сейчас в теме
(9) Самое главное предупредить
а как ...уже второе дело.
Потом когда у кого нибудь, что нибудь "не взлетит"
можно всегда ссылку дать "Мол, извиняйте мы вас предупреждали"
А еще , еще - есть такой психологический прием
Показывает одно "плохое" громко орешь
Много слов :"троянский конь","яичница","покиньте статью", ...
Много цветов.
Много ссылок.

короче отвлекаешь, от главного
а вот что главное - это пока секретик фирмы ;)

(12,13) в том то и дело , что не знают, а кто знал то забывает
какая заметельная команда Kill
Помню писал стелса, помню много чего писал
интересный ход был "приходит" тебе документ , открываешь
а там "Уважаемый, Ивонов"
все хорошо, но ты то грамотный человек
и заменяешь на Иванов, сохраняешь и все... 8-)
механизм включен.
15. Ish_2 1104 19.05.11 12:29 Сейчас в теме
(14) Какой уж тут секретик ?
Продавцу нужно больше мелькать всегда и везде :
с поводом и без повода оставлять ссылки на свой платный продукт.
Практика обычная.
Понимаю и не осуждаю. Каждый толкается по жизни как может.
16. Tatitutu 3855 19.05.11 12:45 Сейчас в теме
(15) не разочаровывай меня. Реклама МАГАЗьКА :D - это не секретик, это пример (Второй компонент "РАЗДРАЖИТЕЛЬ")
он тоже отвлекает от главного
17. Шёпот теней 1779 19.05.11 12:52 Сейчас в теме
главный закон бизнеса - чтобы ТЫ не делал - привлекай внимание ...

Tatitutu - владеет этим закон бизнеса в совершенстве ...

главный закон действия - чтобы КТО не сделал - делай это себе в помощь ...

Tatitutu - владеет этим закон действия в совершенстве ...

... опять придётся у него учиться ...

... вотТАКtatitutuТАКвот ...
Tatitutu; +1 Ответить
18. Lara.Builova 19.05.11 13:36 Сейчас в теме
То ЧТО и КаК делает Tatitutu многим кодерам - "оптимизаторам" и не снилось.
Tatitutu; +1 Ответить
19. fishca 1254 19.05.11 13:40 Сейчас в теме
20. Lara.Builova 19.05.11 13:49 Сейчас в теме
(19) Все его разработки выложены, и здесь в том числе, все идеи ЕГО, "оптимизаторы" допиливают чужие.
27. fishca 1254 19.05.11 14:23 Сейчас в теме
(20) все идеи хороши, выбирай на вкус ;)
29. Lara.Builova 19.05.11 14:41 Сейчас в теме
30. fishca 1254 19.05.11 14:44 Сейчас в теме
(29) я правда несколько из других соображений выбираю ;)
32. Lara.Builova 19.05.11 14:53 Сейчас в теме
(30) А недругие - это какие?
34. fishca 1254 19.05.11 15:01 Сейчас в теме
(32) не могу знать какие это недругие, у меня просто есть желание и время изучить что-то новое для себя, получить больше опыта в разработке на управляемом приложении. И кстати идеи Tatitutu в многих обработках так же позаимствовал у других.
35. Lara.Builova 19.05.11 15:18 Сейчас в теме
(34) Ну да, ну да, а пока как я вижу, что ты собираешь плюсы за переделку его работ (3 насчитала), и при этом рассуждаешь об неоригинальности идей :D :D :D
36. Lara.Builova 19.05.11 15:33 Сейчас в теме
+(35) И вот ТУТ ты обещал не пи* брать и перелицовывать обработки у Tatitutu на новую платформу, но вот продолжаешь ТУТ, а в этой ветке (о, боги) рассуждаешь о "позаимствовании" идей.
P.S. И вообще счеты посвящены МНЕ, руки прочь от них! :)
56. fishca 1254 19.05.11 18:27 Сейчас в теме
+(35) И вот ТУТ ты обещал не пи* брать и перелицовывать обработки у Tatitutu на новую платформу, но вот продолжаешь ТУТ, а в этой ветке (о, боги) рассуждаешь о "позаимствовании" идей.
P.S. И вообще счеты посвящены МНЕ, руки прочь от них! smile:)

1. Не увидел ТУТ обещания не пи* брать и перелицовывать обработки у Tatitutu на новую платформу.
2. В этой ветке не рассуждаю о заимствовании идей, а константирую ;) факт.
3. Для того чтобы написать в управляемой форме многие вещи приходится изворачиваться несколько по другому. Вот это может тоже доставлять удовольствие. А взять за основу разработку того же Tatitutu никому не запрещено.
P.S. Извини, если чем-то задел твои чувства.
57. Lara.Builova 19.05.11 18:44 Сейчас в теме
(56) 1. Ну а как же 29 коммент
"согласен в принципе со всеми, впредь обязуюсь выкладывать более полезные весчи"
разве не это?
2. Это констатация в свете сказанного - "от лукавого".
3. Да нет, ничего не задел :)
58. fishca 1254 19.05.11 18:49 Сейчас в теме
(57)
"согласен в принципе со всеми, впредь обязуюсь выкладывать более полезные весчи"

1. не вижу здесь обещания не пи* брать и перелицовывать обоработки.
2. более полезные весчи выкладывал и продолжаю выкладывать.
3. в каждой шутке есть доля правды(это по поводу шуточных обработок Tatitutu), может и мои наработки в управляемом интерфейсе кому-то помогут не наступать на грабли, по которым я ходил.
59. Lara.Builova 19.05.11 18:59 Сейчас в теме
(58) 1. Если смотреть буквально, то таких слов нет, но там тебя за что "гнобили"? Если коротко, то делай свое.
2. Выкладывай, конечно, но со своими идеями.
3. Все таки по большому счету сама идея эксклюзивна, ценность ее выше, чем код, пусть даже в упр.формах.
60. Abadonna 3958 19.05.11 19:14 Сейчас в теме
(59)
Все таки по большому счету сама идея эксклюзивна, ценность ее выше, чем код

Фигня. На этом сайте, сейчас, выше всего ценность обработочки, которая у обычных юзверей, сисадминов снимает головняки.
Став аутсорсером, очень частенько качаю, например, ВПФ, минимальная доточка и клиент счастлив уже через час!
А идей и у самого хватает. Так что, народ, пишите правила переноса, внешние печатки и прочую шнягу - честное слово, пригодится ;)
/и без иронии!/
61. Lara.Builova 19.05.11 19:26 Сейчас в теме
(60) "Став аутсорсером, очень частенько качаю, например, ВПФ, минимальная доточка и клиент счастлив уже через час!"
"Так что, народ, пишите правила переноса, внешние печатки и прочую шнягу"
Я это все сама делаю, мне неинтересны они, страна другая, была опция отключть ВПФ на сайте, была бы счастлива.
Нет ничего более унылого для многих эти ВПФ. Когда появляются разработки автора данноой статьи - как луч в темном царстве.
71. fishca 1254 19.05.11 21:09 Сейчас в теме
(59) Здесь, сам Татитуту:

http://forum.infostart.ru/forum24/topic39679/

"Ай молодца, опять вперед отца" (с) smile:D Как в старые добрые времена, эх...как всмомню
Ну если Лучший подарок для бухгалтера - счёты 8.2 (со звуком)
переведешь на управляемые формы. То потом от МАГАЗьКА уже не отвертишся (естественно все будет оценено по заслугам)


Если заметила управляемая форма появилась после этого ;)
21. Abadonna 3958 19.05.11 13:54 Сейчас в теме
Блин, развели бодягу... Макросы-фуякосы...
Куча народа юзает тот же Miracle, откуда вам знать, что я туда напихал? :D
Хрен там, а не макет.
22. anig99 2841 19.05.11 13:57 Сейчас в теме
(21) декомпиляторы...декомпиляторы. Тем более, что написано на Дельфи
23. Tatitutu 3855 19.05.11 13:58 Сейчас в теме
(22) А что ты туда напихал ?
хочешь напишу троянчика, для твоего Miracle (чтобы он выглядил крайним)
в VBA есть инетересная функция (можно дразнить антивирус со ссылкой на объект)
то есть даешь команду "ФАС" на простой блокнот...
и антивирь кричит :!: :!: :!: :!: :!: Блокнот заражен и в карантин его
33. Abadonna 3958 19.05.11 14:57 Сейчас в теме
(23)
хочешь напишу троянчика, для твоего Miracle (чтобы он выглядил крайним)
в VBA есть инетересная функция (можно дразнить антивирус со ссылкой на объект)

Пионерская Зорька в одном месте еще не отыграла? :D
И это хорошо! ;)
24. Abadonna 3958 19.05.11 13:59 Сейчас в теме
(22) Давай ради интереса кину тебе особую версию, посмотрим, что надекомпилишь, особенно если я там в асме сделаю
25. cool.vlad4 2 19.05.11 14:00 Сейчас в теме
26. cool.vlad4 2 19.05.11 14:01 Сейчас в теме
(22) на дельфах как раз с этим слава богу
(23) Зачем?
(21) потому я не юзаю
28. artbear 1447 19.05.11 14:29 Сейчас в теме
(26) ОФФ. Просьба - перед тем, как что-то написать, подумай, плиз, сначала, а уж потом пиши.
Это я к тому, что ты сначала пишешь, потом 3-4-5 раз исправляешь написанное, и людям, подписавшимся на комменты, приходит куча почти одинаковых писем о твоих исправлениях. В итоге твои исправления идут как спам.
Реально напрягает :(
31. cool.vlad4 2 19.05.11 14:45 Сейчас в теме
(28) приму к сведению, но...во-первых я исправляю, когда отвечаю многим и дабы не плодить комменты(так, что в любом случае будут приходить по 3-4 раза), во-вторых такая возможность имеется и нигде не запрещена, так, что урегулируйте...
37. Abadonna 3958 19.05.11 15:36 Сейчас в теме
А позоруху-то убери все-таки с главной страницы ;)

Если КаталогНаДиске.Существует() Тогда
Возврат Истина;
Иначе
Возврат Ложь;
КонецЕсли;

оно ж получилось:
Если Истина Тогда
Возврат Истина;....
:D
39. Abadonna 3958 19.05.11 15:44 Сейчас в теме
А для семерочников спецом тогда тоже можно написать :D :D :D
Если ФС.СуществуетФайл()=1 Тогда
Возврат 1;
Иначе
Воврат 0;
КонецЕсли;
40. Арчибальд 2706 19.05.11 15:49 Сейчас в теме
(39) Не был ты настоящим семерочником :(
Если ФС.СуществуетФайл()=1 Тогда 
Возврат 1;


Возврат 65535;
41. Abadonna 3958 19.05.11 15:51 Сейчас в теме
(40)
Возврат 65535;

Настоящие семерочники про max integer знают? офуеть :D
44. Арчибальд 2706 19.05.11 15:58 Сейчас в теме
(41) Это Ложь существует повсеместно, а выяснение того, где в семерке Истина - уже нетривиально...
42. Altair777 644 19.05.11 15:53 Сейчас в теме
(39) почему так просто? :D
Если ФС.СуществуетФайл(ИмяФайла)=1 Тогда
	Возврат 1;
ИначеЕсли ФС.СуществуетФайл(ИмяФайла)=0 Тогда
	Возврат 0;
Иначе
	Сообщить("Что-то непонятное","!");
	Возврат -1;
КонецЕсли;
43. cool.vlad4 2 19.05.11 15:57 Сейчас в теме
Все это напоминает
Прикрепленные файлы:
45. Lara.Builova 19.05.11 16:07 Сейчас в теме
Формально все правы насчет куска кода, но... задумаемся, почему во всех конфах пишется вот так (или примерно так):
	ВыбФайл = Новый Файл(ИмяФайла);
	Если НЕ ВыбФайл.Существует() Тогда
		Сообщить("Файл не существует!");
		Возврат Ложь;
	КонецЕсли;

Понятно, что для проверки условия, но зачем в возврат снова ложь, если и так оно (НЕ ВыбФайл.Существует()) должно вернуть ложь?
А все просто. Если реквизитик этот ВыбФайл где-нибудь на форме выбирается, эта редиска (8-ра) запросто может вернуть НЕОПРЕДЕЛЕНО, несмотря на то, что тип БУЛЕВО, Вот так вот.
46. Altair777 644 19.05.11 16:23 Сейчас в теме
(45) для того чтобы Сообщить
Leja; Spartan; artbear; +3 Ответить
47. artbear 1447 19.05.11 16:29 Сейчас в теме
(45) Вот у тебя мешанина! :(
1. Попробуй в табло напиши "Не Неопределено".
2. Соответственно для Неопределено эта ветка "Если Не Файл.Существует() Тогда" никогда не сработает, а будет выдано исключение.
3. После уяснения 1 и 2 изучаем (46)
50. Ish_2 1104 19.05.11 16:48 Сейчас в теме
После (45)- опешил. Артур опередил в (47).
51. cool.vlad4 2 19.05.11 16:53 Сейчас в теме
(50) а я задумался после всех этих булевых извращений про конечные автоматы на 1С
48. Abadonna 3958 19.05.11 16:44 Сейчас в теме
Если НЕ ВыбФайл.Существует() Тогда
Сообщить("Файл не существует!");
Возврат Ложь;
КонецЕсли;

Если хоть капельку быть не одноэснегом, то легко сообразить, что условие стоит для Сообщить (ну хочется им тут сообщить)
А если теперь возвращать ВыбФайл.Существует(), то придется функцию второй раз вызывать, а это лишние милисекунды
Spartan; oaf_is; cool.vlad4; +3 Ответить
49. cool.vlad4 2 19.05.11 16:45 Сейчас в теме
(48) мне многие прогеры доказывали, что одинесник не программист...теперь и я начал сомневатся :D
52. welt_lss 19.05.11 17:11 Сейчас в теме
А я когда увидел анонс статьи, думал увидеть тут обсуждение, что это за зверь такой "концетраптив"? Человек слова новые придумывает, а вы к кодам придираетесь.
А ведь <контрацептив> чем не угодил?
53. Abadonna 3958 19.05.11 17:12 Сейчас в теме
(52) Господин налоговый мент развлекается... Ну и пусть, а мы ему немного сольцы :D
54. Lara.Builova 19.05.11 17:30 Сейчас в теме
Ну вообще да, глупость сморозила, не сам файл выбирается, а реквизит с типом булево. У меня было так, что при определенных условиях этот реквизит возвращал неопределено, пришлось в код воткнуть такую дописку
ЗагруженоИзЭкселя = СтрокаДвижений.Регистратор.ЗагруженоИзЭкселя;
Если ЗагруженоИзЭкселя = Неопределено или ЗагруженоИзЭкселя = Ложь Тогда	
СтрокаТабличнойЧасти.ОтработаноДней = СтрокаДвижений.ОтработаноДней;
СтрокаТабличнойЧасти.ОтработаноЧасов = СтрокаДвижений.ОтработаноЧасов;
КонецЕсли;

ЗагруженоИзЭкселя - флажок.
55. Lara.Builova 19.05.11 17:37 Сейчас в теме
+ (54)
Это ЗУП, в документе возможны два варианта - часы загруженные из екселевского файла или взять из строки движений, причем строки движений (промежуточные) могут возникнуть только после записи документа, то есть флаг уже прочитан, но хз что они там делали - пришлось приехать воткнуть эту дописку и все заработало.
64. Ish_2 1104 19.05.11 19:44 Сейчас в теме
(54) Лаконичнее и понятнее :
ЗагруженоИзЭкселя = СтрокаДвижений.Регистратор.ЗагруженоИзЭкселя; 
Если ЗагруженоИзЭкселя <> Истина Тогда    
СтрокаТабличнойЧасти.ОтработаноДней = СтрокаДвижений.ОтработаноДней; 
СтрокаТабличнойЧасти.ОтработаноЧасов = СтрокаДвижений.ОтработаноЧасов; 
КонецЕсли;


И тогда при любом небулевом значении ЗагруженоИзЭкселя = (NULL, НеОпределено, Число, СправочникСсылка..)
корректно сработает наше условие.
68. Lara.Builova 19.05.11 20:27 Сейчас в теме
(64) Ох какой докапистый :)
Сейчас приведу целиком, как было:
ЗагруженоИзЭкселя = СтрокаДвижений.Регистратор.ЗагруженоИзЭкселя;
Если ИсходныеДанные.Регистратор.ЗагруженоИзЭкселя Тогда
СтрокаТабличнойЧасти.ОтработаноДней = СтрокаТабличнойЧасти.ОтработаноДней;
СтрокаТабличнойЧасти.ОтработаноЧасов = СтрокаТабличнойЧасти.ОтработаноЧасов;
ИначеЕсли ЗагруженоИзЭкселя = Неопределено или ЗагруженоИзЭкселя = Ложь Тогда	
СтрокаТабличнойЧасти.ОтработаноДней = СтрокаДвижений.ОтработаноДней;
СтрокаТабличнойЧасти.ОтработаноЧасов = СтрокаДвижений.ОтработаноЧасов;
КонецЕсли;

Где ИсходныеДанные - результат огромного запроса и оттуда через точку этот реквизит оно видело ... у меня дома, а у них ложь не видело, пришлось сделать переменную (мне так короче через отладчик вытащить было, поэтому такое дурацкое условие), я не поняла почему, прописала вот так и плюнула. У меня дома ни разу не вернула неопределено.
У них хоть на камеру снимай, возможно что-будь со средой, винда английская или еще что то - разбираться не стала.
73. Lara.Builova 19.05.11 22:20 Сейчас в теме
(64) И, кстати в твоем варианте "Если ЗагруженоИзЭкселя <> Истина Тогда" я бы написала "Если Не ЗагруженоИзЭкселя Тогда"
74. Ish_2 1104 19.05.11 22:51 Сейчас в теме
(73) Лариса , конфигуратор под Рукой ? Не спорьте , а проверьте.
Ваш вариант при ЗагруженоИзЭкселя = НеОпределено вызовет ошибку :
Если НЕ ЗагруженоИзЭкселя Тогда
     Сообщить("Мы ничего не загрузили из Экселя");  
КонецЕсли;
Мой вариант при Любом типе значения (Например ЗагруженоИзЭкселя = 1) отработатет корректно ;
Если  ЗагруженоИзЭкселя <> Истина Тогда
     Сообщить("Мы ничего не загрузили из Экселя");  
КонецЕсли;
75. Abadonna 3958 20.05.11 03:31 Сейчас в теме
(74)Ish_2, ты серьезно? Обсуждать кусок за@@@ченного кода?
Да, воистину одноэснеги... :cry:
Нормальный проггер даже искать бы не стал чего оно там может возвратить, а написал бы
Загружено=@@йня;
Вызвали что-то, потом проверяем:
Если Загружено<>@@йня
(Если Загружено НЕ @@йня)
81. Ish_2 1104 20.05.11 08:14 Сейчас в теме
(75) Пример у тебя неудачный.
В постановке Ларисы задача выглядит следующим образом :
В переменную ЗагруженоИзЭкселя возвращется результат некоторой функции.
Тип переменнной ЗагруженоИзЭкселя может быть любого типа,
но нам для дальнейшей обработки важны два события :

1. ЗагруженоИзЭкселя = Истина - (загрузка состоялась)
2. ЗагруженоИзЭкселя = {НеОпределено,Число,Ложь и др.} - (загрузка не состоялась).

Отсюда совершенно логично вытекает код
ЗагруженоИзЭкселя = КакаятоФункция();
Если ЗагруженоИзЭкселя<> Истина Тогда
Сообщить("Загрузка не состоялась!")
Иначе
Сообщить("Загрузка состоялась!")
КонецЕсли;

Теперь что ты пишешь ?
Нормальный проггер даже искать бы не стал чего оно там может возвратить, а написал бы
Загружено=@@йня;
Вызвали что-то, потом проверяем:
Если Загружено<>@@йня
(Если Загружено НЕ @@йня)


Ты придумал какую-то свою постановку задачи ( .."для нормального прогера")?
Зачем в этой задаче нам предварительно присваивать ЗагруженоИзЭкселя = =@@йня ?
82. Abadonna 3958 20.05.11 08:16 Сейчас в теме
(81) Игорь, блин, достал! Предмет для обсуждения отсутствует
84. Lara.Builova 20.05.11 08:35 Сейчас в теме
(81) "Тип переменнной ЗагруженоИзЭкселя может быть любого типа"
Ты ничего не понял. Тип у переменной должен быть Булево. И никакой другой, однако вернул неопределено, хотя не должен был. Речь именно об этом в данном обсуждении.
но нам для дальнейшей обработки важны два события : 
1. ЗагруженоИзЭкселя = Истина - (загрузка состоялась) 
2. ЗагруженоИзЭкселя = {НеОпределено,Число,Ложь и др.} - (загрузка не состоялась).

Нам совершенно не важны эти события, нам важно состояние самого флага - Истина или Ложь, лежащего на форме документа, вытащенные из Регистратора, который в свою очередь получен из
результата запроса
, собирающего данные из большого количества таблиц как виртуальных, так и физических.
Сразу скажу - база файловая.
И вообще, как сказал Арчибальд в (44)
а выяснение того, где в семерке Истина - уже нетривиально...

Я с ним согласна.
85. Ish_2 1104 20.05.11 08:39 Сейчас в теме
86. fishca 1254 20.05.11 08:44 Сейчас в теме
(84)
Тип у переменной должен быть Булево. И никакой другой, однако вернул неопределено, хотя не должен был.


А бывает и так как на рисунке, флажок имеет три состояния на форме ;) :
Прикрепленные файлы:
Spartan; Abadonna; +2 Ответить
87. Abadonna 3958 20.05.11 08:46 Сейчас в теме
89. fishca 1254 20.05.11 08:49 Сейчас в теме
(87) про это (три состояния в 1С) иногда забываешь при написании кода :)
91. Lara.Builova 20.05.11 09:12 Сейчас в теме
(89) А вот запрос
Возврат Запрос.Выполнить();

возвращающий в функцию выборку
ИсходныеДанные = ПроведениеРасчетовПолныеПрава.ПолучитьДанныеДляРасчета(ИмяРегистра, ВыборкаКатегорий.КатегорияРасчета, НеобходимыеДанные, Регистратор, ГоловнаяОрганизация, ОбособленноеПодразделение, УчетнаяПолитикаПоПерсоналу, ПериодРегистрации, , , Налогоплательщик, КомментироватьРасчет).Выбрать()

выгруженный в ТЗ в отладчике.
Напомню, в конструкции в (68) он возвращал ЗагруженоИзЭкселя неопеределено в условия использования только у клиентов.
Прикрепленные файлы:
94. fishca 1254 20.05.11 09:16 Сейчас в теме
(91) каких только глюков не увидишь :)
96. Lara.Builova 20.05.11 09:19 Сейчас в теме
(89) Я ждала, что разговор перейдет в русло разименования полей, и даже наводила "Сразу скажу - база файловая" но это уже будет слишком долго и нудно.
Закончим на этом. :)
98. fishca 1254 20.05.11 09:28 Сейчас в теме
88. vip 20.05.11 08:48 Сейчас в теме
90. Lara.Builova 20.05.11 08:49 Сейчас в теме
(86)У искомого флажка тип Булево.
Прикрепленные файлы:
76. Lara.Builova 20.05.11 07:37 Сейчас в теме
(74)(75)
Ситуация нештатная, почему программа не увидела флажок, записанный уже в форме через ИсходныеДанные.Регистратор.ЗагруженоИзЭкселя - то ли запрос огромный, а тут еще и реквизит "через точку" запрашивается, и времени не хватило, то ли платформа так отработала, я не знаю.
Обсуждать
Если  ЗагруженоИзЭкселя <> Истина Тогда
явно не вижу смысла.
У себя дома все было сделано нормально и правильно, у клиентов вот выдало неопределено, что там поставить в таком случае неважно, красивости кода пусть волнуют "оптимизаторов", когда они ходят по решенным до них проблемам и хихикают, не зная и не понимая исходной ситуации.
Поэтому всем ищущим "говнокод" и желающим поднять свою самооценку за счет этого хочется сказать - СМОТРИ В КОРЕНЬ, а не на красивости.
Вот меня лично передергивает от такого кода:
	If ДатаНачалаДействияДоговора >= ДатаОкончанияДействияДоговора Then
		sMsg = "Дата начала периода больше или равна даты окончания! Введите правильные даты периода дейсвия договора.";
		DoMessageBox(sMsg);
		Return;
	endIf;

И это сущая мелочь, у автора есть функции, дублирующие стандартные методы, а также есть места, где вместо использования готовой экспортной функции из общего модуля пишется новая в каждом документе. Смотрится весьма комично. :D
78. Ish_2 1104 20.05.11 07:57 Сейчас в теме
(76) Лариса , я Вам пишу про ошибку в простейшем примере (74) - предлагаю проверку.
А Вы пишете :
а)про "огромный" запрос
б)про то что у Вас дома(!) всё корректно работает
в) "обсуждать нету смысла".
80. Lara.Builova 20.05.11 08:02 Сейчас в теме
(78) Мне твои детские споры неинтересны, меня ты этим не зацепишь, давно тебя знаю. Ищи другую жертву попроверяться ;)
83. Ish_2 1104 20.05.11 08:18 Сейчас в теме
62. Abadonna 3958 19.05.11 19:30 Сейчас в теме
Когда появляются разработки автора данноой статьи - как луч в темном царстве.

Ой-ой... У меня-то мозгов, слава Богу, хватает всякие прибамбасы делать, да к тому же не на (непечатные слова) 1С.
А отсюда мне теперь надо одно - не заниматься рисованием табличек.
А то, что мы делаем в 1С - настолько разнообразно и достаточно уникально, что один хрен никакой сайт не поможет.
А балдеть над тем, какой умный Татитуту (действительно умный!) - это не для меня.
P.S. Мне сегодня доказывали, что 8х нельзя одновременно выделить и редактируемую строку целиком и отдельно активную ячейку этой стоки в ТЧ документа.
(разными цветами, разумеется)
Не поверил... Через полчаса и они уже не верили. И таких примочек только за день рождается несколько штук. И что? Публиковать что ли?
Кстати, забавно... Код, который на ура отработал в 8.2 вдруг забуксовал в 8.1, пока еще одну строчку не дописал
63. Lara.Builova 19.05.11 19:43 Сейчас в теме
(62) А кто предлагает тебе балдеть? Как ты сам когда то выразился - не нравится, проходи мимо, что я методично делаю со многими разработками. Есть люди которых радует, да и сам сайт от этого только выигрывает, все лучше, чем срачи мани и поручика читать. СВЕТЛЕЕ.
65. Abadonna 3958 19.05.11 19:45 Сейчас в теме
(63) А тебе не кажется странным, что твои плюсы появляются через 30 секунд после опубликования их Татитуту?
Я в свое время Кушниру вставлял, чтобы не плюсовал мои сходу, даже не качавши и не читавши.
Лора, ты кому угодно мозги парить можешь, но только не мне!
69. Lara.Builova 19.05.11 20:37 Сейчас в теме
(65) да мне плевать кто что думает, плюсую и буду плюсовать, разработки у него классные. На мой вкус. Необычные и веселые - ШУТКИ. А простыни сложнейшего кода в УПП, УТП, ЗУПах всяких - это работа, мне отсюда кроме обработок по правам в RLS больше не особенно что то нужно. Татитуту - это отдых и отвлечение от работы, Подвигает думать искать что то новое, макросы ваши эти :)
70. fishca 1254 19.05.11 21:05 Сейчас в теме
(69)
Необычные и веселые - ШУТКИ...Татитуту - это отдых и отвлечение от работы

Все правильно тебе нравятся шутки, другим само решение на 1С, еще кому-то хочется написать тоже самое но по другому, еще кому-то вообще перевернуть с ног на голову. Так что каждому свое. И самое главное не надо учить жить, сами мы с усами. Ценность выкладываемых здесь обработок как в идеях витающих в коллективном разуме, так и в самом коде обработок и программ, причем многие берут за основу чью либо обработку/идею и выводят ее на совершенно новый уровень и это правильно. У кого-то идей к примеру море, а реализовывать например нет никакого желания. А у кого-то и наоборот может быть.
72. Lara.Builova 19.05.11 21:25 Сейчас в теме
(70) мне нравится эксклюзив :)
(71) заметила, конечно, я внимательная иногда ;)
66. Abadonna 3958 19.05.11 19:48 Сейчас в теме
+[65]
AS108, Lara.Builova, Fr1eNd_Tver

Тут тебя случайно как-то Fr1eNd_Tver обогнал :o
67. Abadonna 3958 19.05.11 19:57 Сейчас в теме
extrim-style alnazarov Lara.Builova
progersan mamba30 Lara.Builova
Ish_2 gutentag Lara.Builova

Нравится тебе Татитуту, желаешь его вечно плюсовать - да на здоровье.
Только базу теоретическую под это не подводи! Хотя бы при мне...
77. Abadonna 3958 20.05.11 07:54 Сейчас в теме
у автора есть функции, дублирующие стандартные методы,

Это у какого автора?
79. Lara.Builova 20.05.11 07:58 Сейчас в теме
(77) Автор дописок к конфе у моих клиентов, здесь не присутствет скорее всего.
92. Abadonna 3958 20.05.11 09:13 Сейчас в теме
уй.. достали... отпишусь от комментов
93. Lara.Builova 20.05.11 09:15 Сейчас в теме
(92) Текст запроса приложить?
95. fishca 1254 20.05.11 09:17 Сейчас в теме
(93) приготовил попкорн :) :D
97. Lara.Builova 20.05.11 09:21 Сейчас в теме
(95) У кого есть ЗУП, может и так посмотреть, в (91) во втором коде лежит путь.
Оставьте свое сообщение