Имя: Пароль:
1C
1С v8
Найти значение в ТЗ по маске
,
0 OASU
 
27.07.11
11:41
Есть две ТЗ. Встав на значение в ТЗ1 нужно найти по маске значение в ТЗ2. Вот сижу и не понимаю как ей правильно пользоваться. И вообще есть сомнения в необходимости ее использования.

Основная задача:
1) Номенк1 + Характеристика, где значение характеристики равно 1.2х00.
2) Номенк2 это наименование которое содержит в наименовании 1,2х00 (разница в точке и запятой).
Так вот мне их нужно выстроить в таблице (Номенк1 с Характеристикой 1.2х00) - слева, Номенк2 1,2х00 - справа.

Для каждой номенклатуры свой запрос, и результат в отделных ТЗ.

Подскажите как лучше сделать.
1 butterbean
 
27.07.11
11:42
в запросе
2 H A D G E H O G s
 
27.07.11
11:44
Не делать так
3 Fragster
 
гуру
27.07.11
11:46
(2) человек решает благородную задачу перевода на характеристики
4 OASU
 
27.07.11
12:00
Изначаль делала все в Запросе, две таблицы и через подобно Значение характеристики и наименование Номенк2. Новыяснилось что в характеристики ".", а в наименовании ","
5 dimoff
 
27.07.11
12:05
(4) Так заменяй в параметре для ПОДОБНО точку на запятую
6 OASU
 
27.07.11
12:05
(5) как это?
7 dimoff
 
27.07.11
12:06
или делай два параметра, в одном точка в другом запятая с условием ИЛИ
8 dimoff
 
27.07.11
12:06
(6) Покажи запрос скажу как это
9 OASU
 
27.07.11
12:11
(6) ИЛИ наверно лучше подойдет, т.к. в Номенк2 в наименовании может быть или "." или ","

ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
   ВложенныйЗапросЗнач.ПометкаУдаления,
   ВложенныйЗапросЗнач.Номенклатура,
   ВложенныйЗапросЗнач.Номенклатура.БазоваяЕдиницаИзмерения,
   ВложенныйЗапросЗнач.КоличествоНачальныйОстаток,
   ВложенныйЗапросЗнач.КоличествоПриход,
   ВложенныйЗапросЗнач.КоличествоРасход,
   ВложенныйЗапросЗнач.КоличествоКонечныйОстаток,
   ВложенныйЗапросЗнач.СвойстваОбъектовНаименование,
   ВложенныйЗапросЗнач.Свойство,
   ВложенныйЗапросЗнач.Значение,
   ВложенныйЗапросЗнач.ХарактеристикаНоменклатуры,
   ВложенныйЗапросЗнач.Заказ КАК Заказ,
   ВложенныйЗапрос.Номенклатура КАК НоменклатураМ,
   ВложенныйЗапрос.Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмМ,
   ВложенныйЗапрос.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстатокМ,
   ВложенныйЗапрос.КоличествоПриход КАК КоличествоПриходМ,
   ВложенныйЗапрос.КоличествоРасход КАК КоличествоРасходМ,
   ВложенныйЗапрос.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстатокМ,
   ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул
ИЗ
   (ВЫБРАТЬ РАЗЛИЧНЫЕ
       СвойстваОбъектов.Наименование КАК СвойстваОбъектовНаименование,
       СвойстваОбъектов.ПометкаУдаления КАК ПометкаУдаления,
       СвойстваОбъектов.Ссылка КАК Свойство,
       ЗначенияСвойствОбъектов.Значение КАК Значение,
       ВложенныйЗапрос.Номенклатура КАК Номенклатура,
       ВложенныйЗапрос.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
       ВложенныйЗапрос.КоличествоПриход КАК КоличествоПриход,
       ВложенныйЗапрос.КоличествоРасход КАК КоличествоРасход,
       ВложенныйЗапрос.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
       ВложенныйЗапрос.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
       ВложенныйЗапрос.Заказ КАК Заказ
   ИЗ
       (ВЫБРАТЬ
           СвойстваОбъектов.Ссылка КАК Ссылка,
           СвойстваОбъектов.Наименование КАК Наименование,
           СвойстваОбъектов.ПометкаУдаления КАК ПометкаУдаления
       ИЗ
           ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
       ГДЕ
           СвойстваОбъектов.НазначениеСвойства В(&НазначениеСвойств)) КАК СвойстваОбъектов
           ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
               ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                   ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура КАК Номенклатура,
                   ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
                   ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
                   ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
                   ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
                   ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
                   ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Заказ КАК Заказ
               ИЗ
                   РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.ОстаткиИОбороты(&НачПериода, &КонПериода, , , Заказ.ДоговорКонтрагента = &ДоговорКонтрагента) КАК ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты
               
               СГРУППИРОВАТЬ ПО
                   ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура,
                   ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры,
                   ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Заказ,
                   ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоНачальныйОстаток,
                   ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоПриход,
                   ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоРасход,
                   ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоКонечныйОстаток) КАК ВложенныйЗапрос
               ПО ЗначенияСвойствОбъектов.Объект = ВложенныйЗапрос.ХарактеристикаНоменклатуры
           ПО (ЗначенияСвойствОбъектов.Свойство = СвойстваОбъектов.Ссылка)
           ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НазначенияСвойствОбъектов КАК НазначенияСвойствОбъектов
           ПО (НазначенияСвойствОбъектов.Свойство = СвойстваОбъектов.Ссылка)
               И (ЗначенияСвойствОбъектов.Значение ЕСТЬ NULL )
   ГДЕ
       (НазначенияСвойствОбъектов.Объект ЕСТЬ NULL
               ИЛИ НазначенияСвойствОбъектов.Объект В (ВложенныйЗапрос.Номенклатура))) КАК ВложенныйЗапросЗнач
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура КАК Номенклатура,
           ВЫБОР
               КОГДА (ВЫРАЗИТЬ(ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура.Артикул КАК СТРОКА(9))) <> (ВЫРАЗИТЬ(ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура.Артикул КАК СТРОКА(8)))
                   ТОГДА ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура.Артикул
           КОНЕЦ КАК Материал,
           ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
           ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
           ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
           ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
           ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
           ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Заказ КАК Заказ
       ИЗ
           РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.ОстаткиИОбороты(&НачПериода, &КонПериода, , , Заказ.ДоговорКонтрагента = &ДоговорКонтрагента) КАК ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты
       
       СГРУППИРОВАТЬ ПО
           ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура,
           ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры,
           ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Заказ,
           ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоНачальныйОстаток,
           ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоПриход,
           ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоРасход,
           ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоКонечныйОстаток,
           ВЫБОР
               КОГДА (ВЫРАЗИТЬ(ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура.Артикул КАК СТРОКА(9))) <> (ВЫРАЗИТЬ(ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура.Артикул КАК СТРОКА(8)))
                   ТОГДА ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура.Артикул
           КОНЕЦ) КАК ВложенныйЗапрос
       ПО (ВложенныйЗапрос.Номенклатура.Наименование ПОДОБНО "%" + ВложенныйЗапросЗнач.Значение.Наименование + "%")

СГРУППИРОВАТЬ ПО
   ВложенныйЗапросЗнач.Номенклатура,
   ВложенныйЗапросЗнач.ПометкаУдаления,
   ВложенныйЗапросЗнач.СвойстваОбъектовНаименование,
   ВложенныйЗапросЗнач.Заказ,
   ВложенныйЗапросЗнач.Свойство,
   ВложенныйЗапросЗнач.Значение,
   ВложенныйЗапросЗнач.ХарактеристикаНоменклатуры,
   ВложенныйЗапросЗнач.КоличествоНачальныйОстаток,
   ВложенныйЗапросЗнач.КоличествоПриход,
   ВложенныйЗапросЗнач.КоличествоРасход,
   ВложенныйЗапросЗнач.КоличествоКонечныйОстаток,
   ВложенныйЗапрос.Номенклатура,
   ВложенныйЗапрос.КоличествоНачальныйОстаток,
   ВложенныйЗапрос.КоличествоПриход,
   ВложенныйЗапрос.КоличествоРасход,
   ВложенныйЗапрос.КоличествоКонечныйОстаток,
   ВложенныйЗапрос.Номенклатура.Артикул,
   ВложенныйЗапросЗнач.Номенклатура.БазоваяЕдиницаИзмерения,
   ВложенныйЗапрос.Номенклатура.БазоваяЕдиницаИзмерения
ИТОГИ ПО
   Заказ
10 dimoff
 
27.07.11
12:15
(9) Если ПОДОБНО формируется налету тогда идей нет, кроме как сначала написать код который пройдется снчала по элементам и приведет их к одному виду в плане точек-запятых
11 OASU
 
27.07.11
12:17
(10) Хорошо, как пройтись и привести к одному виду точек-запятых ?
12 OASU
 
27.07.11
12:18
(10) А разве через Маску не тоже самое?
13 dimoff
 
27.07.11
12:22
(11) Делаешь запрос к характеристикам, берешь наименование каждой, делаешь два параметра

Парам1 = Стрзаменить(НаименованиеХарактеристики, ".", ",");
Парам2 = Стрзаменить(НаименованиеХарактеристики, ",", ".");

И делаешь запрос к справочнику номенклатура с условием

Ссылка ПОДОБНО "%" + Парам1 + "%" ИЛИ Ссылка ПОДОБНО "%" + Парам2 + "%"

Приводишь к одному виду, записываешь
14 dimoff
 
27.07.11
12:23
(12) Я не знаю что такое маска, сорри
15 OASU
 
27.07.11
12:31
(13) не совсем поняла, если честно.
16 dimoff
 
27.07.11
12:32
Значит я не умею объяснять, пойду учиться.
17 OASU
 
27.07.11
12:37
(16) Могу помочь ;)
18 dimoff
 
27.07.11
12:40
(17) Просто найди для каждой характеристики позиции номенклатуры, у которых такое же название но вместо точки запятая или наоборот и поменяй наименование в соответствие с харатеристикой. Как это сделать описал в 13. Делается один раз после чего твой запрос нормально работает.
19 OASU
 
27.07.11
13:28
(18) спасибо, почти работает. Немножко задваивает записи, но разберусь ))
2 + 2 = 3.9999999999999999999999999999999...