|
Всем доброго времени суток. Прошу помочь с тестовым заданием ! | ☑ | ||
---|---|---|---|---|
0
semen20192019
26.02.19
✎
12:14
|
Я начинающий программист! Прошу помощи у добрых людей !
Доработка конфигурации 1С Бухгалтерия 3.0 Изменить логику заполнения аналитики загружаемых из Клиент-банка документов «СписаниеСРасчетногоСчета», основываясь на «ключевой фразе» из Назначения платежа. Аналитика: «Подразделение», «Счет БУ», «Субконто1», «Субконто2», «Субконто3». Вид операции – всегда «Прочее списание». Пользователь заранее вносит в учетную систему информацию о ключевых фразах и той аналитике, которая должна заполниться в документе при загрузке. Ключевая фраза может встречаться в любой части назначения платежа. Пример: НазначениеПлатежа= «Комиссия за ПП/ПТ. Без НДС» Ключевое слово «Комиссия», Аналитика: Вид операции: «Прочее списание» Подразделение: «ЧЛБ» (Элемент справочника ПодразделениеОрганизации) Счет БУ – «91.02» Субконто1 – «Расходы на услуги банков» (Элемент справочника ПрочиеДоходыИРасходы) |
|||
1
Fragster
гуру
26.02.19
✎
12:17
|
10круб
|
|||
2
Buster007
26.02.19
✎
12:17
|
СтрНайти
|
|||
3
PR
26.02.19
✎
12:21
|
Рукалицо
|
|||
4
semen20192019
26.02.19
✎
12:30
|
(3) Это тестовое задание,как сказали там работы на 3 часа. Может кто нибудь логику решения данной задачи подсказать?
|
|||
5
semen20192019
26.02.19
✎
12:32
|
(3) PR, я же написал, что НАЧИНАЮЩИЙ, при всем уважении к Вам, такие комментарии в данном случае я считаю неуместными.
|
|||
6
Kigo_Kigo
26.02.19
✎
12:32
|
(4) -> (2)
|
|||
7
sqr4
26.02.19
✎
12:38
|
(0) Куда устраиваешься?
|
|||
8
semen20192019
26.02.19
✎
12:40
|
(6) (2) Спасибо за подсказку. А как мне потом свои данные подставить в документ?
|
|||
9
Вафель
26.02.19
✎
12:40
|
рано тебе еще начит на эту работу идти
|
|||
10
Вафель
26.02.19
✎
12:42
|
иначе как же ты будешь обычные задания делать?
или на мисту будешь каждый раз выкладывать. -Люди добрые, помогите. Дали задание - не могу решить. А кушать очень хочется |
|||
11
Mikeware
26.02.19
✎
12:42
|
(4) логика описана в задании: "ЕСЛИ нашли ключевую фразу ТОГДА заполняем сооветсвующие аналитики"
|
|||
12
catena
26.02.19
✎
12:44
|
(10)Ну, у Ливингстара успешно выходит
|
|||
13
Вафель
26.02.19
✎
12:44
|
тут нужно волю эмансипировать вначале
|
|||
14
Kigo_Kigo
26.02.19
✎
12:45
|
Если СтрНайти(НазначениеПлатежа,"Комиссия") Тогда
//Заполняем реквизиты документа КонецЕсли И так далее |
|||
15
sqr4
26.02.19
✎
12:49
|
Если СтрНайти(НРег(НазначениеПлатежа),"комиссия") Тогда
//Заполняем реквизиты документа КонецЕсли |
|||
16
ReaLg
26.02.19
✎
12:50
|
Конфигурацию менять можно?
"Пользователь заранее вносит в учетную систему информацию о ключевых фразах и той аналитике, которая должна заполниться в документе при загрузке." Регистр сведений надо... |
|||
17
unregistered
26.02.19
✎
12:50
|
(14)(!5) Топорное решение "в лоб", как у чукчу - что вижу то и пишу. За такое решение у нас кандидат зачет точно не получил бы.
Впрочем автору ветки не под силу даже такое решение. |
|||
18
semen20192019
26.02.19
✎
12:52
|
(16)Конфу менять можно. Я создал РС вида: Измерение - "Ключевые фразы", Ресурсы - "Подразделение", "Субконто1". Создал записи. Получается мне сейчас надо каким то образом сделать отбор записей в регистре по ключевой фразе из Назначения платежа.
|
|||
19
aleks_default
26.02.19
✎
12:53
|
(17)А тут может быть какое-то мегагениальное решение?
|
|||
20
sqr4
26.02.19
✎
12:54
|
(17) Задело, обяснись!!!
|
|||
21
sqr4
26.02.19
✎
12:54
|
(17) НА шпагах или пистолетах?
|
|||
22
Вафель
26.02.19
✎
12:55
|
(18) нужно пройтись по всем записям. та что подошла - ее и использовать
|
|||
23
sqr4
26.02.19
✎
12:55
|
(18) Наоборот, искать ключевые фразы в назначении платежа
|
|||
24
aleks_default
26.02.19
✎
12:56
|
(21)Секундант нужен?
|
|||
25
ReaLg
26.02.19
✎
12:57
|
(18) Тебе в назначении платежа нужно искать фразы из регистра сведений. Если подходит - то ты нашел нужную строку РС.
Только продумай, что у тебя должно быть, если пользователь укажет фразы, например, "комиссия" и "комиссия банка" с разной аналитикой. В назначении будет "комиссия банка"... |
|||
26
aleks_default
26.02.19
✎
12:57
|
Одно непонятно, что тут три часа делать?
|
|||
27
Kigo_Kigo
26.02.19
✎
12:57
|
(17) Это не топрное решение в лоб, это Пример, а как он его будет использовать, что подставлять и как обрабатывает, пусть сам думает
(21) Забей, он просто пример принял буквально за решение |
|||
28
sqr4
26.02.19
✎
12:59
|
(27) >>он просто пример принял буквально за решение
Не разобравшись осудил!!! У меня так сосед в больницу попал))) |
|||
29
PR
26.02.19
✎
13:02
|
(5) А я считаю неуместным обращаться за помощью в решении _тестового_, блеать, задания
Это же тест, а не реальная задача Какой это тест _твоих_ способностей, если решит Вася с Мисты? |
|||
30
semen20192019
26.02.19
✎
13:08
|
(29) Я прошу ПОДСКАЗАТЬ, а не решить за меня задачу !!! Если нет желания помочь каким - либо дельным советом мог бы и не флудить.
|
|||
31
Kigo_Kigo
26.02.19
✎
13:09
|
(29) Иногда достаточно щелбана в нужном направлении,что бы понять в какую сторону работать, а вы сразу сами гуру стали?
|
|||
32
Вафель
26.02.19
✎
13:12
|
(30) уже все подсказали
|
|||
33
Вася Теркин
26.02.19
✎
13:15
|
(29) Кто меня зовет?
|
|||
34
Натуральный Йог
26.02.19
✎
13:17
|
Ник Сперма, Зарегистрирован сегодня, тупой вопрос. Диагноз: тролль
|
|||
35
OldCondom
26.02.19
✎
13:19
|
В чем подсказать то? Тут самое сложнле - это заполнить субконто.
|
|||
36
OldCondom
26.02.19
✎
13:20
|
(34) а, точно:(
|
|||
37
Мимохожий Однако
26.02.19
✎
13:23
|
(30) Показывай, что уже получилось. Народ подскажет. Тренируй терпение )
|
|||
38
catena
26.02.19
✎
13:30
|
(30)https://www.forum.mista.ru/rules.php
Чётко сформулируйте свой вопрос. Тема должна отражать суть сообщения. Не допускаются темы типа "Подскажите", "1С", "help", "есть вопрос", "не получается", темы большими буквами, заголовки с кучей восклицательных/вопросительных знаков. Не ставьте "общих" вопросов. Если Вы даже не знаете, как подступиться к задаче, все равно скажите, какие у Вас есть идеи. |
|||
39
semen20192019
26.02.19
✎
13:33
|
(37) Дополняю вот эту процедуру в модуле формы обработки "КлиентБанк":
&НаСервере Процедура ЗаполнитьДокументыКИмпортуПоРаспознаннымДаннымИзБанка(ДокументыКИмпорту, РаспознанныеДанныеИзБанка, ВыводитьСообщения); Я выполнил запрос из своего РС: "ВЫБРАТЬ Доп_НастройкиКлиентБанк.КлючевыеФразы ИЗ РегистрСведений.Доп_НастройкиКлиентБанк КАК Доп_НастройкиКлиентБанк"; Далее Хочу найти свое ключевое слово: Фразы = Запрос.Выполнить().Выбрать(); Платеж = СтрНайти(Фразы,СтрокаТаблицы.НазначениеПлатежа); Если Платеж Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Нашлась запись !!!"; Сообщение.Сообщить(); КонецЕсли; Ничего пока не срабатывает, буду искать решение дальше. |
|||
40
Krendel
26.02.19
✎
13:34
|
(7) В бит скорее всего ;-)
|
|||
41
Krendel
26.02.19
✎
13:36
|
(30) уанэслансер, стоимость около 500 рублей, больше не плати
|
|||
42
sqr4
26.02.19
✎
13:36
|
Пишу бесплатно разработки для 1С Управление торговлей
Правда тут только по УТ бесплатно помогают, но может, он и на БП согласится))) |
|||
43
sqr4
26.02.19
✎
13:37
|
Тем более постановка у тебя уже есть, а это 70% работы)
|
|||
44
semen20192019
26.02.19
✎
13:38
|
(43) Спасибо конечно, но я лучше набью свои шишки и получу ценный опыт)
|
|||
45
sqr4
26.02.19
✎
13:39
|
Платеж = СтрНайти(Фразы,СтрокаТаблицы.НазначениеПлатежа);
Если Платеж Тогда |
|||
46
sqr4
26.02.19
✎
13:39
|
Тут мне не нравится
|
|||
47
catena
26.02.19
✎
13:41
|
(46)Т.е. с выборкой все нормально по-вашему?
|
|||
48
Мимохожий Однако
26.02.19
✎
13:42
|
(44) Научись включать отладчик, читать СП. Запусти свою заготовку и смотри, где не получилось.ОК?
|
|||
49
sqr4
26.02.19
✎
13:43
|
(47) там тоже все плохо( а я и не увидел
|
|||
50
catena
26.02.19
✎
13:43
|
(39)Нужно почитать хотя бы СП. Хотя бы про выборку из результата запроса, про СтрНайти, про оперторы языка запросов...
|
|||
51
semen20192019
26.02.19
✎
13:45
|
(47) (48) (49) (50) Пока выборка.следющий()
Об этом идет речь? |
|||
52
Mikeware
26.02.19
✎
13:51
|
(0)а вообще, что ты хочешь от этой ветки? зачем ты ее создал? цель какая? (я серьезно спрашиваю, без стеба).
|
|||
53
semen20192019
26.02.19
✎
13:55
|
(52) Я прошу добрых и опытных людей подсказать куда в каком направлении копать, т.к. я с такими задачами не сталкивался. Подсказали несколько вариантов, сейчас сижу сам пробую что да как.
|
|||
54
semen20192019
26.02.19
✎
14:00
|
Вот в таком варианте сработало.
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Доп_НастройкиКлиентБанк.КлючевыеФразы |ИЗ | РегистрСведений.Доп_НастройкиКлиентБанк КАК Доп_НастройкиКлиентБанк"; Фразы = Запрос.Выполнить().Выбрать(); Пока Фразы.Следующий() Цикл Платеж = Нрег(СтрНайти(СтрокаТаблицы.НазначениеПлатежа,Фразы)); Если Платеж = "1" Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Нашлась запись !!!"; Сообщение.Сообщить(); КонецЕсли; КонецЦикла; |
|||
55
sqr4
26.02.19
✎
14:04
|
ИЗ сп
Пример: Если СтрНайти(Сотрудник.Имя, "Сергей") > 0 Тогда Сообщить(Сотрудник.Имя + " таб. №" + Сотрудник.Код); КонецЕсли; |
|||
56
Йохохо
26.02.19
✎
14:09
|
(54) "Нрег(СтрНайти" это фиаско, братан
|
|||
57
semen20192019
26.02.19
✎
14:12
|
(55) Я читал, но мне нужно чтобы вторым параметром не я задавал какое либо значение строки, а чтобы это значение подставлялось из переменной СтрокаТаблицы.НазначениеПлатежа.
В варианте : Если Нрег(СтрНайти(СтрокаТаблицы.НазначениеПлатежа,Фразы))> 0 Тогда Срабатывает исключение : Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата) |
|||
58
semen20192019
26.02.19
✎
14:12
|
(56) Объясни пожалуйста не знающему человеку.
|
|||
59
Mikeware
26.02.19
✎
14:21
|
(52) ну ведь подсказали еще в (2)?
хочешь, чтоб за тебя написали? ну, напишут - но разве оно тебе поможет? все за тебя все равно не сделают. учись делать самостоятельно. (58) посмотри в СП что возвращает СтрНайти, и подумай - можно ли это перевести в нижний регистр |
|||
60
sqr4
26.02.19
✎
14:27
|
У меня же все наоборот было Сначала СтрНайти, а уж потом нРег...
|
|||
61
Mikeware
26.02.19
✎
14:30
|
(60) ну ты ж про некоммутативность ничего не говорил :-)
|
|||
62
semen20192019
26.02.19
✎
14:32
|
(59)Про СтрНайти понял)))Извиняюсь.
|
|||
63
Xapac
модератор
26.02.19
✎
14:34
|
||||
64
sqr4
26.02.19
✎
14:34
|
(63) (42) Было уже, советвали
|
|||
65
semen20192019
26.02.19
✎
14:39
|
(60) переписал)
Если СтрНайти(Нрег(СтрокаТаблицы.НазначениеПлатежа),Фразы)> 0 Тогда |
|||
66
ИУБиПовиц
26.02.19
✎
14:40
|
Фразы = Запрос.Выполнить().Выбрать();
Платеж = СтрНайти(Фразы,СтрокаТаблицы.НазначениеПлатежа); Ну гляньте что у вас в фразах за значение - выборка ж, а должна быть строка. |
|||
67
Йохохо
26.02.19
✎
14:41
|
(66) тонко, зачот
|
|||
68
ИУБиПовиц
26.02.19
✎
14:42
|
и как должно обрабатываться пересечение ключевых слов, типа в назначении несколько ключевых будет находится?
|
|||
69
hhhh
26.02.19
✎
14:44
|
(68) я думаю Назначение платежа по-любому не найдется во фразе. Надо наоборот, фразу искать в назначении платежа.
|
|||
70
Вася Теркин
26.02.19
✎
14:44
|
Тогда уж так
ЭтоРусскийЯзык = СтрНайти(Фразы,СтрокаТаблицы.НазначениеПлатежа); |
|||
71
semen20192019
26.02.19
✎
14:44
|
(66) У меня в выборке находятся записи с типом строка.
|
|||
72
Йохохо
26.02.19
✎
14:45
|
(69) ну блин
|
|||
73
semen20192019
26.02.19
✎
14:47
|
(66)
Из отладчика КлючевыеФразы "Продовольственное" Строка |
|||
74
Вася Теркин
26.02.19
✎
14:47
|
(69) Точно
ЭтоРусскийЯзык = СтрНайти(СтрокаТаблицы.НазначениеПлатежа,Фразы.КлючевыеФразы); |
|||
75
Вася Теркин
26.02.19
✎
14:48
|
А нашлась запись зачем? Там вроде надо знать какие при этом ставить....
|
|||
76
Вася Теркин
26.02.19
✎
14:49
|
Сиськи покажи.
|
|||
77
semen20192019
26.02.19
✎
14:49
|
(75) Не совсем понял про что речь.
|
|||
78
semen20192019
26.02.19
✎
15:06
|
(74) Спасибо
|
|||
79
semen20192019
26.02.19
✎
15:17
|
Всем спасибо большое. Тему можно закрыть.
|
|||
80
Mikeware
26.02.19
✎
15:19
|
(68) можно тупо - сортировать по длине ключевой фразы. сначала обрабатыват самые длинные фразы.
ну и затем - прерываться... в условии задачи вроде нет и вряд ли может быть условие множественности... |
|||
81
Вася Теркин
27.02.19
✎
06:50
|
(80) Там ещё примерный поиск нужен. Вообще я бы для начала пробелы поубрал, запятые и кавычки всякие. И все в верхний регистр.
Функция ВернутьНормализованнуюСтроку(Строчка) Строчка = СтрЗаменить(Строчка," ",""); Строчка = СтрЗаменить(Строчка,"(",""); Строчка = СтрЗаменить(Строчка,")",""); Строчка = СтрЗаменить(Строчка,"-",""); Строчка = СтрЗаменить(Строчка,"_",""); Строчка = СтрЗаменить(Строчка,"№",""); Строчка = СтрЗаменить(Строчка,"#",""); Строчка = СтрЗаменить(Строчка,"%",""); Строчка = СтрЗаменить(Строчка,"!",""); Строчка = СтрЗаменить(Строчка,"?",""); //Даты повырежем все и прочие числа Строчка = СтрЗаменить(Строчка,".",""); Строчка = СтрЗаменить(Строчка,",",""); Строчка = СтрЗаменить(Строчка,"г.",""); Строчка = СтрЗаменить(Строчка,"0",""); Строчка = СтрЗаменить(Строчка,"1",""); Строчка = СтрЗаменить(Строчка,"2",""); Строчка = СтрЗаменить(Строчка,"3",""); Строчка = СтрЗаменить(Строчка,"4",""); Строчка = СтрЗаменить(Строчка,"5",""); Строчка = СтрЗаменить(Строчка,"6",""); Строчка = СтрЗаменить(Строчка,"7",""); Строчка = СтрЗаменить(Строчка,"8",""); Строчка = СтрЗаменить(Строчка,"9",""); Строчка = СтрЗаменить(Строчка,"0",""); Строчка = СтрЗаменить(Строчка," от ",""); Возврат Строчка; Конец |
|||
82
Вася Теркин
27.02.19
✎
06:50
|
Забыл в конце ВРЕГ
Функция ВернутьНормализованнуюСтроку(Строчка) Строчка = СтрЗаменить(Строчка," ",""); Строчка = СтрЗаменить(Строчка,"(",""); Строчка = СтрЗаменить(Строчка,")",""); Строчка = СтрЗаменить(Строчка,"-",""); Строчка = СтрЗаменить(Строчка,"_",""); Строчка = СтрЗаменить(Строчка,"№",""); Строчка = СтрЗаменить(Строчка,"#",""); Строчка = СтрЗаменить(Строчка,"%",""); Строчка = СтрЗаменить(Строчка,"!",""); Строчка = СтрЗаменить(Строчка,"?",""); //Даты повырежем все и прочие числа Строчка = СтрЗаменить(Строчка,".",""); Строчка = СтрЗаменить(Строчка,",",""); Строчка = СтрЗаменить(Строчка,"г.",""); Строчка = СтрЗаменить(Строчка,"0",""); Строчка = СтрЗаменить(Строчка,"1",""); Строчка = СтрЗаменить(Строчка,"2",""); Строчка = СтрЗаменить(Строчка,"3",""); Строчка = СтрЗаменить(Строчка,"4",""); Строчка = СтрЗаменить(Строчка,"5",""); Строчка = СтрЗаменить(Строчка,"6",""); Строчка = СтрЗаменить(Строчка,"7",""); Строчка = СтрЗаменить(Строчка,"8",""); Строчка = СтрЗаменить(Строчка,"9",""); Строчка = СтрЗаменить(Строчка,"0",""); Строчка = ВРЕГ(Строчка); Возврат Строчка; Конец |
|||
83
Вася Теркин
27.02.19
✎
06:52
|
Можно ещё добавить
Строчка = СтрЗаменить(Строчка," от ",""); самой первой строкой |
|||
84
Nikoss
27.02.19
✎
07:05
|
(81)(82) ох и любитель копипаста :/
|
|||
85
Mihenius
27.02.19
✎
08:19
|
(82) Забыл убрать кавычки и прочие доп. символы, а так же перенос строки и ";"
|
|||
86
Mikeware
27.02.19
✎
08:22
|
(82) открой для себя сред() и циклы...
|
|||
87
breezee
27.02.19
✎
09:06
|
Используй ПОДОБНО в запросе
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |