• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

встроенный язык 1С

  • Автор темы Alis
  • Дата начала
A

Alis

Здравствуйте!
У меня такой вопрос.
Есть небольшая программка на встроенном языке 1С, которая должна записать в файл (ею же создаваемый) содержимое справочника Контрагенты. После запуска этой программы, файла найти не могу. Да вообще не могу понять - скомпилилась программа или нет???
При нажатии кнопки "Начать отладку" она просто запускает саму программу "1С Бухгалтерия8.0" и всё!

Объясните пожалуйста! Как понять, что программа скомпилилась и как понять работает вообще она или нет???

СПАСИБО!

P.S. Если можно выложите мне маленький примерчик какого-нибуть рабочего кода(типа Здравствуй Мир), который компилился и запускался!

Ещё раз благодарю. :)
 
K

kaa

Вы вероятно сделали внешнюю обработку ее надо сохранить,

а в режиме предприятия файл->открыть и собственно выбрать файл который сохранили
 
A

Alis

А можете просто объяснить КАК ПОНЯТЬ ЧТО ПРОГРАММА СКОМПИЛИЛАСЬ И ЧТО В НЕЙ НЕТ ОШИБОК!!!
и не могли бы вы всё-таки выложить пример рабочего кода, что погонять его и понять, компилится программа или нет?
 
B

b00tch

синтаксический контроль проходит непосредственно перед сохранением обработки...
компиляция происходит на лету - перед выполнением...
если форма открылась в режиме Предприятия без сообщений об ошибках - значитЪ компиляция прошла успешн0...
 
K

kaa

<!--QuoteBegin-Alis+9:08:2007, 10:47 -->
<span class="vbquote">(Alis @ 9:08:2007, 10:47 )</span><!--QuoteEBegin-->А можете просто объяснить КАК ПОНЯТЬ ЧТО ПРОГРАММА СКОМПИЛИЛАСЬ И ЧТО В НЕЙ НЕТ ОШИБОК!!!
[snapback]74864" rel="nofollow" target="_blank[/snapback]​
[/quote]
Проверка синтаксиса ctrl+F7, Конфигурация->Синтаксический контроль модулей

однако такая проверка проверяет синтаксис так сказать до точки т.е. если есть что-то типа

Документ.Контрагент - то проверяеться только пер. Документ дальнейшие ощибки будут выдоваться
при попыке выполнить код в режиме предприятия и будет ссылка на строку кода





<!--QuoteBegin-Alis+9:08:2007, 10:47 -->
<span class="vbquote">(Alis @ 9:08:2007, 10:47 )</span><!--QuoteEBegin-->и не могли бы вы всё-таки выложить пример рабочего кода, что погонять его и понять, компилится программа или нет?
[snapback]74864" rel="nofollow" target="_blank[/snapback]​
[/quote]
Процедура КнопкаВыполнитьНажатие(Кнопка)
Запрос= Новый Запрос;
Текст= Новый ТекстовыйДокумент;
Запрос.Текст="ВЫБРАТЬ
| Контрагенты.Ссылка
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|
|СГРУППИРОВАТЬ ПО
| Контрагенты.Ссылка";

Результат=Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Текст.ДобавитьСтроку(Выборка.Ссылка);
КонецЦикла;
Текст.Записать("C:\проверка.txt");
КонецПроцедуры
 
V

vitfil

<!--QuoteBegin-b00tch+9:08:2007, 12:22 -->
<span class="vbquote">(b00tch @ 9:08:2007, 12:22 )</span><!--QuoteEBegin-->если форма открылась в режиме Предприятия без сообщений об ошибках - значитЪ компиляция прошла успешн0...
[snapback]74872" rel="nofollow" target="_blank[/snapback]​
[/quote]
ой ли...

Для: Alis
в 1С не компилятор, а транслятор - наподобие васика.
 
B

b00tch

ф0рмально - транслятор или к0мпилятор - не важно... суть в том, что если форма открылась - значитЪ контроль синтаксиса пройден...
 
A

Alis

я написала ЗАВЕДОМО НЕПРАВИЛЬНЫЙ код - она мне говорит, что синтаксических ошибок нет!
 
B

b00tch

<!--QuoteBegin-Alis+9:08:2007, 14:32 -->
<span class="vbquote">(Alis @ 9:08:2007, 14:32 )</span><!--QuoteEBegin-->ЗАВЕДОМО НЕПРАВИЛЬНЫЙ код
[snapback]74901" rel="nofollow" target="_blank[/snapback]​
[/quote]
в студию!...

где ты его написала?... синт. контроль принудительно запускала?
 
V

vitfil

<!--QuoteBegin-b00tch+9:08:2007, 15:26 -->
<span class="vbquote">(b00tch @ 9:08:2007, 15:26 )</span><!--QuoteEBegin-->ф0рмально - транслятор или к0мпилятор - не важно...
[snapback]74898" rel="nofollow" target="_blank[/snapback]​
[/quote]
В некотором смысле (если не затрагивать скорострельность) согласен.
<!--QuoteBegin-b00tch+9:08:2007, 15:26 -->
<span class="vbquote">(b00tch @ 9:08:2007, 15:26 )</span><!--QuoteEBegin-->суть в том, что если форма открылась - значитЪ контроль синтаксиса пройден...
[snapback]74898" rel="nofollow" target="_blank[/snapback]​
[/quote]
Совсем не факт!
<!--QuoteBegin-b00tch+9:08:2007, 16:04 -->
<span class="vbquote">(b00tch @ 9:08:2007, 16:04 )</span><!--QuoteEBegin-->в студию!
[snapback]74909" rel="nofollow" target="_blank[/snapback]​
[/quote]
могу привести примеры на 7.7 (по причине катастрофического незнания 8.0)

Собственно, вот:
Код:
Функция глПрисвоить(Чему,Что) Экспорт
Чему = Что;
Возврат "";
КонецФункции // глПрисвоить(Чему,Что)
//*******************************************
Процедура Сформировать()
Шаблон("[глПрисвоить(ЦенаДляНалога,Конт.Цена,Сумма)]");
КонецПроцедуры
Принудительный синтаксконтроль сообщает о том, что ошибок нет (особенности транслятора).
Еще примеры нужны?
 
K

kaa

<!--QuoteBegin-kaa+9:08:2007, 11:34 -->
<span class="vbquote">(kaa @ 9:08:2007, 11:34 )</span><!--QuoteEBegin-->проверка проверяет синтаксис так сказать до точки т.е. если есть что-то типа

Документ.Контрагент - то проверяеться только пер. Документ дальнейшие ощибки будут выдоваться
при попыке выполнить код в режиме предприятия
[snapback]74875" rel="nofollow" target="_blank[/snapback]​
[/quote]


Для b00tch

Попробуйте в код который я привел вместо
Текст.ДобавитьСтроку(Выборка.Ссылка)
поставить допучтим
Текст.ДобавитьСтроку(Выборка.Контрагент)
 
B

b00tch

Для: vitfil
я не говорил, чт0 если форма открылась - т0 ошибок нетЪ... всег0 лишь контроль пройден...
в приведенном к0де СИНТАКСИЧЕСКИХ ошибок (следуя л0гике транслятора) нетЪ... строка, заключенная в кавычки - символьная константа, в ней можетЪ быть написано чт0 угодно... а то, что она в пр0цессе выполнения оказываецц0 выовом процедуры - видн0 только из л0гики работы к0да, который тупой кампутер фсе равн0 никогда не пойметЪ... хехе
посему ошибка - чисто логическая...

Для: kaa
то же самое - ошибка НЕ СИНТАКСИЧЕСКАЯ, а л0гическая... проявицц0 только при выполнении к0да...
не знаю, как в других средах программирования, а 1цэ работаетЪ именно так... я, личн0, привык и не парюсь...

итого - прохождение синтаксического контроля гарантируетЪ только то, что код запустицц0 в среде 1цэ... то, что в нем неД ашыбок - не можетЪ гарантировать никт0... хехе
 
A

Alis

а если я просто ";" в двух местах не поставила и вместо "Результат" написала "Результт"

Любуйтесь: синтаксических ошибок не найдено, форма запустилась:

Процедура КнопкаВыполнитьНажатие(Кнопка)
Запрос= Новый Запрос;
Текст= Новый ТекстовыйДокумент;
Запрос.Текст="ВЫБРАТЬ
| Контрагенты.Ссылка
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|
|СГРУППИРОВАТЬ ПО
| Контрагенты.Ссылка";

Результат=Запрос.Выполнить();
Выборка = Результт.Выбрать();
Пока Выборка.Следующий() Цикл
Текст.ДобавитьСтроку(Выборка.Ссылка)
КонецЦикла;
Текст.Записать("C:\Alis\Log.txt")
КонецПроцедуры
 
V

vitfil

<!--QuoteBegin-b00tch+9:08:2007, 17:06 -->
<span class="vbquote">(b00tch @ 9:08:2007, 17:06 )</span><!--QuoteEBegin-->в приведенном к0де СИНТАКСИЧЕСКИХ ошибок (следуя л0гике транслятора) нет
[snapback]74926" rel="nofollow" target="_blank[/snapback]​
[/quote]
Неужели лишний параметр при вызове функции не является синтаксической ошибкой? С каких это пор? Если уж среда исполнения дает возможность вызова функции таким образом, значит синтаксконтроль должен проверять и эти возможные ошибки, а не просто пропускать их. В моем примере как раз не логическая, а синтаксическая ошибка. Потому как если оформить вызов более привычным способом, контроль ее обнаруживает.
 
B

b00tch

исп0льзование директивы Шаблон с такой целью - есть недокументированная функция, п0сему претензии неуместны... хехе...

и в00бще, мне кажецц0, что НИ ОДИН компилятор не будетЪ проверять строковые константы, даже если в них содержицца вызов функции...
 
V

vitfil

А где написано, что проверка должна игнорировать недокументированные возможности?

Слегка Офф: можно вас попросить использовать в своих ответах русский язык. Не знаю, как остальных, меня немного раздражает использование цифры "0" вместо буквы "о". Кстати, не так давно это обсуждалось на этом портале и большинство пришло к выводу, что "падонковый" и прочие наречия и написания использовать посетителями форумов, мягко говоря, некомильфо.
 
A

Alis

Для: b00tch
А мой пример как же тогда понимать?
в нём же чистой воды синтаксические ошибки!
 
B

b00tch

<!--QuoteBegin-vitfil+10:08:2007, 10:46 -->
<span class="vbquote">(vitfil @ 10:08:2007, 10:46 )</span><!--QuoteEBegin-->А где написано, что проверка должна игнорировать недокументированные возможности?
[snapback]74998" rel="nofollow" target="_blank[/snapback]​
[/quote]
а где вообще написано, ЧТО должна игнорировать проверка?...
есть правила синтаксиса языка, в которых определено, что строка, заключенная в кавычки, являецц0 литералом типа Строка, а не управляющей конструкцией языка... исх0дя и этой логики проверка и не анализирует этот текст...

слегка офф: если я начну перечислять вещи, которые меня раздражают - клава сломается... поэтому давайте старацц0 быть толерантней, аГа?... и я постараюсь, обещаю...
кстати, не подскажите, к какому наречию относится слово "некомильфо"?
 
A

Alis

Простите, что вмешиваюсь в выяснения ваших личных отношений, но может кто-нибудь мне всё-таки объяснит, почему в моём примере ситаксических ошибок не найдено!
 
B

b00tch

Для: Alis
не знаю... у меня нашлись:
{Форма.Форма(13,11)}: Переменная не определена (Результт)
Выборка = <<?>>Результт.Выбрать();

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

дикое предположение - можетЪ, у тебя переменная Результт обЪявлена как глобальная?... 0_0

ЗЫ... скинь обработку полностью на 1c99[dog]list.ru
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!