До старта конференции

Клиентское приложение (Толстый клиент) для сервиса изучения методов платформы 1С:Предприятие 8 (+ конструктор запросов)

Программирование - Практика программирования

Клиентское приложение для работы с веб-сервисом
IT-Решение: Консоль изучения методов платформы 1С:Предприятие 8
в режиме толстый клиент.
Подготовка к аттестации 1С:Специалист on-line!
Тестовые задания по различным видам учета!
Подсказки для оптимального решения!

Уважаемые коллеги!

Представляем вашему вниманию клиентское приложение для бесплатного веб-сервиса "Консоль изучения методов платформы 1С:Предприятие 8" - конфигурацию, разработанную на платформе 8.2 и предназначенную для интерактивного обучения методам и приемам разработки в среде 1С.

Страница сервиса на infostart.ru: //infostart.ru/public/192077/ 


Работа с веб-сервисом возможна с использованием конструктора запросов 1С (аналогично Клиентскому приложению для самоучителя языка запросов 1С 8).

При входе в конфигурацию произоводится аутентификация на веб-сервисе под логином пользователя.

Для регистрации нового пользователя на веб-сервисе необходимо использовать логин: guest, пароль пустой.

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

Решение задачи пользователь представляет в поле "Ваше решение". В процессе решения задач для написания запросов может быть использован Конструктор запросов. В поле "Результат" отображается результат проверки решения задачи. Так же в форме основной обработки представлена персональная статистика и общий рейтинг участников (ТОП 100). Все задачи должны решатся последовательно. Переход к следующей задаче, не решив предыдущую, невозможен.

 

Важно! 
Для получения навыков написания простых и сложных запросов рекомендуем воспользоваться бесплатным сервисом Консоль изучения языка запросов 1С:Предприятие 8).

 

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

Наименование Файл Версия Размер
Дистрибутив поставки
.exe 422,36Kb
02.07.13
175
.exe 422,36Kb 175 Скачать

См. также

Комментарии
1. Евгений Моисеенко (bpc222) 1654 27.06.13 18:40 Сейчас в теме
Уважаемые разработчики.

Начал работу новый сервис: Консоль изучения методов платформы 1С:Предприятие 8.
Месяц будет "крутиться" в тестовом режиме, ваши решения будут сохранены.
Задания второго раздела будут опубликованы на днях.
Это клиентское приложение - клиент для сервиса. Его задача - предоставить Вам возможность использования Консоли запросов для разработки прикладных решений.

Ждем Ваших отзывов и предложений. Спасибо.
2. Владимир Крючков (ivanov660) 405 28.06.13 09:01 Сейчас в теме
А что в веб варианте не сделали консоль запросов? Взяли хот-бы Больсунова. Не удобно онлайн сервисом пользоваться, по крайней мере подсказки какие-нибудь выдали?
3. Евгений Моисеенко (bpc222) 1654 28.06.13 09:16 Сейчас в теме
(2) ivanov660,

рассмотрим возможность, спасибо.
4. Egor ZeNoches (Egor.ZenNoches) 28.06.13 14:55 Сейчас в теме
5. Денис Кузнецов (kuza_87) 24 01.07.13 08:29 Сейчас в теме
Дошел до 6-го задания. Пишет что неверное решение. Не могу понять где ошибка. Выполнено всё верно
Вот код
ЗапросЦены = Новый Запрос;
ЗапросЦены.Текст =
"ВЫБРАТЬ
| ЦеныНоменклатуры.Номенклатура,
| ЦеныНоменклатуры.Цена,
| ЦеныНоменклатуры.Период КАК Период
|ИЗ
| РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
|
|УПОРЯДОЧИТЬ ПО
| Период УБЫВ";
ТЗЦены = ЗапросЦены.Выполнить().Выгрузить();

ВыборкаДоков = Документы.Приходнаянакладная.Выбрать();
Пока ВыборкаДоков.Следующий() цикл
Если ВыборкаДоков.Ссылка.Проведен = Ложь Тогда
Док = ВыборкаДоков.Ссылка.ПолучитьОбъект();
НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Док.Ссылка);
НаборЗаписей.Прочитать();
Для Каждого строка из Док.Товары Цикл
НайденнаяСтрока = ТЗЦены.Найти(строка.Номенклатура, "Номенклатура");
Если НайденнаяСтрока = Неопределено Тогда
Движение = НаборЗаписей.Добавить();
Движение.Период = Док.Дата;
Движение.Номенклатура = Строка.Номенклатура;
Движение.Цена = строка.Цена;
ИначеЕсли НайденнаяСтрока<>Неопределено и
НайденнаяСтрока.Цена<>Строка.Цена Тогда
Движение = НаборЗаписей.Добавить();
Если КонецДня(НайденнаяСтрока.Период) = КонецДня(Док.Дата) Тогда
Движение.Период = КонецДня(Док.Дата)+1;
Иначе
Движение.Период = Док.Дата;
КонецЕсли;
Движение.Номенклатура = Строка.Номенклатура;
Движение.Цена = строка.Цена;

КонецЕсли;

КонецЦикла;
НаборЗаписей.Записать();

КонецЕсли;

КонецЦикла;
6. Денис Кузнецов (kuza_87) 24 01.07.13 08:30 Сейчас в теме
Я нигде не усмотрел ошибку
7. Евгений Моисеенко (bpc222) 1654 01.07.13 09:54 Сейчас в теме
(5) kuza_87,


Одно из условий задания: "Следует учесть, что записывать в регистр нужно лишь изменившиеся на дату документа цены, учитывая периодичность регистра "В пределах дня"

Скажите, Ваше решение удовлетворяет этому условию?
8. Денис Кузнецов (kuza_87) 24 01.07.13 11:11 Сейчас в теме
Разобрался, извините. Делал спросони)))
9. Денис Кузнецов (kuza_87) 24 01.07.13 11:39 Сейчас в теме
А в следующем задании что не так? Задание элементарное. Вот текст кода

ВыборкаДоков = Документы.ПриходнаяНакладная.Выбрать();
Пока ВыборкаДоков.Следующий() Цикл
Если ВыборкаДоков.Проведен = Истина Тогда
Док = ВыборкаДоков.ПолучитьОбъект();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПриходнаяНакладнаяТовары.Номенклатура,
| ПриходнаяНакладнаяТовары.Ссылка КАК Партия,
| ПриходнаяНакладнаяТовары.Количество,
| ПриходнаяНакладнаяТовары.Сумма,
| ПриходнаяНакладнаяТовары.Ссылка.Дата КАК Период
|ИЗ
| Документ.ПриходнаяНакладная.Товары КАК ПриходнаяНакладнаяТовары
|ГДЕ
| ПриходнаяНакладнаяТовары.Ссылка = &Ссылка";

Запрос.УстановитьПараметр("Ссылка", Док.Ссылка);
Результат = Запрос.Выполнить().Выгрузить();

НаборЗаписей = РегистрыНакопления.ОстаткиНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Док.Ссылка);
НаборЗаписей.Прочитать();
НаборЗаписей.Загрузить(Результат);

КонецЕсли;
Конеццикла;
10. Денис Кузнецов (kuza_87) 24 01.07.13 11:52 Сейчас в теме
11. Евгений Моисеенко (bpc222) 1654 01.07.13 12:55 Сейчас в теме
(8) kuza_87,

Отлично.
не нужно извиняться.
Консоль для этого и предназначена - научиться решать прикладные задачи различного уровня.
12. Евгений Моисеенко (bpc222) 1654 01.07.13 12:58 Сейчас в теме
(9) kuza_87,

1. А где у Вас запись набора?
2. Решите задачу так, как считаете нужным, а затем посмотрите что можно предпринять, чтобы исключить запросы в цикле.
13. Евгений Моисеенко (bpc222) 1654 01.07.13 13:02 Сейчас в теме
(10) kuza_87,


и еще... Если Вам все нравится в нашем сервисе, ставьте лайки.
Это очень нам поможет в продвижении публикаций.

Лайкнуть:
- сервис изучения методов платформы: http://infostart.ru/public/192077/?rate=1
- сервис изучения языка запросов 1С: http://infostart.ru/public/184350/?rate=1
- консоль сервиса изучения методов: http://infostart.ru/public/192076/?rate=1
- консоль сервиса изучения запросов: http://infostart.ru/public/188639/?rate=1

Спасибо.
14. Денис Кузнецов (kuza_87) 24 01.07.13 13:12 Сейчас в теме
Метод "Загрузить" насколько я знаю записывает данные в регистр, т.е потом не нужно писать "Записать"
15. Денис Кузнецов (kuza_87) 24 01.07.13 13:13 Сейчас в теме
Так тоже говорит что неверно (лайкну все статьи сегодня)


ВыборкаДоков = Документы.ПриходнаяНакладная.Выбрать();
Пока ВыборкаДоков.Следующий() Цикл
Если ВыборкаДоков.Проведен = Истина Тогда
Док = ВыборкаДоков.ПолучитьОбъект();
НаборЗаписей = РегистрыНакопления.ОстаткиНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Док.Ссылка);
НаборЗаписей.Прочитать();

Для Каждого Строка из Док.Товары Цикл

Движение = НаборЗаписей.Добавить();
Движение.период = Док.Дата;
Движение.Партия = Док.Ссылка;
Движение.Номенклатура = Строка.Номенклатура;
Движение.Количество = Строка.Количество;
Движение.Сумма = Строка.Сумма;
КонецЦикла;



НаборЗаписей.Записать();

КонецЕсли;
Конеццикла;
16. Евгений Моисеенко (bpc222) 1654 01.07.13 13:21 Сейчас в теме
(15) kuza_87,

Измерение склад тоже нужно заполнять. Пользуйтесь схемой данных (кнопка сверху слева).
17. Евгений Моисеенко (bpc222) 1654 01.07.13 13:22 Сейчас в теме
(14) kuza_87,

проверьте это утверждение, а то у меня возникает желание пойти и сжечь все свои сертификаты 1С:Специалист и закусить все это 1С:Экспертом.
18. Денис Кузнецов (kuza_87) 24 01.07.13 13:31 Сейчас в теме
я тоже про склад думал. просто в вашей конфигурации у этого документа нету склада
19. Денис Кузнецов (kuza_87) 24 01.07.13 13:35 Сейчас в теме
да, проблема была в складе
20. Евгений Моисеенко (bpc222) 1654 01.07.13 14:07 Сейчас в теме
(18) kuza_87,


спасибо, исправим.
21. Денис Кузнецов (kuza_87) 24 02.07.13 11:19 Сейчас в теме
8-е задание пишет что неверно.

ВыборкаДоков = Документы.ПриходнаяНакладная.Выбрать();
Пока ВыборкаДоков.Следующий() Цикл
Если ВыборкаДоков.Проведен Тогда
Док = ВыборкаДоков.Ссылка.ПолучитьОбъект();
НаборЗаписей = РегистрыНакопления.ОстаткиНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Док.Ссылка);
НаборЗаписей.Прочитать();

Для Каждого Строка из Док.Товары Цикл
Строка.ЕдиницаИзмерения = Строка.Номенклатура.ОсновнаяЕдиницаизмерения;
Строка.Сумма = Строка.Количество*Строка.Цена;
КонецЦикла;
Док.Записать();
Для Каждого Строка из Док.Товары Цикл
Движение = НаборЗаписей.Добавить();
Движение.Период = Док.Дата;
Движение.Партия = Док.Ссылка;
Движение.Склад = Док.Склад;
Движение.Номенклатура = строка.Номенклатура;
Движение.Количество = (Строка.Количество*Строка.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент);
Движение.Сумма = Строка.Сумма;
КонецЦикла;
НаборЗаписей.Записать();

КонецЕсли;


КонецЦикла;
22. Александр Крынецкий (echo77) 742 02.07.13 13:40 Сейчас в теме
В толстом клиенте не работает Сообщить() - это неудобно, т.к. других способов отладки результата нет.
В веб-клиенте Сообщить() работает.

Почему требуется расширение для работы с файлами при нажатии на гиперссылки в правой части окна программы?
23. Adapter Бахтыреев (adapter) 433 04.09.13 17:34 Сейчас в теме
Идея хороша, но вот реализация..... Скачал толстого клиента а там только cf. А почему нет базы с данными? заполненными спр, регистрами сведений? Хотел дать практиканту потренироваться, а в таком виде теперь вряд ли. Надо бы добавить данные и кнопку "выполнить запрос" чтобы сначала хотя бы посмотреть что выдается а потом уже жать "проверить"
24. Adapter Бахтыреев (adapter) 433 04.09.13 21:08 Сейчас в теме
25. Евгений Моисеенко (bpc222) 1654 05.09.13 05:16 Сейчас в теме
(23) adapter,

Даже не знаю, что Вам ответить.
26. Adapter Бахтыреев (adapter) 433 05.09.13 09:42 Сейчас в теме
(25) промахнулся с публикацией, камент относился к "самоучитель языка запросов", очень они похожи, даже файлы для скачивания одинаково называются

вот повторил там http://infostart.ru/public/184350/#comm

хотя сейчас посмотрел "изучении методов платформы" та же проблема - только cf без данных. почему бы не заполнить справочники, регистры и раздавать dt ?
27. Евгений Моисеенко (bpc222) 1654 05.09.13 11:47 Сейчас в теме
(26) adapter,

Уважаемый, adapter. ПРОБЛЕМЫ нет. Есть описанная функциональность и представленная.

>почему бы не заполнить справочники, регистры и раздавать dt?
Извините, что вопросом на вопрос: зачем?

Вам чем текущая реализация-то не нравится? Если Вас не устраивает надпись на кнопке "Проверить", то можно ее залепить жвачкой на мониторе.
28. Денис Карпов (dtripleh) 05.03.15 10:54 Сейчас в теме
Не могу решить 6 задачу, уже много времени с ней бьюсь.
Вот мой код:
Запрос = Новый Запрос; 
Запрос.Текст = 
"ВЫБРАТЬ 
|	ЦеныНоменклатуры.Номенклатура, 
|	ЦеныНоменклатуры.Цена, 
|	НачалоПериода(ЦеныНоменклатуры.Период,День) КАК Период 
|ИЗ 
|	РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры 
| 
|УПОРЯДОЧИТЬ ПО 
|	Период УБЫВ"; 
Цены = Запрос.Выполнить().Выгрузить(); 

ВыборкаДоков = Документы.Приходнаянакладная.Выбрать(); 
Пока ВыборкаДоков.Следующий() цикл 
	Если НЕ ВыборкаДоков.Ссылка.Проведен Тогда 
		ДокОбъект = ВыборкаДоков.Ссылка.ПолучитьОбъект(); 
		НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей(); 
		НаборЗаписей.Отбор.Регистратор.Установить(ДокОбъект.Ссылка); 
		НаборЗаписей.Прочитать(); 
		Для Каждого СтрокаТЧ из ДокОбъект.Товары Цикл 
			НайденныеСтроки = Цены.НайтиСтроки(Новый Структура("Номенклатура, Период", СтрокаТЧ.Номенклатура, НачалоДня(ДокОбъект.Дата)));
			Если НайденныеСтроки.Количество() = 0 Тогда 
				Движение = НаборЗаписей.Добавить(); 
				Движение.Период = ДокОбъект.Дата; 
				Движение.Номенклатура = СтрокаТЧ.Номенклатура; 
				Движение.Цена = СтрокаТЧ.Цена; 
			Иначе
				НайденнаяСтрока = НайденныеСтроки[0];
				Если НайденнаяСтрока.Цена <> СтрокаТЧ.Цена Тогда 
					Движение = НаборЗаписей.Добавить();
					Движение.Период = ДокОбъект.Дата + 24*60*60; 
					Движение.Номенклатура = СтрокаТЧ.Номенклатура; 
					Движение.Цена = СтрокаТЧ.Цена;
				КонецЕсли;	
			КонецЕсли; 
		КонецЦикла; 
		НаборЗаписей.Записать();	
	КонецЕсли; 
КонецЦикла;
...Показать Скрыть

Подскажите пожалуйста решение
29. Тимур (user592024_rzane) 07.07.16 11:39 Сейчас в теме
Добрый день.

Вот такая ошибка. Подскажите как можно решить?
Прикрепленные файлы:
30. Евгений Моисеенко (bpc222) 1654 07.07.16 14:49 Сейчас в теме
(29) user592024_rzane,

Убедитесь в том, что ваше подключение к сети Интернет не ограничено
31. Тимур (user592024_rzane) 07.07.16 14:59 Сейчас в теме
(30) bpc222, у нас прокси-сервер. Подскажите как в таком случае подключиться.
32. Елена Фролова (lenafV) 16.02.17 08:36 Сейчас в теме
Не могу понять в чем проблема в решении 6 задачи....
Код прикладываю:

Запрос = Новый Запрос; 

Запрос.Текст = 
"ВЫБРАТЬ 
|	 ЦеныНоменклатурыСрезПоследних.Номенклатура, 
|    ЦеныНоменклатурыСрезПоследних.Цена, 
|    НАЧАЛОПЕРИОДА(ЦеныНоменклатурыСрезПоследних.Период, ДЕНЬ) КАК Период 
|ИЗ 
|    РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
| 
|УПОРЯДОЧИТЬ ПО 
|    Период УБЫВ";

ТЗЦены = Запрос.Выполнить().Выгрузить(); 

ВыборкаДоков = Документы.Приходнаянакладная.Выбрать(); 

Пока ВыборкаДоков.Следующий() цикл
	
	Если НЕ ВыборкаДоков.Ссылка.Проведен Тогда
		
        ДокОбъект = ВыборкаДоков.Ссылка.ПолучитьОбъект(); 
		
        НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей(); 
        НаборЗаписей.Отбор.Регистратор.Установить(ДокОбъект.Ссылка); 
        НаборЗаписей.Прочитать();
		
		Для Каждого СтрокаТЧ из ДокОбъект.Товары Цикл 
			
            НайденныеСтроки = ТЗЦены.НайтиСтроки(Новый Структура("Номенклатура, Период", СтрокаТЧ.Номенклатура, НачалоДня(ДокОбъект.Дата)));

            Если НайденныеСтроки.Количество() = 0 Тогда 
				Движение = НаборЗаписей.Добавить(); 
				Движение.Период = ДокОбъект.Дата;
				Движение.Регистратор = ДокОбъект.Ссылка;
				Движение.Номенклатура = СтрокаТЧ.Номенклатура; 
				Движение.Цена = СтрокаТЧ.Цена;        
				
			ИначеЕсли НайденныеСтроки.Количество() > 0 Тогда
				
                НайденнаяСтрока = НайденныеСтроки[0];
				
				Если НайденнаяСтрока.Цена <> СтрокаТЧ.Цена Тогда 
                    Движение = НаборЗаписей.Добавить();
                    Движение.Период = ДокОбъект.Дата;
					Движение.Регистратор = ДокОбъект.Ссылка;
                    Движение.Номенклатура = СтрокаТЧ.Номенклатура; 
                    Движение.Цена = СтрокаТЧ.Цена;    
				КонецЕсли;  
				
			КонецЕсли;
			
		КонецЦикла;
		
        НаборЗаписей.Записать();
		
	КонецЕсли;
	
КонецЦикла;
...Показать Скрыть


Подскажите пожалуйста в чем моя ошибка? Спасибо!
34. Иван Иванов (imh9305) 19.04.17 23:33 Сейчас в теме
идея хорошая. на запросах хорошо рука набивается. но почему же не доделали так же, как и самоучитель запросов?
35. Евгений Моисеенко (bpc222) 1654 25.04.17 07:24 Сейчас в теме
(34)
но почему же не доделали так же, как и самоучитель запросов?


Добрый день, не понял :)

Что значит "не доделали"? И почему "как"... это и есть клиентское приложение от самоучителя... что-то не работает у Вас?
36. Иван Иванов (imh9305) 25.04.17 09:15 Сейчас в теме
(35)добрый день! в запросах и в скд у вас есть подсказки и решения, ну и заданий много.
Оставьте свое сообщение