Вопросы от новичка или учимся программировать в 1с.

1. ewqewqewq 20.09.17 16:36 Сейчас в теме
Приветствую.
С 1с не знаком залез в код обработки «Сократить журнал регистрации» решил доработать и поучится. Но возник вопросы.
Есть ли справочник понятный и открытый (бесплатный) по языку 1с ? + Может есть стартовый самоучитель?
Мне нужно больше для себя, что бы банально по мелочи мог поправить чужую обработку ну и для саморазвития, поэтому нужно все-го лишь
1) уметь получить информацию от пользователя,
2) уметь её проверить (валидность),
3) уметь её записать в базу,
4) у меть считать с базы,
5) уметь результат вывести пользователя)

Не какое ООП, и сложные проекты не планирую.

Второй вопрос.
Обработка получает значение от пользователя. Это может быть «Неделя, месяц и число».
Стараюсь определить что пользователь ввел число. Делаю

ИначеЕсли ТипЗнч(ПериодДеленияЖР) = Тип("Число") Тогда
Но получаю значение «Строка» хотя и передаю скрипту «180». Как проверить валидность и понять, что обработка получило числовое значение?
Мда, не ожидал, что я буду такие нубские вопросы задавать((.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. TODD22 18 20.09.17 16:49 Сейчас в теме
(1)На каком нибудь языке уже писали?
6. ewqewqewq 20.09.17 16:54 Сейчас в теме
11. TODD22 18 20.09.17 17:14 Сейчас в теме
(6)Если совсем примитивно и нет опыта программирования то лучше параллельно учить что то типа Python. Очень хорошо помогает. Можно и PHP конечно, но мне как то не очень он понравился :) Хотя сейчас приходится и с ним разбираться.
Я когда переходил с низкоуровневых языков типа Асм и Си. То было сложно... потом попалась книжка по C# и небольшая задача. Как то после неё и 1С пошёл лучше.
Учиться надо не программировать в 1С. А программировать "вообще". Тогда будет намного проще ;)
12. ewqewqewq 20.09.17 18:04 Сейчас в теме
Сейчас общаюсь с базой так

	Путь = СтрокаСоединенияИнформационнойБазы();
	Вопрос(Путь, РежимДиалогаВопрос.ДаНет, 30, КодВозвратаДиалога.Да, , КодВозвратаДиалога.Да);


Как мне самому проще смотреть значение переменой ? Пробовал через сообщить, но окно так мелькает что я не успеваю разобрать ((
13. user633533_encantado 11 20.09.17 18:09 Сейчас в теме
(12) Отладчик. Начал бы ты все таки с учебников.
14. ewqewqewq 20.09.17 19:19 Сейчас в теме
(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\"
15. progr-2008 118 20.09.17 19:37 Сейчас в теме
(1)Много бесплатных видео курсов, лучше бы посмотреть сначала.
2. red80 20.09.17 16:47 Сейчас в теме
Не стыдно быть нубом, стыдно быть одинесником.
aka Любитель XML; davealone; uri1978; +3 Ответить
3. davealone 165 20.09.17 16:49 Сейчас в теме
Материалы к книгам по 1С
Конфигурации, на которых можно поучиться. По книгам наверное "Практическое пособие разработчика".
5. davealone 165 20.09.17 16:51 Сейчас в теме
По типу если это поле на форме у него явно можно задать тип Число. Если в коде запрашиваете, то либо ВвестиЧисло либо ПоказатьВводЧисла в режиме без модальности. Описание можно в синтаксис помощнике посмотреть.
8. ewqewqewq 20.09.17 16:55 Сейчас в теме
Вот значение получается парсингом строки. Поэтому изначально тип задать нельзя.
Я хочу привести значение принудительно к integer . Но не понимаю пока если, что не так как ругнется 1с, повиснет или ...

ДлинаПараметра = СтрДлина(ПараметрЗапуска);
	НайденоРавноСКонца = СтрНайти(ПараметрЗапуска, "=", НаправлениеПоиска.СКонца);
	ПутьДоФайлаКопии = Прав(ПараметрЗапуска,ДлинаПараметра-НайденоРавноСКонца);

	НайденоРавноСНачала = СтрНайти(ПараметрЗапуска, "=");
	ПараметрПослеПервогоРавно = Прав(ПараметрЗапуска,ДлинаПараметра-НайденоРавноСНачала);
	
	НайденаТочкаСЗапятой = СтрНайти(ПараметрПослеПервогоРавно, ";");
	ПериодДеленияЖР = Лев(ПараметрПослеПервогоРавно, НайденаТочкаСЗапятой-1); 	
	
	СократитьЖурнал = Ложь;
	
	Вопрос(ТипЗнч(ПериодДеленияЖР), РежимДиалогаВопрос.ДаНет, 30, КодВозвратаДиалога.Да, , КодВозвратаДиалога.Да);

    Сообщить(ПериодДеленияЖР); // 1
	
	Если ПериодДеленияЖР = "День" Тогда
		СократьЖурналДоДаты = НачалоДня(ТекущаяДата() - 86400);
		СократитьЖурнал = Истина;
	ИначеЕсли ПериодДеленияЖР = "Неделя" Тогда 
		Если ДеньНедели(ТекущаяДата()) = 1 Тогда 
			//Будем сокращать по понедельникам
			СократитьЖурнал = Истина;
			СократьЖурналДоДаты = НачалоНедели(ТекущаяДата() - 86400);
		КонецЕсли;
	ИначеЕсли ПериодДеленияЖР = "Месяц" Тогда 
		Если День(ТекущаяДата()) = 1 Тогда 
			//Будем сокращать первого числа
			СократитьЖурнал = Истина;
			СократьЖурналДоДаты = НачалоМесяца(ТекущаяДата() - 86400);
		КонецЕсли;
	ИначеЕсли ПериодДеленияЖР = "Год" Тогда 
		Если ДеньГода(ТекущаяДата()) = 1 Тогда 
			//Будем сокращать первого января
			СократитьЖурнал = Истина;
			СократьЖурналДоДаты = НачалоГода(ТекущаяДата() - 86400);
		КонецЕсли;	
	ИначеЕсли ТипЗнч(ПериодДеленияЖР) = Тип("Число") Тогда 
		
		Вопрос(ПериодДеленияЖР, РежимДиалогаВопрос.ДаНет, 30, КодВозвратаДиалога.Да, , КодВозвратаДиалога.Да);

		
			СократитьЖурнал = Истина;
			СократьЖурналДоДаты = ТекущаяДата() - 86400 * ПериодДеленияЖР;
	КонецЕсли;
Показать
10. davealone 165 20.09.17 17:05 Сейчас в теме
(8) Если типовая конфигурация посмотрите общий модуль СтроковыеФункцииКлиентСервер, там есть метод ТолькоЦифрыВСтроке
7. herfis 499 20.09.17 16:54 Сейчас в теме
В 8-ке почти вся документация, слава богу, встроенная.
Открываешь конфигуратор - справка- содержание справки и читаешь.
Для начала "Общее описание встроенного языка", "Глобальный контекст" и "Универсальные коллекции значений".
Это типа низкоуровневая база, похожая на аналогичную в других языках.
Ну а остальное - это фреймворк и конкретные прикладные объекты которые изучать и изучать. Можно от задач.
Начать можно с книжки "Практическое пособие разработчика". Она как раз для этого. Никуда не углубляется, но показывает как можно сляпать простенькое приложение со типовыми аспектами использования.
9. herfis 499 20.09.17 17:04 Сейчас в теме
Непонятно, чем у тебя изначально является "ПериодДеленияЖР". Скорее всего строковый реквизит. Т.е. что бы ты туда не вводил - будет строка.
Есть функция Число() позволяющая преобразовать строку (содержащую число) к числовому типу.
Но, к сожалению, если там не число - будет вызвано исключение. Поэтому самый простой вариант не самый красивый:

ПериодЧислом = Неопределено;
Попытка
   ПериодЧислом = Число(ПериодДеленияЖР);
Исключение
КонецПопытки;
Если ПериодЧислом = Неопределено Тогда
   Сообщить("Период нифига не числом");
КонецЕсли;
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот