Вопросы от новичка или учимся программировать в 1с.
Приветствую.
С 1с не знаком залез в код обработки «Сократить журнал регистрации» решил доработать и поучится. Но возник вопросы.
Есть ли справочник понятный и открытый (бесплатный) по языку 1с ? + Может есть стартовый самоучитель?
Мне нужно больше для себя, что бы банально по мелочи мог поправить чужую обработку ну и для саморазвития, поэтому нужно все-го лишь
1) уметь получить информацию от пользователя,
2) уметь её проверить (валидность),
3) уметь её записать в базу,
4) у меть считать с базы,
5) уметь результат вывести пользователя)
Не какое ООП, и сложные проекты не планирую.
Второй вопрос.
Обработка получает значение от пользователя. Это может быть «Неделя, месяц и число».
Стараюсь определить что пользователь ввел число. Делаю
ИначеЕсли ТипЗнч(ПериодДеленияЖР) = Тип("Число") Тогда
Но получаю значение «Строка» хотя и передаю скрипту «180». Как проверить валидность и понять, что обработка получило числовое значение?
Мда, не ожидал, что я буду такие нубские вопросы задавать((.
С 1с не знаком залез в код обработки «Сократить журнал регистрации» решил доработать и поучится. Но возник вопросы.
Есть ли справочник понятный и открытый (бесплатный) по языку 1с ? + Может есть стартовый самоучитель?
Мне нужно больше для себя, что бы банально по мелочи мог поправить чужую обработку ну и для саморазвития, поэтому нужно все-го лишь
1) уметь получить информацию от пользователя,
2) уметь её проверить (валидность),
3) уметь её записать в базу,
4) у меть считать с базы,
5) уметь результат вывести пользователя)
Не какое ООП, и сложные проекты не планирую.
Второй вопрос.
Обработка получает значение от пользователя. Это может быть «Неделя, месяц и число».
Стараюсь определить что пользователь ввел число. Делаю
ИначеЕсли ТипЗнч(ПериодДеленияЖР) = Тип("Число") Тогда
Но получаю значение «Строка» хотя и передаю скрипту «180». Как проверить валидность и понять, что обработка получило числовое значение?
Мда, не ожидал, что я буду такие нубские вопросы задавать((.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(6)Если совсем примитивно и нет опыта программирования то лучше параллельно учить что то типа Python. Очень хорошо помогает. Можно и PHP конечно, но мне как то не очень он понравился :) Хотя сейчас приходится и с ним разбираться.
Я когда переходил с низкоуровневых языков типа Асм и Си. То было сложно... потом попалась книжка по C# и небольшая задача. Как то после неё и 1С пошёл лучше.
Учиться надо не программировать в 1С. А программировать "вообще". Тогда будет намного проще ;)
Я когда переходил с низкоуровневых языков типа Асм и Си. То было сложно... потом попалась книжка по C# и небольшая задача. Как то после неё и 1С пошёл лучше.
Учиться надо не программировать в 1С. А программировать "вообще". Тогда будет намного проще ;)
Сейчас общаюсь с базой так
Как мне самому проще смотреть значение переменой ? Пробовал через сообщить, но окно так мелькает что я не успеваю разобрать ((
Путь = СтрокаСоединенияИнформационнойБазы();
Вопрос(Путь, РежимДиалогаВопрос.ДаНет, 30, КодВозвратаДиалога.Да, , КодВозвратаДиалога.Да);
Как мне самому проще смотреть значение переменой ? Пробовал через сообщить, но окно так мелькает что я не успеваю разобрать ((
(13)
У меня цель запускать вот так
"C:\Program Files (x86)\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\root\чччч бухгалтерия3" /N "admin" /P "0000" /Execute "Z:\Public\!admin\Сжатие журнала 1с\СократитьЖурналРегистрацииПериод.epf" /C "Период=Месяц(4); СохранитьЖР=C:\root\чччч бухгалтерия3\1Cv8Log\"
Отладчик. Начал бы ты все таки с учебников.
я не могу (а может не умею)
У меня цель запускать вот так
"C:\Program Files (x86)\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\root\чччч бухгалтерия3" /N "admin" /P "0000" /Execute "Z:\Public\!admin\Сжатие журнала 1с\СократитьЖурналРегистрацииПериод.epf" /C "Период=Месяц(4); СохранитьЖР=C:\root\чччч бухгалтерия3\1Cv8Log\"
Конфигурации, на которых можно поучиться. По книгам наверное "Практическое пособие разработчика".
Вот значение получается парсингом строки. Поэтому изначально тип задать нельзя.
Я хочу привести значение принудительно к integer . Но не понимаю пока если, что не так как ругнется 1с, повиснет или ...
Я хочу привести значение принудительно к integer . Но не понимаю пока если, что не так как ругнется 1с, повиснет или ...
ДлинаПараметра = СтрДлина(ПараметрЗапуска);
НайденоРавноСКонца = СтрНайти(ПараметрЗапуска, "=", НаправлениеПоиска.СКонца);
ПутьДоФайлаКопии = Прав(ПараметрЗапуска,ДлинаПараметра-НайденоРавноСКонца);
НайденоРавноСНачала = СтрНайти(ПараметрЗапуска, "=");
ПараметрПослеПервогоРавно = Прав(ПараметрЗапуска,ДлинаПараметра-НайденоРавноСНачала);
НайденаТочкаСЗапятой = СтрНайти(ПараметрПослеПервогоРавно, ";");
ПериодДеленияЖР = Лев(ПараметрПослеПервогоРавно, НайденаТочкаСЗапятой-1);
СократитьЖурнал = Ложь;
Вопрос(ТипЗнч(ПериодДеленияЖР), РежимДиалогаВопрос.ДаНет, 30, КодВозвратаДиалога.Да, , КодВозвратаДиалога.Да);
Сообщить(ПериодДеленияЖР); // 1
Если ПериодДеленияЖР = "День" Тогда
СократьЖурналДоДаты = НачалоДня(ТекущаяДата() - 86400);
СократитьЖурнал = Истина;
ИначеЕсли ПериодДеленияЖР = "Неделя" Тогда
Если ДеньНедели(ТекущаяДата()) = 1 Тогда
//Будем сокращать по понедельникам
СократитьЖурнал = Истина;
СократьЖурналДоДаты = НачалоНедели(ТекущаяДата() - 86400);
КонецЕсли;
ИначеЕсли ПериодДеленияЖР = "Месяц" Тогда
Если День(ТекущаяДата()) = 1 Тогда
//Будем сокращать первого числа
СократитьЖурнал = Истина;
СократьЖурналДоДаты = НачалоМесяца(ТекущаяДата() - 86400);
КонецЕсли;
ИначеЕсли ПериодДеленияЖР = "Год" Тогда
Если ДеньГода(ТекущаяДата()) = 1 Тогда
//Будем сокращать первого января
СократитьЖурнал = Истина;
СократьЖурналДоДаты = НачалоГода(ТекущаяДата() - 86400);
КонецЕсли;
ИначеЕсли ТипЗнч(ПериодДеленияЖР) = Тип("Число") Тогда
Вопрос(ПериодДеленияЖР, РежимДиалогаВопрос.ДаНет, 30, КодВозвратаДиалога.Да, , КодВозвратаДиалога.Да);
СократитьЖурнал = Истина;
СократьЖурналДоДаты = ТекущаяДата() - 86400 * ПериодДеленияЖР;
КонецЕсли;
Показать
В 8-ке почти вся документация, слава богу, встроенная.
Открываешь конфигуратор - справка- содержание справки и читаешь.
Для начала "Общее описание встроенного языка", "Глобальный контекст" и "Универсальные коллекции значений".
Это типа низкоуровневая база, похожая на аналогичную в других языках.
Ну а остальное - это фреймворк и конкретные прикладные объекты которые изучать и изучать. Можно от задач.
Начать можно с книжки "Практическое пособие разработчика". Она как раз для этого. Никуда не углубляется, но показывает как можно сляпать простенькое приложение со типовыми аспектами использования.
Открываешь конфигуратор - справка- содержание справки и читаешь.
Для начала "Общее описание встроенного языка", "Глобальный контекст" и "Универсальные коллекции значений".
Это типа низкоуровневая база, похожая на аналогичную в других языках.
Ну а остальное - это фреймворк и конкретные прикладные объекты которые изучать и изучать. Можно от задач.
Начать можно с книжки "Практическое пособие разработчика". Она как раз для этого. Никуда не углубляется, но показывает как можно сляпать простенькое приложение со типовыми аспектами использования.
Непонятно, чем у тебя изначально является "ПериодДеленияЖР". Скорее всего строковый реквизит. Т.е. что бы ты туда не вводил - будет строка.
Есть функция Число() позволяющая преобразовать строку (содержащую число) к числовому типу.
Но, к сожалению, если там не число - будет вызвано исключение. Поэтому самый простой вариант не самый красивый:
Есть функция Число() позволяющая преобразовать строку (содержащую число) к числовому типу.
Но, к сожалению, если там не число - будет вызвано исключение. Поэтому самый простой вариант не самый красивый:
ПериодЧислом = Неопределено;
Попытка
ПериодЧислом = Число(ПериодДеленияЖР);
Исключение
КонецПопытки;
Если ПериодЧислом = Неопределено Тогда
Сообщить("Период нифига не числом");
КонецЕсли;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот