|
Как значение из файла сравнить с значением перечисления? | ☑ | ||
---|---|---|---|---|
0
AnyBaz
19.09.13
✎
13:47
|
Суть вопроса такова:
У нас есть загрузочный файл в котором есть колонка "Ставка НДС", чтобы ее записать в новый справочник, мы должны сравнить это значение (тип строка) с значением перечисления (тип перечисление), и в случае несовпадения записать значение из файла. В общем как строку перевести в перечисление? Заранее спасибо. |
|||
1
Franchiser
гуру
19.09.13
✎
13:50
|
Создай, например, соответсвие (представления и ссылки на перечисление) и затем сравнивай. Заполнить можно обходом метаданных.
|
|||
2
cw014
19.09.13
✎
13:52
|
Перечисления.СтавкиНДС[ПеременнаяСоСтрокойИдентификатора]
|
|||
3
Franchiser
гуру
19.09.13
✎
13:53
|
я думаю в файле у него нет идентификатора а просто значение ставки.
|
|||
4
cw014
19.09.13
✎
13:54
|
Тады ой
|
|||
5
AnyBaz
19.09.13
✎
13:55
|
Да, там каждому товару присвоено свое значение ставки НДС
|
|||
6
MSII
19.09.13
✎
13:57
|
(5) Ну и поступай как в (1) посоветовали, сделай соответствие, в ключах - значения перечисления, в значениях - числа (значения ставок).
|
|||
7
AnyBaz
19.09.13
✎
13:58
|
А можно как-то использовать цикл Если и предопределенное значение перечисления? и как-то, используя его сравнивать?
|
|||
8
MSII
19.09.13
✎
13:58
|
+(6) Т.е. наоборот, в ключах числа, в значениях - значения перечисления, конечно же.
|
|||
9
Sabbath
19.09.13
✎
13:59
|
(0) Если у тебя текст в файле соответствует синониму в конфе, то сделай соответствие. Получи запросом все значения и обойди в цикле, заполняя соответствие между синонимом и ссылкой через
<Значение>.Метаданные().Синоним Ну и потом когда файл обходишь доставай по синониму перечисление. А если не соответствует, то вручную заполни соответствие |
|||
10
Franchiser
гуру
19.09.13
✎
14:01
|
Код из Бухгалтерии:
Функция ПолучитьСтавкуНДСПеречислением(СтавкаНДС, ОбратнаяСтавка = Ложь) ЗначениеНДС = Неопределено; Если ТипЗнч(СтавкаНДС) = Тип("Строка") Тогда ПредставлениеСтавкиНДС = СтавкаНДС; ИначеЕсли ТипЗнч(СтавкаНДС) = Тип("Число") Тогда ПредставлениеСтавкиНДС = Строка(СтавкаНДС); Иначе // неправильный тип ПредставлениеСтавкиНДС = Неопределено; КонецЕсли; Если ПредставлениеСтавкиНДС = Неопределено ИЛИ ВРЕГ(ПредставлениеСтавкиНДС) = "БЕЗ НДС" Тогда ЗначениеНДС = Перечисления.СтавкиНДС.БезНДС; ИначеЕсли ПредставлениеСтавкиНДС = "0" ИЛИ ПредставлениеСтавкиНДС = "0%" Тогда ЗначениеНДС = Перечисления.СтавкиНДС.НДС0; ИначеЕсли Найти("10#0.1#0,1#0.10#0,10#10%", ПредставлениеСтавкиНДС) > 0 Тогда ЗначениеНДС = Перечисления.СтавкиНДС.НДС10; ИначеЕсли Найти("20#0.2#0,2#0.20#0,20#20%", ПредставлениеСтавкиНДС) > 0 Тогда ЗначениеНДС = Перечисления.СтавкиНДС.НДС20; ИначеЕсли Найти("18#0.18#0,18#0.18#0,18#18%", ПредставлениеСтавкиНДС) > 0 Тогда ЗначениеНДС = Перечисления.СтавкиНДС.НДС18; ИначеЕсли Найти("10/110#10% / 110%#10%/110%", ПредставлениеСтавкиНДС) > 0 Тогда ЗначениеНДС = Перечисления.СтавкиНДС.НДС10_110; ИначеЕсли Найти("18/118#18% / 118%#18%/118%", ПредставлениеСтавкиНДС) > 0 Тогда ЗначениеНДС = Перечисления.СтавкиНДС.НДС18_118; КонецЕсли; Возврат ЗначениеНДС; КонецФункции |
|||
11
Sabbath
19.09.13
✎
14:02
|
+(9) можно научить составляющих файл писать значение ставки как в 1С, тогда будет проще)
|
|||
12
Sabbath
19.09.13
✎
14:03
|
(10) нормально ктати, только автору может и не подойти, мы же файл не видели
|
|||
13
AnyBaz
19.09.13
✎
14:12
|
файл это выгрузка справочника номенклатуры из УТ 10 а мне надо его загрузить в УТ 11
|
|||
14
Sabbath
19.09.13
✎
14:16
|
(13) Тогда по идее синонимы должны совпадать (хотя это надо проверить, я с УТ не работаю вообще). А что корнвертацией данных нельзя?
|
|||
15
Franchiser
гуру
19.09.13
✎
14:18
|
(14) Судя по рейтингу, человек еще не знаком с КД
|
|||
16
AnyBaz
19.09.13
✎
14:27
|
я только начинаю свою деятельность в 1с, поэтому я мало чего знаю
|
|||
17
Buster007
19.09.13
✎
14:28
|
(16) в таком случае надо почитать книги.
|
|||
18
AnyBaz
19.09.13
✎
14:29
|
я прошла курсы для программистов
|
|||
19
Franchiser
гуру
19.09.13
✎
14:29
|
Анна Павловна, можете использовать функцию из 10.
Пишете так: ПеречислениеИзФайла =ПолучитьСтавкуНДСПеречислением(ЗначениеСтавки); Затем сравниваете с чем хотите. |
|||
20
AnyBaz
19.09.13
✎
14:47
|
Спасибо) буду пробовать)
|
|||
21
Sabbath
19.09.13
✎
14:48
|
(16) Если прямо переносить весь справочник и они идентичны в УТ10 и УТ11, то конвертацией данных все просто. Надо немного разобраться, зато ничего писать не надо.
И еще у меня есть подозрение, что существует типовая обработка по загрузке справочников из УТ10 в УТ11, или просто правила обмена и универсальная обработка. Думаю, если найдешь, будет все быстрее и проще. Например, можно тут тему созать, чтобы помогли найти |
|||
22
AnyBaz
19.09.13
✎
14:52
|
да я знаю, что есть загрузка справочников из файла, но она не подходит мне. Начальство сказало разработать свою. потому что она через ADO
|
|||
23
Sabbath
19.09.13
✎
15:06
|
С этим разобралась?) v8: Как вставить в табличном документе, в начало каждого листа картинку?
|
|||
24
Полотенчик
19.09.13
✎
15:13
|
(18) этапять!
|
|||
25
AnyBaz
19.09.13
✎
15:14
|
ее нельзя вставить в область коллонтитула
|
|||
26
AnyBaz
19.09.13
✎
15:14
|
поэтому картинка только на 1ой странице
|
|||
27
фросия
19.09.13
✎
15:20
|
(25) )
|
|||
28
Sabbath
19.09.13
✎
15:21
|
(25) А почему надо именно колонтитула? Можно выводить сверху на каждой Просто проверять, когда меняется страница, так делают шапки и подвалы для всяких многостраничных таблиц. Я думаю, суть та же.
|
|||
29
AnyBaz
19.09.13
✎
15:24
|
возможно, но выводить на каждой странице я ставила, но ничего не изменялось, картинка также была на 1 странице и все
|
|||
30
Sabbath
19.09.13
✎
15:35
|
(29) Где-то косяк при выводе был, значит. А так это просто область макета с картинкой. Надо проверять, влезают ли выводимые области на страницу через метод таб документа ПроверитьВывод(). Когда не влезают, то вывыводить разделитель страниц (ВывестиГоризонтальныйРазделительСтраниц). И после этого выводить область с картинкой. Тогда будет наверху каждой страницы.
Посмотри в той же УТ (глобальным поиском по наименованию этих методов выше можно), где есть многостраничная печать каких-то документов, когда шапка выводится на каждой странице (или подвал), и возьми как пример. |
|||
31
AnyBaz
19.09.13
✎
15:42
|
Спасибо) как это задание доделаю, тогда и попробую с картинкой, просто чтобы знать на будущее. А так я то задание уже сдала)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |