|
Связь справочников | ☑ | ||
---|---|---|---|---|
0
pv94384
11.08.11
✎
11:26
|
Добрый день! Вопрос на повестке дня такой: Необходимо связать 2 справочника "Чеки" и "СтрокиЧеков", где владельцем справочника "СтрокиЧеков" является "Справочник.Чеки". Общих полей у этих справочников нет.
Как это реализовать? |
|||
1
Ork
11.08.11
✎
11:27
|
(0) Ну дык "владельцем справочника "СтрокиЧеков" является "Справочник.Чеки" - вывод напрашивается сам собой.
|
|||
2
skunk
11.08.11
✎
11:28
|
в справочник строкичеков добавить реквизит владелец с типом справочник чеки
|
|||
3
Goggy
11.08.11
✎
11:29
|
опять романтику сразу же испортили :(
|
|||
4
pv94384
11.08.11
✎
11:31
|
сделал СтрокиЧеков.Владелец = Справочники.Чеки.НайтиПоРеквизиту();
Вот не пойму что в скобках писать, если нет общих реквизитов |
|||
5
unregistered
11.08.11
✎
11:31
|
(0) >> Общих полей у этих справочников нет.
Как так нет? Кто украл? поле Ссылка справочника Чеки = поле Владелец справочника СтрокиЧеков. |
|||
6
Azverin
11.08.11
✎
11:32
|
теперь точно испортили
|
|||
7
unregistered
11.08.11
✎
11:32
|
(4) Скажи что тебе конкретно надо.
А то складывается ощущение, что ты пытаешься левой рукой правое ухо почесать причем через ногу руку тянешь. |
|||
8
Жан Пердежон
11.08.11
✎
11:33
|
(4) ты предлагаешь предметную область за тебя допридумать?
|
|||
9
pv94384
11.08.11
✎
11:36
|
Выгрузить из 2х вайлов дбф данные в справочники Чеки и СтрокиЧеков, так, чтобы СтрокиЧеков относились к определенному Чеку
|
|||
10
unregistered
11.08.11
✎
11:42
|
(9) %0
Так ты связываешь справочники или таблицы dbf ? А по сути: ЗагруженныйЧек = Справочники.Чек.СоздатьЭлемент(); // заполняем чек из dbf ЗагруженныйЧек.Записать(); ЗагруженнаяСтрокаЧека = Справочники.СтрокиЧеков.СоздатьЭлемент(); // заполняем строку чека из dbf ЗагруженнаяСтрокаЧека.Владелец = ЗагруженныйЧек.Ссылка; ЗагруженнаяСтрокаЧека.Записать(); |
|||
11
Ненавижу 1С
гуру
11.08.11
✎
11:44
|
ой, а потом окажется что чеки лучше было сделать документами, а строки - их строками в ТЧ
|
|||
12
Wobland
11.08.11
✎
11:45
|
про документы ещё не говорили?
|
|||
13
pv94384
11.08.11
✎
11:45
|
(10) так делал, но пишет
{Форма.Форма(68)}: Ошибка при вызове метода контекста (Записать): Владелец не задан или задан неверно! СтрокиЧеков.Записать(); по причине: Владелец не задан или задан неверно! |
|||
14
pv94384
11.08.11
✎
11:46
|
(11) Согласен, но как говориться "Базы не выбирают" ))) Такая была )
|
|||
15
Goggy
11.08.11
✎
11:47
|
(13) весь код кинь
|
|||
16
pv94384
11.08.11
✎
11:48
|
(15)
Процедура КнопкаВыполнитьНажатие(Кнопка) База = Новый XBase; База.Кодировка=КодировкаXBase.OEM; База.ОткрытьФайл("C:\Users\Владимир\Desktop\DBF\09-01CH.dbf"); Если База.Открыта() тогда Предупреждение("База открыта"); База.Первая(); Пока Не База.ВКонце() Цикл Чеки = Справочники.Чеки.СоздатьЭлемент(); Чеки.Дата = Дата(ТекущаяДата()); Чеки.СуммаСкидки = СокрЛП(База.ПолучитьЗначениеПоля("SKIDKA")); Чеки.СуммаНал = СокрЛП(База.ПолучитьЗначениеПоля("NAL")); Чеки.Сумма = СокрЛП(База.ПолучитьЗначениеПоля("SUMMA")); Чеки.НомерЧекаККМ = СокрЛП(База.ПолучитьЗначениеПоля("CHECK_N")); Чеки.Записать(); База.Следующая(); КонецЦикла; Иначе Предупреждение("Не смогли открыть базу!!!",2); КонецЕсли; База.ЗакрытьФайл(); База1 = Новый XBase; База1.Кодировка=КодировкаXBase.OEM; База1.ОткрытьФайл("C:\Users\Владимир\Desktop\DBF\09-01CH_.dbf"); Если База1.Открыта() тогда Предупреждение("База1 открыта"); База1.Первая(); Пока Не База1.ВКонце() Цикл Чеки = Справочники.Чеки.СоздатьЭлемент(); СтрокиЧеков = Справочники.СтрокиЧеков.СоздатьЭлемент(); СтрокиЧеков.Количество = База1.ПолучитьЗначениеПоля("KOL"); СтрокиЧеков.Цена = СокрЛП(База1.ПолучитьЗначениеПоля("CENA")); СтрокиЧеков.Сумма = СокрЛП(База1.ПолучитьЗначениеПоля("SUMMA")); СтрокиЧеков.Владелец = Чеки.Ссылка; СтрокиЧеков.Записать(); База1.Следующая(); КонецЦикла; Иначе Предупреждение("Не смогли открыть базу1!!!",2); КонецЕсли; База1.ЗакрытьФайл(); КонецПроцедуры |
|||
17
vtolga
11.08.11
✎
11:52
|
у тебя Чеки еще не записан, когда ты к нему строки подцепить пытаешься
|
|||
18
vtolga
11.08.11
✎
11:53
|
и вообще, на момент записи строк чек уже есть? тогда зачем новый создавать?
|
|||
19
vtolga
11.08.11
✎
11:55
|
в файле строк чеков должно быть поле, идентифицирующее чек (предположительно CHECK_N), вот по нему чек и ищи.
|
|||
20
pv94384
11.08.11
✎
11:56
|
Понял, что вторая переменная Чеки не нужна, а вот как записать Чеки в новом цикле, если там идет взаимодействие с другим файлом дбф?
|
|||
21
vtolga
11.08.11
✎
11:57
|
У тебя, кстати, оба цикла по одному и тому же файлу. Так там чеки или строки?
|
|||
22
palpetrovich
11.08.11
✎
11:58
|
гыгы, опять? :)
v8: Загрузка из dbf в 1с |
|||
23
pv94384
11.08.11
✎
12:00
|
(21) файлы разные (в одном окончание _)
(22) проблема актуальна |
|||
24
vtolga
11.08.11
✎
12:02
|
Тогда см (19)
|
|||
25
pv94384
11.08.11
✎
12:03
|
(19) предполагаю что это поле "KOD_CH" и "KOD_CH_"...
http://s48.radikal.ru/i120/1108/a0/a8bd2e2f6461.jpg |
|||
26
palpetrovich
11.08.11
✎
12:03
|
(23) эхехе, актуальна... ну выложи свои файлы в файлообменник, гляну че там не получается у тебя
|
|||
27
lubja
11.08.11
✎
12:09
|
а это... где ты в своей коде присваиваешь коды справочникам?
|
|||
28
lubja
11.08.11
✎
12:10
|
+27 по которым, по идеи, ты потом должен находить "соответствие"...
|
|||
29
pv94384
11.08.11
✎
12:33
|
(26) Выложил
http://www.fayloobmennik.net/870318 |
|||
30
palpetrovich
11.08.11
✎
12:44
|
(29) а что ты там выложил? ..неужели 2 файла dbf - 58мб? :)
|
|||
31
pv94384
11.08.11
✎
12:45
|
(30)+ база и обработка
|
|||
32
palpetrovich
11.08.11
✎
12:50
|
(31) ну это можно было и не кидать ...все-же надеюсь и файлы dbf там есть :)
|
|||
33
pv94384
11.08.11
✎
12:50
|
(32) есть )
|
|||
34
palpetrovich
11.08.11
✎
12:53
|
(33) жди тогда :)
и в личке мыло засвети |
|||
35
pv94384
11.08.11
✎
12:54
|
(34) мыло [email protected]
|
|||
36
pv94384
11.08.11
✎
13:31
|
Убрал строку Чеки = Справочники.Чеки.СоздатьЭлемент();
теперь все строки присваиваются последней записи |
|||
37
palpetrovich
11.08.11
✎
14:44
|
(35) смотри почту
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |