|
Как получить картинка из Библиотеки по имени | ☑ | ||
---|---|---|---|---|
0
Chessmas
25.10.23
✎
23:29
|
Нужно получить картинку из Библиотеки программно по названию. Написал функцию:
Функция ПолучитьКартинкуПоИмени(ИмяКартинки) Для Каждого ОбКартинка Из Метаданные.ОбщиеКартинки Цикл Если ОбКартинка.Имя = ИмяКартинки Тогда Картинка = ОбКартинка.Картинка; КонецЕсли; КонецЦикла; Возврат Картинка; КонецФункции но она не работает. Вылетает ошибка. Как исправить? |
|||
1
Волшебник
25.10.23
✎
23:28
|
Функция ПолучитьКартинкуПоИмени(ИмяКартинки) Для Каждого ОбКартинка Из Метаданные.ОбщиеКартинки Цикл Если ОбКартинка.Имя = ИмяКартинки Тогда Возврат ОбКартинка.Картинка; КонецЕсли; КонецЦикла; КонецФункции |
|||
3
Chessmas
26.10.23
✎
00:21
|
Не сработало...
|
|||
4
KoZuB
26.10.23
✎
04:05
|
(3) Возврат Метаданные.ОбщиеКартинки[ИмяКартинки];
|
|||
5
Web00001
26.10.23
✎
06:03
|
Если получил ошибку при выполнении кода, никогда и ни при каких обстоятельствах, не пиши текст ошибки. Сами пусть догадаются, программисты они или где? Самому его читать тоже не обязательно. Там вообще все непонятно, зачем время тратить.
|
|||
6
Волшебник
26.10.23
✎
07:34
|
(3) Вы всё врёте
|
|||
7
Donkey_hot
26.10.23
✎
08:06
|
А чем (1) концептуально отличается от (0) кроме отсутствия ненужных итераций?
|
|||
8
Волшебник
26.10.23
✎
08:15
|
(7) Оно работает
|
|||
9
Мимохожий Однако
26.10.23
✎
08:28
|
(1) Оператор Возврат прерывает цикл или цикл продолжает работать? Я беру случай, когда есть несколько строчек в коллекции при обходе, а не конкретно этот.
|
|||
10
Волшебник
26.10.23
✎
08:33
|
(9) прерывает
|
|||
11
ass1c
26.10.23
✎
08:59
|
Картинка = Метаданные.ОбщиеКартинки.Найти("Сервис1СПАРКРиски48");
Картинка = Метаданные.ОбщиеКартинки["Сервис1СПАРКРиски48"]; Картинка = БиблиотекаКартинок["Сервис1СПАРКРиски48"]; |
|||
12
Волшебник
26.10.23
✎
09:36
|
(11) Это скучно
|
|||
13
Chessmas
26.10.23
✎
10:22
|
Мне надо расставить фигуры на шахматной доске:
Для Каждого Поле Из Фигура Цикл Область = Доска.Область(Поле.X, Поле.Y); // Если Поле.Адрес = Область.Текст Тогда // Область.Картинка = ПолучитьКартинкуПоИмени(Поле.Название); //КонецЕсли; Если Поле.Название = "БелаяПешка" Тогда Область.Картинка = БиблиотекаКартинок.БелаяПешка; КонецЕсли; Если Поле.Название = "БелаяЛадья" Тогда Область.Картинка = БиблиотекаКартинок.БелаяЛадья; КонецЕсли; Если Поле.Название = "БелыйКонь" Тогда Область.Картинка = БиблиотекаКартинок.БелыйКонь; КонецЕсли; Если Поле.Название = "БелыйСлон" Тогда Область.Картинка = БиблиотекаКартинок.БелыйСлон; КонецЕсли; Если Поле.Название = "БелыйФерзь" Тогда Область.Картинка = БиблиотекаКартинок.БелыйФерзь; КонецЕсли; Если Поле.Название = "БелыйКороль" Тогда Область.Картинка = БиблиотекаКартинок.БелыйКороль; КонецЕсли; Если Поле.Название = "ЧернаяПешка" Тогда Область.Картинка = БиблиотекаКартинок.ЧернаяПешка; КонецЕсли; Если Поле.Название = "ЧернаяЛадья" Тогда Область.Картинка = БиблиотекаКартинок.ЧернаяЛадья; КонецЕсли; Если Поле.Название = "ЧерныйКонь" Тогда Область.Картинка = БиблиотекаКартинок.ЧерныйКонь; КонецЕсли; Если Поле.Название = "ЧерныйСлон" Тогда Область.Картинка = БиблиотекаКартинок.ЧерныйСлон; КонецЕсли; Если Поле.Название = "ЧерныйФерзь" Тогда Область.Картинка = БиблиотекаКартинок.ЧерныйФерзь; КонецЕсли; Если Поле.Название = "ЧерныйКороль" Тогда Область.Картинка = БиблиотекаКартинок.ЧерныйКороль; КонецЕсли; КонецЦикла; Так расставляются в начальной позиции правильно, а когда сделаю ходы и сохраню ТЗ Фигура, при восстановлении на доске не пойми что. Думаю попробовать сортировать ТЗ по координатам... А когда закомментирую перебор названий и раскомментирую обращение к функции на доске ни одной фигуры... |
|||
14
Chessmas
26.10.23
✎
10:42
|
(4) Несоответствие типов
|
|||
15
Волшебник
26.10.23
✎
10:45
|
(13)
Область.Картинка = БиблиотекаКартинок[Поле.Название]; |
|||
16
Галахад
26.10.23
✎
10:49
|
(13) Ну хоть один человек нормальным делом занимается, а не этот вот всё.
|
|||
17
Chessmas
26.10.23
✎
10:58
|
(16) Приходится, я законченный шахматист - заочник. В классику из-за нейросетей смысла нет играть когда ничейный результат гарантирован на 98%, придумали стоклеточные. Можно купить 2 комплекта шахмат и сделать доску, но уже привычнее на компе анализировать, да и с больными руками (ДЦП) физическая доска не удобна. Решил в 1С сделать себе базу - ходилку...
|
|||
18
Chessmas
26.10.23
✎
11:00
|
(15) Большое спасибо! Точно Волшебник)))
|
|||
19
DrZombi
26.10.23
✎
11:08
|
(0) Я вот так...
//Получить картинку по наименованию... Функция ПолучитьИзБиблиотекиКартинку(ИмяКартинки) Попытка Возврат БиблиотекаКартинок[ИмяКартинки]; Исключение Возврат Неопределено; КонецПопытки; КонецФункции |
|||
20
Chessmas
26.10.23
✎
12:53
|
Все равно проблема с всстанновлением: при загрузке сохраненной ТЗ на доске появляются лишь фигуры в начальных позициях. Могу ли я кому-нибудь скинуть конфу с описанием чтоб разоброаться? У меня Альт Линукс...
|
|||
21
Галахад
26.10.23
✎
13:09
|
(20) Выложи куда-нибудь. Гугл, Яндекс диск и т.д. Если будут желающие, посмотрят.
|
|||
22
Злопчинский
26.10.23
✎
13:11
|
(17) выигрываешь в шахматы от NS? которые он на 7.7 написал?
|
|||
23
Chessmas
26.10.23
✎
13:19
|
https://drive.google.com/file/d/1YwHfRgn_-3UnMxZ1TS5u0SBE98x04Xdy/view?usp=sharing
В архиве файл конфигурации и файлы csv начальной позиции и записи. В процедурах СохранитьНаСерверре и ВосстановитьНаСервере надо поменять пути к папке games. |
|||
24
Chessmas
26.10.23
✎
13:21
|
(22) Не пошли они у меня, они ж под форточки...
|
|||
25
Chessmas
26.10.23
✎
13:32
|
(23) В Документе Партии при переключении тумблера Белые/Черные расставляются фигуры на доске. Ходы в два клика по полям Откуда и Куда, потом либо кнопка "Сделать ход" либо для превращения пешки на кнопку фигуры в которую превращается вместо "Сделать ход". Рокировки только по соответствующей кнопке...
Программист разбертся, но я это описал для экономии времени... |
|||
26
Chessmas
26.10.23
✎
13:50
|
(23) Запутался уже... Сохранение я перенес в процедуру ПослеЗаписиНаСервере
|
|||
27
Donkey_hot
26.10.23
✎
15:17
|
(23) Дался Вам этот csv. Напишите парсер FEN, потом сможете легким движением руки импортировать партии и позиции откуда угодно.
|
|||
28
Chessmas
26.10.23
✎
15:33
|
(27) Пробовал, но загвоздка с двузначным числом, доска же 10 на 10, опыта и фантазии не хватило... Пробовал пустую горизонталь обозначать как A - 10 в шестнадцатиричной системе, но не получалось...
|
|||
29
Tatitutu
26.10.23
✎
15:37
|
Самые короткие шахматы
файл ШАХМАТЫ.txt переименовать ШАХМАТЫ.html (или открой готовый ШАХМАТЫ_Пример.html) и открыть в ЛЮБОМ браузере (можно выключить интернет) Попробуй выиграть Спросишь в чем прикол ? Размер файла - посмотрел ? Удивился ? 1,05 КБ (1 076 байт) !!! Честно не знаю автора, когда нашел на просторах сети https://clck.ru/36EMWL CHESS.zip (2,3 БАЙТА) |
|||
30
Tatitutu
26.10.23
✎
15:39
|
https://infostart.ru/1c/tools/154036/ вот скорее всего они
|
|||
31
Волшебник
26.10.23
✎
15:56
|
(22) Там программа делала случайные ходы
|
|||
32
Donkey_hot
26.10.23
✎
16:03
|
(28) Я не заметил, думал, речь про шахматы. Ну наверное тоже сделаете хорошее дело, если придумаете для комьюнити этой ерунды расширение нотации FEN. Если кто-то раньше не придумал.
|
|||
33
Chessmas
26.10.23
✎
16:04
|
(30) https://drive.google.com/file/d/1OZjvxr_xLN7he3ASz-k2VkyIYgAo_Dy8/view?usp=drive_link - без напряга заматовал. Не мой уровень))
|
|||
34
Chessmas
26.10.23
✎
16:13
|
(32) http://corrchess.online/rules.php#chx - вот правила игры в Шахматы-100. Если сделаю, то это будет их популяризацией. А смысла нет делать базу в 1С для классики, когда программ бесплатных навалом...
|
|||
35
Chessmas
26.10.23
✎
16:58
|
https://infostart.ru/1c/tools/1386656/ - есть конфига с сохранением на любом ходу, но не решаюсь ее покупать чтоб лишь посмотреть как реализовано сохранение, поскольку она под Windows.
https://infostart.ru/1c/reports/18951/ - эту скачивал, но она не запускается в Линуксе... |
|||
36
Donkey_hot
26.10.23
✎
17:04
|
FEN + PGN - общепринятый стандарт, нет смысла придумывать что-то еще.
|
|||
37
Chessmas
26.10.23
✎
17:12
|
(36) Я совет у одного математика просил как расширить FEN для доски 10 на 10, у него идей не нашлось. Вот у меня тоже пока мыслей нет...
|
|||
38
Donkey_hot
26.10.23
✎
17:18
|
(37) Я, честно говоря, не понимаю, в чем трудность... 10 с 1 вы никак не перепутаете, потому что 0 в секции описания расположения фигур не используется.
|
|||
39
Chessmas
26.10.23
✎
17:22
|
(38) Смысл FEN в кодировке одним символом. А это идея кодировать 10 нулем. Спасибо, попробую
|
|||
40
Donkey_hot
26.10.23
✎
17:42
|
(39) С чего Вы взяли, что такой смысл? Но даже если и так, задействуйте шестнадцатеричную цифру "А", благо данный символ тоже нигде не используется.
|
|||
41
Мимохожий Однако
26.10.23
✎
18:31
|
(17) Почему именно на 1С8? Поудобнее ПО не оказалось под рукой?
|
|||
42
Chessmas
26.10.23
✎
18:46
|
(41) А где еще можно легко организовать хранение базы?
|
|||
43
Волшебник
26.10.23
✎
19:14
|
(42) Android+Java+SQLite, заодно шахматы будут всегда с собой
|
|||
44
Chessmas
26.10.23
✎
19:21
|
Не дружу с мобилой, не для моих рук...
|
|||
45
Chessmas
26.10.23
✎
23:25
|
Всем спасибо, все свободны!))) Я нашел решение
|
|||
46
Злопчинский
27.10.23
✎
00:39
|
(45) Сенатор Палпатин требует озвучить!
|
|||
47
Chessmas
27.10.23
✎
10:46
|
(46) Ну тупил, опыта мало... Я не учел что в 1С вывод построчный, а в ТЗ когда совершал ход строка с полем на котором стояла фигура удалялась и добавлялась в конец строка с полем на которое фигура шла. Поэтому на доску выводились лишь фигуры, которые оставались на начальных позициях. Добавил новую ТЗ и сделал ее заполнение данными из первой ТЗ и позиция выводить как надо...
|
|||
48
Chessmas
27.10.23
✎
14:40
|
(23) Только разобрался как открыть возможность скачивания на гугл-диске, раньше было открыл доступ по ссылке и все. Инноваторы блин как и в 1С, я ж несколько дней пытался сохранить ТЗ в ХЗ, но оказалось что невозможно сохранять несериализованные объекты, вот и пришел к csv...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |