1C Программирование и поддержка - [77] :: Прикладное программирование :: Компьютерный форум Ru.Board
Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » 1C Программирование и поддержка

Модерирует : ShIvADeSt

ShIvADeSt (06-02-2008 02:31): продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=9226  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

   

Vxd2000



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Самописная конфигурация на 8.1. платформе.
 
Есть документ, в нем 2 табличные части (ТЧ1 и ТЧ2) , содержащие разные колонки (в ТЧ2 нет ни одной колонки, которая есть в ТЧ1 и наоборот) .
Первая (ТЧ1) выгружается в таблицу значений (соответственно структура ТЗ такая же, как и у ТЧ1) :
ТЗ = ТЧ1.Выгрузить();
 
Затем добавляются к полученной ТЗ колонки, содержащиеся в ТЧ2.
ТЗ.Колонки.Добавить("Колонка1");
ТЗ.Колонки.Добавить("Колонка2");
 
Как в данную ТЗ выгрузить данные из ТЧ2 так, чтобы при этом количество каждой из строк из ТЧ1 стало равно общему количеству строк ТЧ2 ?
 
Например, количество строк в ТЧ2 всего 5, в ТЧ1 строк всего 2, нужно чтобы количество Строка1 из ТЧ1 было равно 5, чтобы количество Строка2 из ТЧ1 тоже было равно 5, то есть нужно реализовать связь один - ко - многим (которая есть между ТЧ1 и ТЧ2) . И чтобы колонки, значения которых выгружаются из ТЧ2 в ТЗ, также были заполнены соответственно связи один - ко - многим.

Всего записей: 1135 | Зарегистр. 14-11-2002 | Отправлено: 19:52 01-09-2007
dias65



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vxd2000
А не проще выгружать в ТЗ данные построчно через вложенный цикл?
Т.е. сначала добавить все колонки, а уж потом заполнять ТЗ.
Код:
Пока ТЧ1.ПолучитьСтроку()=1 Цикл
  ЗначениеКолонки1ТЧ1=ТЧ1.Колонка1;
  ЗначениеКолонки2ТЧ1=Тч1.Колонка2;
  Пока ТЧ2.ПолучитьСтроку()=1 Цикл
    ТЗ.НоваяСтрока();
    ТЗ.Колонка1=ЗначениеКолонки1ТЧ1;
    ТЗ.Колонка2=ЗначениеКолонки2ТЧ1;
    ТЗ.Колонка3=ТЧ2.Колонка1;    
..........
Занудно, но работать должно.
За синтаксис не ручаюсь, он из 7.7

Всего записей: 277 | Зарегистр. 28-11-2006 | Отправлено: 23:27 01-09-2007 | Исправлено: dias65, 23:29 01-09-2007
levnev



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Vxd2000
А может все таки познакомится с теорией баз данных? Как строятся отношения один-ко-многим, много-ко-многим? И заодно посмотреть, как такие проблемы решаются другими программистами?

Цитата:
связь один - ко - многим (которая есть между ТЧ1 и ТЧ2)  

Если действительно между ТЧ1 и ТЧ2 есть хоть какая-то связь, то по этой связи и надо заполнять Вашу ТЗ и никак иначе!

Всего записей: 199 | Зарегистр. 23-04-2005 | Отправлено: 23:37 01-09-2007
Vxd2000



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А может все таки познакомится с теорией баз данных? Как строятся отношения один-ко-многим, много-ко-многим

 
levnev да как - то мне наверное не надо, вообщем знаком (хоть немного) .
 
В данном случае каждой строке из ТЧ1 "соответствует" ровно столько строк в ТЧ2, сколько их там всего, подчеркиваю, всего, есть.
То есть, если, например, для 3 строк ТЧ1 и 4 строк ТЧ2:
 
Строка1ТЧ1   Строка1ТЧ2    
                     Строка2ТЧ2
                     Строка3ТЧ2    
                     Строка4ТЧ2    
 
Строка2ТЧ1   Строка1ТЧ2
                     Строка2ТЧ2
                     Строка3ТЧ2    
                     Строка4ТЧ2    
 
Строка3ТЧ1   Строка1ТЧ2
                     Строка2ТЧ2
                     Строка3ТЧ2    
                     Строка4ТЧ2    
 
Но еще раз, общих колонок - столбцов в этих табличных частях нет (если бы это была БД, реализованная в какой - то СУБД, там можно было, иногда и нужно, сделать общий столбец - читай поле, в двух таблицах, но это 1С, тут смысла нет этого делать) .
Они находятся в одном документе.
 

Цитата:
А не проще выгружать в ТЗ данные построчно через вложенный цикл?  
Т.е. сначала добавить все колонки, а уж потом заполнять ТЗ.

 
Хотелось бы насколько возможно избежать циклов.
 
Это, скажем так, часть задачи. Полная - как можно более быстрое проведение по 1 регистру 8 табличных частей документа и конечно же шапки, при том, что каждая предыдущая ТЧ "связана" со следующей ТЧ как 1 - ко - многим, то есть ТЧ1 - ТЧ2 = один - много, ТЧ2 - ТЧ3 = один - много и так далее.

Всего записей: 1135 | Зарегистр. 14-11-2002 | Отправлено: 14:46 02-09-2007
levnev



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Vxd2000
Делаем ТЗ сразу со всеми необходимыми столбцами. Строим цикл по той таблице, где больше строк (в указанном случае это ТЧ2). В каждом шаге цикла получаем из ТЧ2 "связующее" значение, которое ищем в ТЧ1. Заполняем соответствующие колонки ТЗ.

Всего записей: 199 | Зарегистр. 23-04-2005 | Отправлено: 15:12 02-09-2007
dias65



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vxd2000

Цитата:
избежать циклов.
похоже, не удастся. а деревцо из 8 табличных частей получится неслабое Единственно - проведение по регистру делать из уже заполненной ТЗ.
В конце концов, исполнение "выгрузить()" - это тоже в своем роде цикл.

Всего записей: 277 | Зарегистр. 28-11-2006 | Отправлено: 10:51 03-09-2007
Tati56

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kolokost

Цитата:
Зайди в конфигуратор, в конфигурации в ветке "Ощие" найди интерфейсы, потом находишь интерфейс нужного человека и из его интерфейса убираешь менюшку переключения интерфейсов

В меню интерфейса нет пункта "Сервис", поэтому я не могу убрать менюшку переключения интерфейсов. В тех интерфейсах, где он есть, там только "Стандартные действия".

Всего записей: 8 | Зарегистр. 05-05-2007 | Отправлено: 10:56 03-09-2007
kolokost



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tati56
Упс я думал тебе надо убрать кнопку переключения интерфейсов с главной панели.
А не пробовали собственоручно добавить в интерфейс меню "Сервис" и накидать туда только нужные пункты?

Всего записей: 121 | Зарегистр. 03-10-2006 | Отправлено: 11:57 03-09-2007
Tati56

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kolokost
Нет, сейчас попробую.
 
Добавлено:
kolokost
Ничего не получается.
Мне кажется это связано с ролями. В описании конфигурации вычитала "пользователь имеет возможность, если у него есть на это права, переключаться между интерфейсами ". Но и там все облазила, не нашла где ему запрет поставить.
 
Добавлено:
kolokost
Вопрос снимается.
Все сделала сама!!!

Всего записей: 8 | Зарегистр. 05-05-2007 | Отправлено: 12:04 03-09-2007
tyghr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

у меня в конфигурации Бухгалтерия нет документа Переоценка ОснСредств, а он мне оч нужен, я читал он есть в конфе Производство+..+..  
 
кусочек кода не прокатит, мне нужен полноценый документ
ну скиньте у кого есть сам док или если не трудно вообще - 1cv7.md
 
поделитесь коллеги плз

Всего записей: 89 | Зарегистр. 14-03-2007 | Отправлено: 09:46 04-09-2007
mr_Winter

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
tyghr
 
Не самый последний релиз, но думаю найдешь что ищеш.
 
hххp://rapidshare.com/files/53300227/pub.rar

Всего записей: 317 | Зарегистр. 14-11-2006 | Отправлено: 11:21 04-09-2007
Vxd2000



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Единственно - проведение по регистру делать из уже заполненной ТЗ.  

 
Вот это и хочу сделать.
 
Только нужно заполнить сначала так как надо ТЗ.
 
Про "в своем роде циклы" , сомневаюсь, что выгрузка идет циклом, скорее всего копирование массива памяти (что может быть, потому что это уже на уровне кода самой оболочки, то есть на "более быстром" коде, чем код самой конфигурации) .
 
levnev, сделать ТЗ со всеми столбцами (всех ТЧ) не составит труда.
 
У меня есть частично написанное проведение с циклами, там получается порядка 15 чтоли "Если - ИначеЕсли" , в каждом из которых от 1 до 8 вложенных циклов, и это еще не законченная процедура проведения.
 
Сами по себе циклы не очень быстрые, вложенные циклы еще медленней, а там их может быть до 8 вложенных.
 

Всего записей: 1135 | Зарегистр. 14-11-2002 | Отправлено: 13:10 04-09-2007
dias65



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vxd2000

Цитата:
частично написанное проведение с циклами
Так я и намекаю, что циклы лучше использовать при заполнении ТЗ, а не при проведении. Мой пост выше [?]

Всего записей: 277 | Зарегистр. 28-11-2006 | Отправлено: 15:48 04-09-2007 | Исправлено: dias65, 15:49 04-09-2007
tyghr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
mr_Winter


вау
моей радости нет придела, спасиба дружище

Всего записей: 89 | Зарегистр. 14-03-2007 | Отправлено: 17:15 04-09-2007
DimaMag



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток.
Есть такая тема, нужно перекинуть документы и справочники из одной базы 1С8 в другую, чистую. Как это сделать ?

Всего записей: 379 | Зарегистр. 11-03-2005 | Отправлено: 08:30 05-09-2007
fol



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DimaMag ну вариантов куча: OLE, XML, выгрузка в текстовый файл, выгрузка в dbf (это если ты собираешься сам писать). Если готовое нужно - ищи правила обмена, они наиболее универсальны.

Всего записей: 805 | Зарегистр. 02-11-2002 | Отправлено: 08:53 05-09-2007
DimaMag



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Если готовое нужно - ищи правила обмена, они наиболее универсальны

Это стандартные функции, они встроены в платформу ?
-----------

Код:
Правила обмена для любых конфигураций могут быть настроены в специализированной конфигурации "Конвертация данных, редакция 2"

Ссылочкой никто не поделиться на эту конфигурацию ?

Всего записей: 379 | Зарегистр. 11-03-2005 | Отправлено: 09:29 05-09-2007 | Исправлено: DimaMag, 10:33 05-09-2007
fol



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DimaMag обмен между конфигурациями через XML - стандартная функция, подгружаешь нужные правила и обменивашься.

Цитата:
Ссылочкой никто не поделиться на эту конфигурацию ?

Ссылку в варезнике ищи http://forum.ru-board.com/topic.cgi?forum=35&topic=37215&start=160#lt [?]

Всего записей: 805 | Зарегистр. 02-11-2002 | Отправлено: 14:21 05-09-2007
eostudio

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день.
Необходимо сделать выгрузку в DBF файл. Вопрос, как из 1С создать базу в которой есть Логическое и Байт поле. DB.ДобавитьПоле("ПОЛЕ1","L",1) у меня не проходит. Как выгрузить Байт незнаю вообще. Помогите.

Всего записей: 1 | Зарегистр. 06-09-2007 | Отправлено: 12:20 06-09-2007
ArtemDpUa



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Пользователи жалуются, что помеченные на удаление объекты (фирмы, товары и т.д.), которые невозможно удалить, т.к. на них имеются ссылки, отображаются в меню выбора и подборе. Что можно сделать, чтобы они не были видны пользователям?

Удалить программно, проверив сылки.
 

Всего записей: 173 | Зарегистр. 07-06-2006 | Отправлено: 13:22 06-09-2007
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » 1C Программирование и поддержка
ShIvADeSt (06-02-2008 02:31): продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=9226


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru