|   |   | 
| 
 | Синхронные vs асинхронные | ☑ | ||
|---|---|---|---|---|
| 0
    
        Cool_Profi 21.09.18✎ 14:21 | 
        Начал тут переделывать код под асинхронные вызовы...
 С оповещениями и выборами файлов понятно.. Но вот тут такой код у меня нарисовался &НаКлиенте Функция ПолучитьТекстИзФайла(п_ПутьКФайлу) л_Файл = Новый Файл(п_ПутьКФайлу); Если НЕ л_Файл.Существует() Тогда ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Файл " + п_ПутьКФайлу + " не существует. Загрузка невозможна."); Возврат Неопределено; КонецЕсли; л_ТекстДок = Новый ТекстовыйДокумент; л_ТекстДок.Прочитать(п_ПутьКФайлу); Возврат л_текстДок.ПолучитьТекст(); КонецФункции Как видно - он проверяет наличие файла и при существовании - возвращает текст из него. Как такое переделать на асинхроны без заведения лишних переменных... | |||
| 1
    
        Lexey_ 21.09.18✎ 14:29 | 
        (0) НачатьПроверкуСуществования()     | |||
| 2
    
        Hans 21.09.18✎ 14:30 | 
        У тебя этот код превратится в 3 -4 процедуры.     | |||
| 3
    
        Cool_Profi 21.09.18✎ 14:31 | 
        (1) Это и ежу понятно. Как дальше значение возвращать? Кроме как заведение внешней переменной с результатом опроса - я не вижу пока     | |||
| 4
    
        Hans 21.09.18✎ 14:32 | 
        (3) Параметры пробрасываются ведь в Описание оповещения.     | |||
| 5
    
        Hans 21.09.18✎ 14:33 | 
        (4) Которые потом появляются в "ПроверкаФАйлаЗавершение"     | |||
| 6
    
        Cool_Profi 21.09.18✎ 14:35 | 
        (4) Да, но там же процедура в оповещении... И более того...
 У меня эта функция вызывается где-то так: ИмяФайла = ....; Полученныйтекст = ПолучитьТекстИзФайла(ИмяФайла); Если ПолученныйТекст = Неопределено Тогда Возврат; Иначе обработатьТекст(ПолученныйТекст); КОнецЕсли; И вот тут начинаются несовсемпонятки... | |||
| 7
    
        Hans 21.09.18✎ 14:44 | 
        Вот это у тебя будут последние строчки в процедуре
 ИмяФайла = ....; ПолучитьТекстИзФайла(ИмяФайла); А потом в ОбработчикеОповещения НачатьЧтениеЗавершение будешь дальше работать с текстом: Если ПолученныйТекст = Неопределено Тогда Возврат; Иначе обработатьТекст(ПолученныйТекст); КОнецЕсли; | |||
| 8
    
        Hans 21.09.18✎ 14:45 | 
        Т. е. получается вместо нормально структурированой процедуры - овнокод.     | |||
| 9
    
        Cool_Profi 21.09.18✎ 14:51 | 
        (8) Вот и я про то говорю... Намудрили... Но переделывать, похоже, придётся... 1с (фирма) может на проверке зарубить (((     | |||
| 10
    
        Cyberhawk 21.09.18✎ 15:18 | 
        (9) Тиражная конца какая-то? "1С:Совместимо" мутишь?     | |||
| 11
    
        Cool_Profi 21.09.18✎ 15:19 | 
        (10) Устроился на работу в контору, которая уже не первый год такое делает. И проходит успешно. И свои коробки продаёт     | |||
| 12
    
        Вафель 21.09.18✎ 16:20 | 
        вот такое вот Г у нас в тиражных )))     | |||
| 13
    
        Franchiser 21.09.18✎ 16:25 | 
        (11) беги оттуда     | |||
| 14
    
        Numerus Mikhail 21.09.18✎ 16:25 | 
        А кто-нибудь может объяснить зачем в конкретно этом случае нужно так делать? Какие плюсы у этого будут?     | |||
| 15
    
        Cyberhawk 21.09.18✎ 16:26 | 
        (12) (13) Почему Г?     | |||
| 16
    
        Cool_Profi 21.09.18✎ 16:27 | 
        (13) В нащшей деревне не так много приличных рабодателей, чтобы так ими раскидываться     | |||
| 17
    
        Cool_Profi 21.09.18✎ 16:27 | 
        (15) По определению     | |||
| 18
    
        Cyberhawk 21.09.18✎ 16:29 | 
        (14) https://1c.ru/rus/products/1c/predpr/compat/soft/requirements.htm
 Пункт 2.5.16 "При разработке конфигураций, предназначенных для работы в веб-клиенте, запрещено использовать модальные формы и диалоги. ... Для этого свойство конфигурации "Режим использования модальности" должен быть установлено в "Не использовать", а вместо модальных методов следует вызывать их немодальные аналоги с блокированием окна владельца или всего интерфейса." Видимо у ТС конфа заявлена с поддержкой веб-клиента. | |||
| 19
    
        Cyberhawk 21.09.18✎ 16:30 | 
        (16) Какой регион (примерно)?     | |||
| 20
    
        упороный 21.09.18✎ 16:30 | 
        (16) Калуга?     | |||
| 21
    
        Cool_Profi 21.09.18✎ 16:34 | 
        (20) Нет
 (19) Дальнее подмосковье | |||
| 22
    
        novichok79 21.09.18✎ 17:01 | 
        мои 5 копеек говнокода
 &НаКлиенте Процедура ОбработатьВыборЛогФайла(ВыбранныйЭлемент) РезультатПередачи = ЯРоняю1ССервер.ПередатьФайлНаКлиентВХранилище(ВыбранныйЭлемент.Значение, УникальныйИдентификатор); АдресВХранилище = РезультатПередачи.АдресВХранилище; ТекстОшибки = РезультатПередачи.ТекстОшибки; Если Не ПустаяСтрока(ТекстОшибки) Тогда ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, , Элементы.НадписьЛогФайлы.Имя); Иначе Если Не ЗначениеЗаполнено(АдресВХранилище) Тогда ОбщегоНазначенияКлиентСервер.СообщитьПользователю( СтрШаблон(НСтр("ru = 'Файл ""%1"" не найден на сервере!'"), ВыбранныйЭлемент.Значение), , Элементы.НадписьЛогФайлы.Имя); ИначеЕсли ТипЗнч(АдресВХранилище) = Тип("Строка") И ЭтоАдресВременногоХранилища(АдресВХранилище) Тогда ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(АдресВХранилище); ВременныйФайл = ПолучитьИмяВременногоФайла("txt"); ДополнительныеПараметры = Новый Структура; ДополнительныеПараметры.Вставить("ВременныйФайл", ВременныйФайл); Обработчик = Новый ОписаниеОповещения( "ОбработатьВыборЛогФайлаУдачнаяЗапись", ЭтотОбъект, ДополнительныеПараметры, "ОбработатьВыборЛогФайлаОшибкаПриЗаписи", ЭтотОбъект); ДвоичныеДанныеФайла.НачатьЗапись(Обработчик, ВременныйФайл); КонецЕсли; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ОбработатьВыборЛогФайлаУдачнаяЗапись(ДополнительныеПараметры) Экспорт ВременныйФайл = ДополнительныеПараметры.ВременныйФайл; Попытка ЗапуститьПриложение(ВременныйФайл); Исключение ОбщегоНазначенияКлиентСервер.СообщитьПользователю( СтрШаблон(НСтр("ru = 'Не удалось открыть лог-файл ""%1"" по причине ошибки: |%2'"), ДополнительныеПараметры.ВременныйФайл, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())), , Элементы.НадписьЛогФайлы.Имя); КонецПопытки; ЯРоняю1СКлиент.ДобавитьФайлВоВременные(ВременныйФайл); КонецПроцедуры &НаКлиенте Процедура ОбработатьВыборЛогФайлаОшибкаПриЗаписи(ИнформацияОбОшибке, СтандартнаяОбработка, ДополнительныеПараметры) Экспорт СтандартнаяОбработка = Ложь; ОбщегоНазначенияКлиентСервер.СообщитьПользователю( СтрШаблон(НСтр("ru = 'Не удалось открыть лог-файл ""%1"" по причине ошибки: |%2'"), ДополнительныеПараметры.ВременныйФайл, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)), , Элементы.НадписьЛогФайлы.Имя); КонецПроцедуры | |||
| 23
    
        Numerus Mikhail 21.09.18✎ 17:06 | 
        (18) Но ведь Существует() никак не связан с модальностью.
 Или я чего-то не знаю? | |||
| 24
    
        Cool_Profi 21.09.18✎ 17:09 | 
        (23) Проверка конфигурации на него тыкает пальцем. И есть метод начать проверку существования. Значит, связан.
 Только не с модальностью, а с синхронностью. | |||
| 25
    
        Garykom гуру 21.09.18✎ 17:12 | 
        Гм кто хотя бы в курсе каким образом веб-клиент 1С работает с файловой системой?     | |||
| 26
    
        Garykom гуру 21.09.18✎ 17:12 | 
        (25)+ Поймете как и через какое место - сразу пропадут все вопросы и про модальность и про синхронность!     | |||
| 27
    
        Numerus Mikhail 21.09.18✎ 17:13 | 
        (25) Где про это почитать?     | |||
| 28
    
        Garykom гуру 21.09.18✎ 17:15 | 
        (27) Эээто же стандартно и легко догадаться.
 JS в браузере работает в песочнице и дальше нее выползти не может, но может по сети общаться локально. И можно запустить локальное внешнее сетевое приложение (плагин или расширение браузера) которое уже общается с JS внутри веб-страницы (веб-клиента 1С) и работает с файловой системой через операционку. | |||
| 29
    
        Skylark 21.09.18✎ 18:04 | 
        (0) Кури в типовых модули начинающиеся на "ПередачаФайлов" (или "РаботаСФайлами"? не помню точно). И примеры использования процедур из них типа 
 ПередачаФайлов.ПередатьФайлыНаСервер(ОповещениеОЗагрузкеФайлов, ПомещаемыеФайлы, ЭтаФорма.УникальныйИдентификатор); | |||
| 30
    
        Cyberhawk 21.09.18✎ 18:12 | 
        (23) Да, точно.
 В приведенном фрагменте текста (требования для "1С:Совместимо") кстати не упоминается о запрете использования синхронных вызовов | |||
| 31
    
        Garykom гуру 21.09.18✎ 18:16 | 
        (30) Скорее всего дело не в "1С:Совместимо" (ибо никто не мешает писать конфы под ОФ или даже старые платформы) а во Фреше и веб-клиентах.     | |||
| 32
    
        Cool_Profi 26.09.18✎ 11:01 | 
        Возвращаясь к теме.
 Пришлось переделать на асинхронные. Вот такое получилось: &НаКлиенте Процедура ПолучитьТекстИзФайла(п_ПутьКФайлу) л_ТекстДок = Новый ТекстовыйДокумент; л_ТекстДок.НачатьЧтение(Новый ОписаниеОповещения("ПолучитьТекстИзФайла_Завершение", ЭтотОбъект,,"ПолучитьТекстИзФайла_Ошибка", ЭтотОбъект), п_ПутьКФайлу); КонецПроцедуры &НаКлиенте Процедура ПолучитьТекстИзФайла_Завершение(п_текстФайла) Экспорт ЭтотОбъект.ТекстКлассификатора = п_текстФайла; Оповестить("Чтение закончено"); КонецПроцедуры &НаКлиенте Процедура ПолучитьТекстИзФайла_Ошибка() Экспорт а = 1; КонецПроцедуры Но в завершении прилетает неопределено... Ошибок нет. Всё выполняется на клиенте, файл существует и права на него есть точно. Что я не так сделал? | |||
| 33
    
        Вафель 26.09.18✎ 11:02 | 
        (32) лучше через ЧтениеТекста делать     | |||
| 34
    
        Вафель 26.09.18✎ 11:02 | 
        И он синхронный     | |||
| 35
    
        Cool_Profi 26.09.18✎ 11:07 | 
        (34) Вот именно, что синхронный. А мне нужна асинхронность.     | |||
| 36
    
        Вафель 26.09.18✎ 11:07 | 
        (35) зачем?     | |||
| 37
    
        Вафель 26.09.18✎ 11:07 | 
        Он синхронный и это не приводит к ошибке     | |||
| 38
    
        Cool_Profi 26.09.18✎ 11:09 | 
        (36) "РегистрСведений.МойРег.Форма.ФормаСписка.Форма Использование синхронного вызова: "Прочитать""
 Нарушение 1с-совместимо | |||
| 39
    
        Cool_Profi 26.09.18✎ 11:09 | 
        (37) У меня ошибки при выполнении и так нет )) А вот правила нарушаются     | |||
| 40
    
        Lexey_ 26.09.18✎ 11:11 | 
        (32) "Но в завершении прилетает неопределено... "
 НачатьЧтение() Параметры: <ОписаниеОповещения> (необязательный) Тип: ОписаниеОповещения. Содержит описание процедуры, которая будет вызвана после завершения чтения файла со следующими параметрами:•<ДополнительныеПараметры> - значение, которое было указано при создании объекта ОписаниеОповещения. | |||
| 41
    
        Вафель 26.09.18✎ 11:11 | 
        (38) у тебя именно ЧтениеТекста было?     | |||
| 42
    
        Lexey_ 26.09.18✎ 11:12 | 
        (32) что передаешь, то и прилетает     | |||
| 43
    
        Cool_Profi 26.09.18✎ 11:15 | 
        (40) А где тогда текст прочитанный?
 (41) нет | |||
| 44
    
        tesseract 26.09.18✎ 11:15 | 
        (32)>>ЭтотОбъект,,"ПолучитьТекстИзФайла_Ошибка", ЭтотОбъект)
 Почему ЭтотОбъект? Форма же должна быть, у тебя оповещение в форму должно возвращаться. (33) Чтение текста не читает файл при открытии, это для буферизованной обработки больших файлов. Теперь уже есть двоичные данные, они лучше тк можно передавать в другие объекты. (40) Туда просто пустую структуру. | |||
| 45
    
        Cool_Profi 26.09.18✎ 11:16 | 
        (44) ЭтотОбъект в новых платформах в модуле формы - это старая ЭтаФорма     | |||
| 46
    
        Lexey_ 26.09.18✎ 11:18 | 
        (43) как где? в переменной л_ТекстДок     | |||
| 47
    
        Cool_Profi 26.09.18✎ 11:19 | 
        (46) л_текстДок - это локальная переменная. В другой она просто не существует.
 Или я чего-то не понимаю... Где можно почитать про эти асинхроные вызовы? | |||
| 48
    
        Lexey_ 26.09.18✎ 11:22 | 
        (47) ну так передай ее через параметр описания оповещения     | |||
| 49
    
        Cool_Profi 26.09.18✎ 11:25 | 
        (48) Я вроде уже допёр...
 Зы. Дайте мне пулемёт и билет в Москву... | |||
| 50
    
        tesseract 26.09.18✎ 11:27 | 
        (45) С какой версии ЭтотОбъект стал формой? 
 (49) У нас 1С Бит и тензор и так много кого привозит. | |||
| 51
    
        Вафель 26.09.18✎ 11:27 | 
        (50) давно уже так     | |||
| 52
    
        tesseract 26.09.18✎ 11:29 | 
        (51) Не замечал. Реквизиты формы и уникальный идентификатор?     | |||
| 53
    
        Cool_Profi 26.09.18✎ 11:30 | 
        (50) У меня в 8,3,12 - на клиенте это управляемая форма     | |||
| 54
    
        Cool_Profi 26.09.18✎ 11:31 | ||||
| 55
    
        tesseract 26.09.18✎ 11:34 | 
        (53) Это общая форма, или форма объекта? Хотя на клиенте да, там нет объекта как такового. Возможно как раз не применяю тк контекст может прыгать. Лучше используй форму.     | |||
| 56
    
        Вафель 26.09.18✎ 11:35 | 
        (52) с самых первых версий 8.3     | |||
| 57
    
        tesseract 26.09.18✎ 11:36 | 
        (56) Да я уже понял - ЭтотОбъект просто контекстно зависимый.     | |||
| 58
    
        Вафель 26.09.18✎ 11:38 | 
        (57) Это синоним ЭтаФорма просто - для унификации     | |||
| 59
    
        Вафель 26.09.18✎ 11:39 | 
        Хотя я так и не понял чем чтение текста не угодило     | |||
| 60
    
        Cool_Profi 26.09.18✎ 11:39 | 
        (55) Это форма встроенной обработки. Для объектов метаданных то же самое     | |||
| 61
    
        Cool_Profi 26.09.18✎ 11:40 | 
        (59) А у него есть асинхронный вызов чтения?     | |||
| 62
    
        Вафель 26.09.18✎ 11:41 | 
        (61) он там НЕ нужен, его не нужно переделывать. Не все объекты нужно переделывать под асинхронное. Поставь в конфе запретить синхронные и увидь | |||
| 63
    
        tesseract 26.09.18✎ 11:42 | 
        (58) Если процедура выполняется на сервере, там ЭтотОбъект и ЭтаФорма - будут разными. 
 (59) Там надо поток делать. Если у кула 8/3/12 - поток будет быстрее. ЧтениеТекста отлично работает через поток. | |||
| 64
    
        Cool_Profi 26.09.18✎ 11:42 | 
        (62) Есть требования к коробочным конфигурациям - не должно быть синхронных вызовов. Так что тут правила пишу не я     | |||
| 65
    
        tesseract 26.09.18✎ 11:43 | 
        (61) Есть - если создать на основании потока, но не забывай объявлять ссылку в реквизитах формы или переменной на клиенте, а то потеряешь саму ссылку на поток.     | |||
| 66
    
        Новиков 26.09.18✎ 11:58 | 
        (63) >>Там ЭтотОбъект и ЭтаФорма - будут разными. 
 В чем же отличие? | |||
| 67
    
        Вафель 26.09.18✎ 11:59 | 
        (64) ладно, что с убогово взять     | |||
| 68
    
        Вафель 26.09.18✎ 11:59 | 
        (63) из файла можно без всяких потоков читать     | |||
| 69
    
        tesseract 26.09.18✎ 12:02 | 
        (66) Посмотри в отладчике. 
 (68) ЧтениеТекста поддерживает асинхронное чтение только через поток. Если у тебя Вебклиент, то это единственный выход, ТекстовыйДокумент сцука тяжелый. | |||
| 70
    
        Новиков 26.09.18✎ 12:04 | 
        (69) я посмотрел и глазами, и отладчиком.
 ЭтаФорма = ЭтотОбъект ИСТИНА Так чем они отличаются? | |||
| 71
    
        tesseract 26.09.18✎ 12:06 | 
        (70) Контекстно зависимое.     | |||
| 72
    
        Вафель 26.09.18✎ 12:09 | 
        (71) что ты подразумеваешь по этим словом     | |||
| 73
    
        tesseract 26.09.18✎ 12:14 | 
        (72) В разных процедурах будет получен объект разного типа. Я на клиенте предпочитаю не работать и давно сказал, что я был не прав. Предпочитаю строгую типизацию.     | |||
| 74
    
        Новиков 26.09.18✎ 12:14 | 
        (71) Коллега, конкретики можно поболее. Конкретный кейс, где эти два объекта разные и как это проявляется? Можешь привести пример?     | |||
| 75
    
        Cool_Profi 26.09.18✎ 12:24 | 
        (63) Ты ошибаешься. На клиенте и на сервере в модуле формы - ЭтотОбъект - это управляемая форма.     | |||
| 76
    
        Вафель 26.09.18✎ 12:27 | 
        чтение текста на веб клиенте нельзя. поэтому мой совет отменяется     | |||
| 77
    
        Новиков 26.09.18✎ 12:31 | 
        (75) ну вот. Испортил все малину.     | |||
| 78
    
        tesseract 26.09.18✎ 12:32 | 
        (74) Вызови метод объекта из формы. 
 (75) В первом случае будут элементы формы с событиями и прочим, во втором - данные переданные на сервер. (76) Пролистал - вместо него теперь НачатьЧтение, читает что угодно. | |||
| 79
    
        Вафель 26.09.18✎ 12:38 | 
        (78)  где ты увидел НачатьЧтение?     | |||
| 80
    
        tesseract 26.09.18✎ 12:44 | 
        (79) В справке - тоже самое, но теперь и двоичные данные может читать.     | |||
| 81
    
        Вафель 26.09.18✎ 12:45 | 
        сам объект ЧтениеТекста не доступен в веб клиенте     | |||
| 82
    
        singlych 26.09.18✎ 12:46 | 
        (32) Параметр у оповещения ПолучитьТекстИзФайла_Завершение должен быть только один, и это - структура ДополнительныеПараметры. В нее надо помещать твой текстовый док в конструкторе оповещения. Типа
 ... л_ТекстДок = Новый ТекстовыйДокумент; ДополнительныеПараметры = Новый Структура("ТектДок", л_ТекстДок); Оповещение = Новый ОписаниеОповещения("ПолучитьТекстИзФайла_Завершение", ЭтотОбъект, ДополнительныеПараметры,"ПолучитьТекстИзФайла_Ошибка", ЭтотОбъект); л_ТекстДок.НачатьЧтение(Оповещение, п_ПутьКФайлу); .... а в ПолучитьТекстИзФайла_Завершение пишешь Процедура ПолучитьТекстИзФайла_Завершение(ДополнительныеПараметры) Экспорт ЭтотОбъект.ТекстКлассификатора = ДополнительныеПараметры.ТекстДок.ПолучитьТекст(); Оповестить("Чтение закончено"); КонецПроцедуры как-то так | |||
| 83
    
        Новиков 26.09.18✎ 12:46 | 
        (78) я который раз уже прошу - приведи конкретный кусок кода, где наглядно бы показывались отличия этих двух объектов. Ты сознательно уходишь от ответа. Ты в курсе чем отличаются эти объекты - так покажи код. Зачем ты пишешь - вызови метод объекта из формы? Покажи код, где эти два объекта различаются - это сложно или что?     | |||
| 84
    
        singlych 26.09.18✎ 12:47 | 
        (82) а, уже все рассказали.     | |||
| 85
    
        tesseract 26.09.18✎ 12:51 | 
        (83) А самому слабо? Переменные будут доступны? Типы значений у реквизитов формы будут сохраняться при серверном и клиентском вызове?     | |||
| 86
    
        tesseract 26.09.18✎ 12:52 | 
        (81) НачатьЧтение - это фактически асинхронный аналог ЧтениеТекста.     | |||
| 87
    
        Вафель 26.09.18✎ 12:52 | 
        (85) конечно     | |||
| 88
    
        Вафель 26.09.18✎ 12:53 | 
        (86) покажи как ты на веб клиенте прочитаешь файл без текстового документа     | |||
| 89
    
        Новиков 26.09.18✎ 12:54 | 
        (85) ты делаешь вброс, а не я. Ты это декларируешь, направил меня в отладчик - я посмотрел, отличий нет, ну что соответствует документации, которую ты не читал. Я прошу в корректной форме - представь куски кода, ты перешел на слабо. Ну, дальше будем продолжать? Никакого кода, подтверждающего свою правоту ты не предоставишь. Поэтому, зря ты так нервничаешь. Достаточно признать свою ошибку :) Мы же не дети и не спорим на деньги.     | |||
| 90
    
        Мыш 26.09.18✎ 12:58 | 
        Можно ещё так: НачатьСозданиеДвоичныхДанныхИзФайла()     | |||
| 91
    
        Вафель 26.09.18✎ 12:59 | 
        (90) как ты из двоичных данных вытянешь текст?     | |||
| 92
    
        Мыш 26.09.18✎ 13:01 | 
        (91)
 Поток = ДвоичныеДанные.ОткрытьПотокДляЧтения(); ЧтениеТекста = Новый ЧтениеТекста(Поток); | |||
| 93
    
        Вафель 26.09.18✎ 13:02 | 
        (92) см (81)     | |||
| 94
    
        Мыш 26.09.18✎ 13:03 | 
        (93) Двоичные данные можно передавать на сервер.     | |||
| 95
    
        Cool_Profi 26.09.18✎ 13:04 | 
        Возвращаемся к спору о ЭтотОбъект.
 В модуле формы - на сервере и на клиенте ЭтотОбъект и ЭтаФорма - эквиваленты. В модуле объекта - ЭтотОбъект - уже объект, а ЭтаФорма недоступна. | |||
| 96
    
        Cyberhawk 26.09.18✎ 13:05 | 
        (95) Открыл америку ))     | |||
| 97
    
        Вафель 26.09.18✎ 13:06 | 
        (94) можно и сам файл на сервер передать     | |||
| 98
    
        Мыш 26.09.18✎ 13:06 | 
        (97) Тоже вариант, да. Зависит от задачи.     | |||
| 99
    
        Ник080808 26.09.18✎ 13:07 | 
        (95) ЭтотОбъект и ЭтаФорма - эквиваленты.  - Это как форма и объект эквивалентны?     | |||
| 100
    
        Вафель 26.09.18✎ 13:08 | 
        (99) не форма и объект, а Эта форма и Этот объект )))     | |||
| 101
    
        Новиков 26.09.18✎ 13:09 | 
        (95) про модуль объекта речи не было. Коллега грозился подтвердить отличие этих двух объектов в модуле формы :)     | |||
| 102
    
        tesseract 26.09.18✎ 13:17 | 
        (95) У меня хреново с диалектикой, тут тяжело спорить:-) 
 (101) Это тебе так показалось. | |||
| 103
    
        Ник080808 26.09.18✎ 13:18 | 
        (100) шо, в этотобъект реквизиты формы тоже участвуют? ща проверю     | |||
| 104
    
        singlych 26.09.18✎ 14:50 | 
        Ну вы блин проснулись спустя пять лет.
 https://its.1c.ru/db/metod8dev#content:5293:hdoc:pereimenovaniya_metodov_i_svojstv | |||
| 105
    
        Вафель 26.09.18✎ 14:51 | 
        (103) это синонимы     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |