Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Войти | Зарегистрироваться )



2 страниц V   1 2 >

>  Чи можливо за номером документу відкрити його візуальну форму
leo10k10
Отправлено: 19.06.17, 23:07


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


Цитата(volodya1122 @ 19.06.17, 16:36) *
"Поле ввода" - це не реквізит документа!!!! при збереженні документа дані з цого поля вводу не зберігаються.

Точно зробив його реквізитом і все проканало.

Я може вже й достав когось але в мене, ще є проблемка та запитання.
На цій формі окрім кнопки "Відрити останні набрані Акцизи" є ще декілька кнопок як зробити так аби вони при натисненні цієї змінювали свій стан тобто ставали неактивними????

Пробував до і після рядка з кодом
    ОткрытьФорму(Док.ТекущийДокумент(),"проба")


змінити статус кнопки таким рядком
    Форма.КнЗаписати.Доступность(0);

де "КнЗаписати" ідентифікатор кнопки статус якої треба змінити
і нажаль не вийшло, що тут порадите?

  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #128575 · Ответов: 15 · Просмотров: 5241
 

>  Чи можливо за номером документу відкрити його візуальну форму
leo10k10
Отправлено: 19.06.17, 12:03


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


Шановний "volodya1122 " я скористався Вашим кодом
  Процедура ОткрДок()
      Док=СоздатьОбъект("Документ.акциз");
      Если Док.НайтиПономеру("0000001038",ТекущаяДата())=1 тогда
  //    ТекущийДок=Док.ТекущийДокумент();
      ОткрытьФорму(Док.ТекущийДокумент(),"проба");
      КонецЕсли;
  КонецПроцедуры

і майже все проканало я про те, що потрібну форму воно мені відкриває і в табличній частині всі останні збереження є але на формі в мене також є "Поле Ввода" яке не заповнюється тими даними які були попередньо туди внесені як з цим бути????????
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #128550 · Ответов: 15 · Просмотров: 5241
 

>  Чи можливо за номером документу відкрити його візуальну форму
leo10k10
Отправлено: 16.06.17, 14:56


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


Цитата(mister-x @ 16.06.17, 13:23) *
я би ще таку опцію розглянув - форму для відкриття нового документу
ОткрытьФорму(<ОписательОбъекта>,<КонтекстФормы>,<ДокументОснование>)

дякую за думку але я щось недогнав цей варіант плюсую Вам за те що не залишились осторонь цього питання
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #128479 · Ответов: 15 · Просмотров: 5241
 

>  Чи можливо за номером документу відкрити його візуальну форму
leo10k10
Отправлено: 15.06.17, 23:00


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


Цитата(volodya1122 @ 15.06.17, 14:46) *
Опишіть як це має виглядати на практитці.

1. Користувач заходить в 1С
1.1 На панелі інструментів тисне на іконку "Акцизи", з'являється форма документу "Новий" для її заповнення (створює первинний документ чи за потреби абсолютно новий, що при натиснені кнопки "Зберегти", на цій формі записується з індивідуальним номером)
1.2 Аби не вводити Акцизи зпочатку а використати останній документ на цій же формі є кнопка "Відрити останні набрані Акцизи" і провести його редагування знову при натисненні кнопки "Зберегти" записати його але вже з наступним індивідуальним номером

виходить що останній номер збереженого документу я можу отримати програмно а ось відкрити по ньому цей документ незнаю як
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #128443 · Ответов: 15 · Просмотров: 5241
 

>  Чи можливо за номером документу відкрити його візуальну форму
leo10k10
Отправлено: 14.06.17, 16:46


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


Цитата(mister-x @ 14.06.17, 17:21) *
що за форма списку у документі, можливо, ви мали на увазі табличну частину цього документу? Скріншоти документу можна глянути?

ВИБАЧАЮСЬ я дійсно некоректно написав по суті користувачу для роботи надається таблична частина что в Диалоге идентифицируется как Многострочная часть.
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #128340 · Ответов: 15 · Просмотров: 5241
 

>  Чи можливо за номером документу відкрити його візуальну форму
leo10k10
Отправлено: 14.06.17, 14:52


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


Доброго дня Шановні користувачі 1С.
Маю проблемку і водночас надію на те, що саме тут з Вашою допомогою зможу її позбутися.
Суть проблеми полягає у тому, що в мене є документ "Акцизи" при відкритті даного документу мені потрібно аби на екрані користувача, не просто з'являлася форма списку, а вже заповнена форма та сама з якою останній раз працювали і зберегли з усіма внесеними даними та змынами. Я думав, що по номеру "Документ.Акцизи" можна буде "ПриОткрытии()" використати метод "ОткрытьФорму()" але щось нічого не виходить. Плюсуватиму повідомлення які реально несуть в собі корисну інформацію, а не заумні посилання в бібліотеку, дякую за розуміння.
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #128336 · Ответов: 15 · Просмотров: 5241
 

>  При створенні XML файлу виникає декілька проблем підкажіть як їх можна вирішити
leo10k10
Отправлено: 26.05.17, 16:50


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


Усім дякую, проблема вирішена, питання більше не актуальне. icon_beer17.gif
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #127550 · Ответов: 10 · Просмотров: 4847
 

>  При створенні XML файлу виникає декілька проблем підкажіть як їх можна вирішити
leo10k10
Отправлено: 25.05.17, 13:55


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


ні ну не як не розумію чому коли пишу в коді
Элемент14.УстановитьАтрибут("xsi:nil", "true");

вибиває помилку
XMLКорневойРаздел.Записать(ИмяФайлаXML);
{Документ.РасходнаяНакладная.Форма.Модуль(76)}: : xsi:nil attribute on element 'LINKED_DOCS' is invalid.
[<LINKED_DOCS xsi:nil="true"/></DECLARHEAD> (error position = 31)]
а як тільки прибираю дві крапки в имені Атрибута "xsi:nil" попилки не має і все прописується як книжка пише????????
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #127495 · Ответов: 10 · Просмотров: 4847
 

>  При створенні XML файлу виникає декілька проблем підкажіть як їх можна вирішити
leo10k10
Отправлено: 25.05.17, 11:36


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


Цитата(mister-x @ 25.05.17, 11:18) *
Взагалі, я не користуюсь інструментами v7plus.dll для запису хмл-файлів (використовую їх тільки для читання таких файлів). Для себе відкрив об'єкт DomDocument для запису хмл-файлів (читати він звісно також може ), там все логічно і зрозуміло як для мене.

Дякую за пораду але це не вирішує моєї проблеми яка є основою цієї теми.
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #127478 · Ответов: 10 · Просмотров: 4847
 

>  При створенні XML файлу виникає декілька проблем підкажіть як їх можна вирішити
leo10k10
Отправлено: 24.05.17, 21:29


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


Цитата(mister-x @ 24.05.17, 17:06) *
яким браузером відкриваєте хмл-файл?

взагалі файл робиться для Медка а переглядаю я його через Visual Studio 2015

В мене паралельно нова проблемка зявилась
для того щоб сформувати рядок з текстом
<LINKED_DOCS xsi:nil="true" />

я написав слідуючий код
Элемент14 = Ветка_1.СоздатьПодчиненныйЭлемент("LINKED_DOCS");
Элемент14.УстановитьАтрибут("xsi:nil", "true");

натомість маю помилку

XMLКорневойРаздел.Записать(ИмяФайлаXML);
{Документ.РасходнаяНакладная.Форма.Модуль(76)}: : xsi:nil attribute on element 'LINKED_DOCS' is invalid.
[<LINKED_DOCS xsi:nil="true"/></DECLARHEAD> (error position = 31)]

і чого воно так????
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #127438 · Ответов: 10 · Просмотров: 4847
 

>  При створенні XML файлу виникає декілька проблем підкажіть як їх можна вирішити
leo10k10
Отправлено: 24.05.17, 15:00


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


Дякую та плюсую Вам за ":" рядок в XML формується без проблем.
Але залишається відкритим питання, що до того яким чином в XML файлі зробити перехід на наступний рядок, бо весь файл формується в один рядок
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #127409 · Ответов: 10 · Просмотров: 4847
 

>  Считать данные из Таблицы
leo10k10
Отправлено: 23.05.17, 17:02


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


может стоит просто написать
ТабК.ВывестиСекцию("НазваниеСтроки");
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #127350 · Ответов: 6 · Просмотров: 2006
 

>  При створенні XML файлу виникає декілька проблем підкажіть як їх можна вирішити
leo10k10
Отправлено: 23.05.17, 16:53


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


Доброго дня шановні програмісти. Маю намір полегшити своє життя з тим аби створити модуль для експорту даних типу XML для подальшої загрузки його в Медок структура файлу приблизно така:

<?xml version="1.0" encoding="windows-1251"?>
<DECLAR xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="F1203001.XSD">
  <DECLARHEAD>
    <TIN>2617415735</TIN>
    <C_DOC>F12</C_DOC>
    <C_DOC_SUB>030</C_DOC_SUB>
    <C_DOC_VER>1</C_DOC_VER>
    <C_DOC_TYPE>0</C_DOC_TYPE>
    <C_DOC_CNT>41</C_DOC_CNT>
    <C_REG>06</C_REG>
    <C_RAJ>08</C_RAJ>
    <PERIOD_MONTH>4</PERIOD_MONTH>
    <PERIOD_TYPE>1</PERIOD_TYPE>
    <PERIOD_YEAR>2017</PERIOD_YEAR>
    <C_STI_ORIG>0608</C_STI_ORIG>
    <C_DOC_STAN>1</C_DOC_STAN>
    <LINKED_DOCS xsi:nil="true" />
    <D_FILL>24042017</D_FILL>
    <SOFTWARE>MEDOC</SOFTWARE>
  </DECLARHEAD>
  <DECLARBODY>
    <HTYPR>0</HTYPR>
    <HFILL>03589717</HFILL>
    <HNUM>249</HNUM>
    <HNUM1 xsi:nil="true" />
    <HNAMESEL>ФОП Калачун Григорій Михайлович</HNAMESEL>
    <HNAMEBUY>ОГІЕНКО ВАСИЛЬ ВАСИЛЬОВИЧ</HNAMEBUY>
    <HKSEL>2617415735</HKSEL>
    <HKBUY>2523608675</HKBUY>
    <R01G1>2710131894</R01G1>
    <R01G2S>товар</R01G2S>
    <R01G3>1823.60</R01G3>
    <R01G4>2425.00</R01G4>
    <HBOS>Григорій Михайлович</HBOS>
    <HKBOS>2617415735</HKBOS>
  </DECLARBODY>
</DECLAR>
<!-- YOUR_ID="13426583871108940960"-->

почитав деяку літературу і вирішив, що для цієї справи буду використовувати зовнішню компоненту V7Plus почав писати код і ступор в мене вийшов на зовсім здавалосяб смішному місці а саме зі знаком ":" і переходами на іншу сторінку, якщо бути більш точним то код я пишу приблизно ось так
Процедура Екпорт_в_МЕДОК()
    ИмяФайлаXML = "f:\Програмування_в_1С\XML\ПримерФайлаXML.xml";
    
    Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "v7plus.dll") <> 1    Тогда
        Предупреждение("Компонента v7plus.dll не найдена!");
        Возврат;
    КонецЕсли;
    
    XMLАнализатор = СоздатьОбъект("AddIn.XMLParser");
    XMLКорневойРаздел = XMLАнализатор.СоздатьДокумент();
    // структура самого документа XML
    ДанныеXML = XMLКорневойРаздел.СоздатьПодчиненныйЭлемент("DECLAR");
    ДанныеXML.УстановитьАтрибут("xmlns" + "-" + "xsi", "http" + "-" + "//www.w3.org/2001/XMLSchema-instance");    
    ДанныеXML.УстановитьАтрибут("xsi" + "-" + "noNamespaceSchemaLocation", "F1203001.XSD");
  
    Ветка_1 = ДанныеXML.СоздатьПодчиненныйЭлемент("DECLARHEAD");
    Элемент = Ветка_1.СоздатьПодчиненныйЭлемент("TIN");
    Элемент.Значение = "2617602835";
        
    XMLКорневойРаздел.Записать(ИмяФайлаXML);
        
    Предупреждение("ОК");
    
КонецПроцедуры


туту замість ":" я поставив "-" щоб сконструювати хоча б якийсь файл бо інакше буде вибивати помилку ": Ошибка исполнения метода" в результаті отрумаю код структура якого пишеться в один рядок

<?xml version="1.0" encoding="windows-1251"?>
<DECLAR xmlns-xsi="http-//www.w3.org/2001/XMLSchema-instance" xsi-noNamespaceSchemaLocation="F1203001.XSD"><DECLARHEAD><TIN>2617602835</TIN></DECLARHEAD></DECLAR>

може хтось розяснить як мені з цим усим боротися?????
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #127349 · Ответов: 10 · Просмотров: 4847
 

>  Как програмно в печатной форме можно поменять цвет текста
leo10k10
Отправлено: 05.04.17, 15:56


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


У меня задача выдилить в печатной форме цветом отрицательное значение как это можно зделать програмно относительно условия????
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #125323 · Ответов: 4 · Просмотров: 5834
 

>  Подскажите или есть метод который по заданой дате определяет предыдущую дату
leo10k10
Отправлено: 05.04.17, 11:15


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


Цитата(Bernet @ 05.04.17, 11:07) *
Ну велосипед то не сложный получается, встроенной в платформу такой функции нет
Функция ПолучитьПрошлуюДату(ТекДата)
      Возврат НачалоДня(ТекДата) - 24*60*60;
КонецФункции


В 7.7 наверное этот фокус не работает потомучно при дате 04.01.2014 получаэтся дата 15.06.1780 32542620.gif

Цитата(Flexy @ 05.04.17, 12:07) *
Вчера = ТекущаяДата() - 1;


Спасибо Ваш вариант сработал
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #125311 · Ответов: 7 · Просмотров: 2006
 

>  Подскажите или есть метод который по заданой дате определяет предыдущую дату
leo10k10
Отправлено: 05.04.17, 10:00


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


Добрый день подскажите пожалуста есть ли метод который по заданой дате определяет предыдущую дату или нада самому выдумывать велосипед????
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #125304 · Ответов: 7 · Просмотров: 2006
 

>  Объединение двух таблиц значений
leo10k10
Отправлено: 05.04.17, 9:20


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


volodya1122 @ Вчера, 17:20 * ,
Спосибо
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #125303 · Ответов: 10 · Просмотров: 6588
 

>  Объединение двух таблиц значений
leo10k10
Отправлено: 04.04.17, 11:56


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


Цитата(igmig65 @ 01.04.17, 11:19) *
Так получится точно, но может это не оптимально:
Перебираете таблицу 1, при получении каждой строки тб1 перебираете тб2, и если (пар1тб1 = пар1тб2) И (пар2тб1 = пар2тб2) суммируете значения.
Это так, по быстрому, что в голову сразу пришло, но 100% можно оптимизировать, нужно подумать.


Да действительно перебором можно добится нужного результатат вот как в этом варианте решения
    Сообщить ("------Варіант рішення №1------");
    
    Список_1.ВыбратьСтроки();
    Список_1.Свернуть("Пар1_Сп_1, Пар2_Сп_1","ЗначСп_1");    
    Список_1.ВыбратьСтроки();
    Пока Список_1.ПолучитьСтроку() = 1 Цикл    
        СвСписок_1.НоваяСтрока();
        СвСписок_1.Пар1 = Список_1.Пар1_Сп_1;
        СвСписок_1.Пар2 = Список_1.Пар2_Сп_1;
        СвСписок_1.Значение = Список_1.ЗначСп_1;
        //Сообщить(Шаблон("[СвСписок_1.Пар1] Х [СвСписок_1.Пар2] Х [СвСписок_1.Значение]"));
    КонецЦикла;
              
    Список_2.ВыбратьСтроки();
    Список_2.Свернуть("Пар1_Сп_2, Пар2_Сп_2","ЗначСп_2");    
    Список_2.ВыбратьСтроки();
    Пока Список_2.ПолучитьСтроку() = 1 Цикл    
        СвСписок_2.НоваяСтрока();
        СвСписок_2.Пар1 = Список_2.Пар1_Сп_2;
        СвСписок_2.Пар2 = Список_2.Пар2_Сп_2;
        СвСписок_2.Значение = Список_2.ЗначСп_2;
        //Сообщить(Шаблон("[СвСписок_2.Пар1] Х [СвСписок_2.Пар2] Х [СвСписок_2.Значение]"));
    КонецЦикла;
    
    СвСписок_1.ВыбратьСтроки();
    СвСписок_2.ВыбратьСтроки();
    к = 0; ном = 0; кк = 0;
    КолСтрокСвСп_1 = СвСписок_1.КоличествоСтрок();
    КолСтрокСвСп_2 = СвСписок_2.КоличествоСтрок(); // здесь нужно применить метод возврата кол.строк в таблице ззначений
    Пока КолСтрокСвСп_1 > к Цикл    
        к = к + 1; сч = 0;
        СвСписок_1.ПолучитьСтрокуПоНомеру(к);
        //Сообщить("Цикл_1." + к);        
        Пока КолСтрокСвСп_2 > сч Цикл
            сч = сч + 1;
            СвСписок_2.ПолучитьСтрокуПоНомеру(сч);             
            //Сообщить ("Цикл_2." + сч);
            //Сообщить(Шаблон("[СвСписок_1.Пар1] Х [СвСписок_1.Пар2] Х [СвСписок_1.Значение]"));
            //Сообщить(Шаблон("[СвСписок_2.Пар1] Х [СвСписок_2.Пар2] Х [СвСписок_2.Значение]"));            
            Если (СвСписок_1.Пар1 = СвСписок_2.Пар1) и (СвСписок_1.Пар2 = СвСписок_2.Пар2) Тогда
                //Сообщить("параметры спосков одинаовы нада соединять в одну сточку");
                ном = ном + 1;
                СпРезПредвар.НоваяСтрока(ном);
                СпРезПредвар.Пар1 = СвСписок_1.Пар1;
                СпРезПредвар.Пар2 = СвСписок_1.Пар2;
                СпРезПредвар.Значение_1 = СвСписок_1.Значение;
                 СпРезПредвар.Значение_2 = СвСписок_2.Значение;
                 // здесь нужно изменить список2 убрать с нево выбраную стоку
                 СвСписок_2.УдалитьСтроку(сч);
                 КолСтрокСвСп_2 = КолСтрокСвСп_2 - 1;
                 Прервать;
            КонецЕсли;
            Если КолСтрокСвСп_2 = сч Тогда
                 ном = ном + 1;
                 СпРезПредвар.НоваяСтрока(ном);
                 СпРезПредвар.Пар1 = СвСписок_1.Пар1;
                 СпРезПредвар.Пар2 = СвСписок_1.Пар2;
                 СпРезПредвар.Значение_1 = СвСписок_1.Значение;
                  СпРезПредвар.Значение_2 = "";                 
                  //Сообщить("Запосной результат_1");
            КонецЕсли;            
        КонецЦикла;
        //Сообщить(Шаблон(ном + "." + "[СпРезПредвар.Пар1] Х [СпРезПредвар.Пар2] Х [СпРезПредвар.Значение_1] Х [СпРезПредвар.Значение_2]"));
    КонецЦикла;
    КолСтрокСвСп_2 = СвСписок_2.КоличествоСтрок();
    Пока КолСтрокСвСп_2 > 0 Цикл
        кк = кк + 1;
        СвСписок_2.ПолучитьСтрокуПоНомеру(кк);
        ном = ном + кк;
        СпРезПредвар.НоваяСтрока(ном);
        СпРезПредвар.Пар1 = СвСписок_2.Пар1;
        СпРезПредвар.Пар2 = СвСписок_2.Пар2;
        СпРезПредвар.Значение_1 = "";
        СпРезПредвар.Значение_2 = СвСписок_2.Значение;    
        КолСтрокСвСп_2 = КолСтрокСвСп_2 - 1;
    КонеЦцикла;
    
    СпРезПредвар.ВыбратьСтроки();
    Для Н = 1 По ном Цикл
    СпРезПредвар.ПолучитьСтрокуПоНомеру(Н);
    //Сообщить(Шаблон("[СпРезПредвар.Пар1] Х [СпРезПредвар.Пар2] Х [СпРезПредвар.Значение_1] Х [СпРезПредвар.Значение_2]"));
    КонецЦикла;
    
    СпРезПредвар.ВыбратьСтроки();
    Пока СпРезПредвар.ПолучитьСтроку() = 1 Цикл    
        СпРезультат.НоваяСтрока();
        СпРезультат.Пар1 = СпРезПредвар.Пар1;
        СпРезультат.Пар2 = СпРезПредвар.Пар2;
        СпРезультат.Значение = СпРезПредвар.Значение_1 + СпРезПредвар.Значение_2;
        Сообщить(Шаблон("[СпРезультат.Пар1] Х [СпРезультат.Пар2] Х [СпРезультат.Значение]"));
    КонецЦикла;


но это далеко не оптимально
а вот volodya1122 как всегда прав ну вопервых в том что я доконца так и не розобрался с методом свернуть и стем что этот вариант проще вот он

    кк = 0;
    КолСтрокСп_1 = Список_1.КоличествоСтрок();
    КолСтрокСп_2 = Список_2.КоличествоСтрок();
    Пока КолСтрокСп_2 > 0 Цикл
        кк = кк + 1;
        Список_2.ПолучитьСтрокуПоНомеру(кк);
        ном = КолСтрокСп_1 + кк;
        Список_1.НоваяСтрока(ном);
        Список_1.ДатаСп_1 = Список_2.ДатаСп_2;
        Список_1.Пар1_Сп_1 = Список_2.Пар1_Сп_2;
        Список_1.Пар2_Сп_1 = Список_2.Пар2_Сп_2;
        Список_1.ЗначСп_1 = Список_2.ЗначСп_2;            
        КолСтрокСп_2 = КолСтрокСп_2 - 1;
    КонеЦцикла;
    //СпРезультат2
    
    Список_1.ВыбратьСтроки();
    Список_1.Свернуть("Пар1_Сп_1, Пар2_Сп_1","ЗначСп_1");    
    Список_1.ВыбратьСтроки();
    Ном = Список_1.КоличествоСтрок();
    Для Н = 1 По Ном Цикл
    Список_1.ПолучитьСтрокуПоНомеру(Н);
    Сообщить(Шаблон("[Список_1.Пар1_Сп_1] Х [Список_1.Пар2_Сп_1] Х [Список_1.ЗначСп_1]"));
    КонецЦикла;


Извените если кого и роздрожал мой глупый вопрос
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #125272 · Ответов: 10 · Просмотров: 6588
 

>  Объединение двух таблиц значений
leo10k10
Отправлено: 31.03.17, 14:14


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


Цитата(Batchir @ 31.03.17, 13:17) *
К сожалению я уже давно не программирую на 7.7 поэтому подсказать как реализовать эту задачу запросом не смогу.

Спосибо за чесный ответ.

Цитата(volodya1122 @ 31.03.17, 14:22) *
Ви ж робили подібну задачу для списку значень. Тут можна зробити аналогічно. а вкінці застосувати метод Сортировать, а потім Свернуть (почитайте в справці як працює метод "свернуть". В першім параметері вказуються реквізити по яких потрібно згорнути список, а в другому список реквізитів значення яких сумуються).

Так дійсно я вже будував одну таблицю на основі двух але її формат як на мене не дозволяє згорнути ту таблицю до потрібного вигляду бо там привязка по даті а мені тепер потрібно привязатися до параметрів і основна проблема в тому, що таблиці мають різну кількість рядків відповідно одному рядку з першої таблиці можуть відповідати три чотири рядки з другої таблиці.
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #125128 · Ответов: 10 · Просмотров: 6588
 

>  Объединение двух таблиц значений
leo10k10
Отправлено: 31.03.17, 12:13


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


Цитата(Batchir @ 31.03.17, 12:16) *
Всё нет так.
1. Что это?
Цитата
Запрос = СоздатьОбъект("ВЫБРАТЬ");
2. Мы ж о 7.7 ? Текст запроса написан под 1С 8

3. Что этим хотели сделать (если отталкиваться от текста запроса)?
Цитата
Запрос.УстановитьПараметр("СпРезультат",Параметры.СпРезультат);


Я ж не спорю что малоумный посему и нахомутал. Пытался слепить нужный для себя запрос на примерах других задач вот и вышел бред сывой кобылы. Для того чтобы розобратся я и прошу Вашей помощи.

Цитата(Batchir @ 31.03.17, 12:16) *
3. Что этим хотели сделать (если отталкиваться от текста запроса)?
Цитата
Запрос.УстановитьПараметр("СпРезультат",Параметры.СпРезультат);

этим думал будет создана промежуточная таблица с чотырмя полями Пар_1, Пар_2, Значение_1, Значение_2 но глубоко в душе понимаю что это тоже не то
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #125117 · Ответов: 10 · Просмотров: 6588
 

>  Объединение двух таблиц значений
leo10k10
Отправлено: 31.03.17, 9:05


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


Тока закончил с одной таблицей как сразу стало ясно что мне для анализа нужна еще одна суть проблемы изложу на примере, и так есть у меня две таблицы значений Список_1 и Список_2 со следующими полями дата, параметр1, параметр2, значение. По сути таблица будет иметь вид:

---------------------Список_1----------------------|-----------------------Список_2---------------------
-ДатаСп_1-|-Пар1_Сп_1-|-Пар2_Сп_1-|-ЗначСп_1-|-ДатаСп_2-|-Пар1_Сп_2-|-Пар2_Сп_2-|-ЗначСп_2-|
01.01.2017-|------АА----|------БА-----|---ЗН_1.1--|02.01.2017-|------АБ----|------БА----|-ЗН_2.1---|
02.01.2017-|------АА----|------БА-----|---ЗН_1.2--|05.01.2017-|------АБ----|------ББ----|-ЗН_2.2---|
03.01.2017-|------АБ----|------ББ-----|---ЗН_1.3--|06.01.2017-|------АВ----|------БВ----|-ЗН_2.3---|
05.01.2017-|------АВ----|------БВ-----|---ЗН_1.4--|
06.01.2017-|------АВ----|------БВ-----|---ЗН_1.5--|

Мне нужно объединить эти две таблицы таким образом что бы при одинаковых параметрах сумировать их значения тоесть результат будет следующим:

------------------СпРезультат------------
-----Пар1----|-----Пар2-----|-Значение------------------| если все значения будут равны 10 то
------АА-------|------БА-------|ЗН_1.1+ЗН_1.2----------|------=20
------АБ-------|------БА-------|ЗН_2.1-------------------|------=10
------АБ-------|------БВ-------|ЗН_1.3+ ЗН_2.2----------|------=20
------АВ-------|------БВ-------|ЗН_1.4+ ЗН_1.5+ЗН_2.3-|------=30

Первым шагом думаю надо Список_1 и Список_2 свернуть по значению относительно параметров вот что вышло
Процедура РезТаб()
    Перем Список_1, Список_2, СпРезультат;
    Перем Запрос, ТекстЗапроса;
    
    Список_1 = СоздатьОбъект("ТаблицаЗначений");
    Список_1.НоваяКолонка("ДатаСп_1", "Дата");
    Список_1.НоваяКолонка ("Пар1_Сп_1", "Строка");
    Список_1.НоваяКолонка ("Пар2_Сп_1", "Строка");
    Список_1.НоваяКолонка ("ЗначСп_1", "Число");
    
    Список_2 = СоздатьОбъект("ТаблицаЗначений");
    Список_2.НоваяКолонка("ДатаСп_2", "Дата");
    Список_2.НоваяКолонка ("Пар1_Сп_2", "Строка");
    Список_2.НоваяКолонка ("Пар2_Сп_2", "Строка");
    Список_2.НоваяКолонка ("ЗначСп_2", "Число");
    
    СвСписок_1 = СоздатьОбъект("ТаблицаЗначений");
    СвСписок_1.НоваяКолонка ("Пар1", "Строка");
    СвСписок_1.НоваяКолонка ("Пар2", "Строка");
    СвСписок_1.НоваяКолонка ("Значение", "Число");
                                                  
    СвСписок_2 = СоздатьОбъект("ТаблицаЗначений");
    СвСписок_2.НоваяКолонка ("Пар1", "Строка");
    СвСписок_2.НоваяКолонка ("Пар2", "Строка");
    СвСписок_2.НоваяКолонка ("Значение", "Число");
    
    СпРезультат = СоздатьОбъект("ТаблицаЗначений");
    СпРезультат.НоваяКолонка ("Пар1", "Строка");
    СпРезультат.НоваяКолонка ("Пар2", "Строка");
    СпРезультат.НоваяКолонка ("Значение", "Число");
    
    Список_1.НоваяСтрока(1);
    Список_1.ДатаСп_1 = "01.01.2017";
    Список_1.Пар1_Сп_1 = "АА";
    Список_1.Пар2_Сп_1 = "БА";
    Список_1.ЗначСп_1 = 10;
    Список_1.НоваяСтрока(2);
    Список_1.ДатаСп_1 = "02.01.2017";
    Список_1.Пар1_Сп_1 = "АА";
    Список_1.Пар2_Сп_1 = "БА";
    Список_1.ЗначСп_1 = 10;
    Список_1.НоваяСтрока(3);
    Список_1.ДатаСп_1 = "03.01.2017";
    Список_1.Пар1_Сп_1 = "АБ";
    Список_1.Пар2_Сп_1 = "ББ";
    Список_1.ЗначСп_1 = 10;
    Список_1.НоваяСтрока(4);
    Список_1.ДатаСп_1 = "05.01.2017";
    Список_1.Пар1_Сп_1 = "АВ";
    Список_1.Пар2_Сп_1 = "БВ";
    Список_1.ЗначСп_1 = 10;
    Список_1.НоваяСтрока(5);
    Список_1.ДатаСп_1 = "06.01.2017";
    Список_1.Пар1_Сп_1 = "АВ";
    Список_1.Пар2_Сп_1 = "БВ";
    Список_1.ЗначСп_1 = 10;
    
    НомСп_1 = 5;
    Для Н = 1 По НомСп_1 Цикл
           Список_1.ПолучитьСтрокуПоНомеру(Н);
    //Сообщить(Шаблон("[Список_1.ДатаСп_1] Х [Список_1.Значение_1]"));
    КонецЦикла;
    
    Список_2.НоваяСтрока(1);
    Список_2.ДатаСп_2 = "02.01.2017";
    Список_2.Пар1_Сп_2 = "АБ";
    Список_2.Пар2_Сп_2 = "БА";    
    Список_2.ЗначСп_2 = 10;
    Список_2.НоваяСтрока(2);
    Список_2.ДатаСп_2 = "05.01.2017";
    Список_2.Пар1_Сп_2 = "АБ";
    Список_2.Пар2_Сп_2 = "ББ";    
    Список_2.ЗначСп_2 = 10;
    Список_2.НоваяСтрока(3);
    Список_2.ДатаСп_2 = "06.01.2017";
    Список_2.Пар1_Сп_2 = "АВ";
    Список_2.Пар2_Сп_2 = "БВ";    
    Список_2.ЗначСп_2 = 10;    
    НомСп_2 = 3;
    
    Для Н = 1 По НомСп_2 Цикл
           Список_2.ПолучитьСтрокуПоНомеру(Н);
    //Сообщить(Шаблон("[Список_2.ДатаСп_2] Х [Список_2.Значение_2]"));
    КонецЦикла;
    
    Список_1.ВыбратьСтроки();
    Список_1.Свернуть("Пар1_Сп_1, Пар2_Сп_1","ЗначСп_1");    
    Список_1.ВыбратьСтроки();
    Пока Список_1.ПолучитьСтроку() = 1 Цикл    
        СвСписок_1.НоваяСтрока();
        СвСписок_1.Пар1 = Список_1.Пар1_Сп_1;
        СвСписок_1.Пар2 = Список_1.Пар2_Сп_1;
        СвСписок_1.Значение = Список_1.ЗначСп_1;
        Сообщить(Шаблон("[СвСписок_1.Пар1] Х [СвСписок_1.Пар2] Х [СвСписок_1.Значение]"));
    КонецЦикла;
              
    Список_2.ВыбратьСтроки();
    Список_2.Свернуть("Пар1_Сп_2, Пар2_Сп_2","ЗначСп_2");    
    Список_2.ВыбратьСтроки();
    Пока Список_2.ПолучитьСтроку() = 1 Цикл    
        СвСписок_2.НоваяСтрока();
        СвСписок_2.Пар1 = Список_2.Пар1_Сп_2;
        СвСписок_2.Пар2 = Список_2.Пар2_Сп_2;
        СвСписок_2.Значение = Список_1.ЗначСп_1;
        Сообщить(Шаблон("[СвСписок_2.Пар1] Х [СвСписок_2.Пар2] Х [СвСписок_2.Значение]"));
    КонецЦикла;


А вот вторым шагом при объединении низнаю как лутше поступить циклом перепроверять одни данные с другими на примере это просто а в реальности там куча значений и параметров что в одной таблице так и в другой по этому думаю лутше зделать объдинение через запрос на основании полученых (свернутых таблиц значений) 64000000.gif .
И вот тут то я заплутался подскажите что не так с етим запросом.

 Запрос = СоздатьОбъект("ВЫБРАТЬ");
    ТекстЗапроса =
    "//{{ЗАПРОС(ВЫБРАТЬ)
    |ВЫБРАТЬ
    |    СвСписок_1.Пар1,
    |    СвСписок_1.Пар2,
    |    СвСписок_1.Значение,
    |ПОМЕСТИТЬ СвСписок_1
    |ИЗ
    |    &СвСписок_1 КАК СвСписок_1
    |;
    |ВЫБРАТЬ
    |    СвСписок_2.Пар1,
    |    СвСписок_2.Пар2,
    |    СвСписок_2.Значение,
    |ПОМЕСТИТЬ СвСписок_2
    |ИЗ
    |    &СвСписок_2 КАК СвСписок_2
    |;
    |ВЫБРАТЬ
    |    СвСписок_1.Пар1,
    |    СвСписок_1.Пар2,
    |    СвСписок_1.Значение,
    |    СвСписок_2.Пар1,
    |    СвСписок_2.Пар2,
    |    СвСписок_2.Значение    
    |ИЗ
    |    СвСписок_1 КАК СпРезультат
    |    ПОЛНОЕ СОЕДИНЕНИЕ СвСписок_2 КАК СвСписок_2
    |    ПО СвСписок_1.Пар1 = СвСписок_2.Пар1, СвСписок_1.Пар2 = СвСписок_2.Пар2";
    |"//}}ЗАПРОС
   ;
    Запрос.УстановитьПараметр("СпРезультат",Параметры.СпРезультат);


Буду благодарен за наглядную помощ.
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #125091 · Ответов: 10 · Просмотров: 6588
 

>  Как лучше организовать объединение двух списков относительно даты
leo10k10
Отправлено: 29.03.17, 22:16


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


Nuzhny @ Сегодня, 16:23 * ,
Большое спосибо Ваш код прекрасно работает, а с использованием метода сортировки
СписокРезультат.Сортировать("+Дата");
я окончатеньно добился нужного результата.
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #124978 · Ответов: 7 · Просмотров: 1933
 

>  Как лучше организовать объединение двух списков относительно даты
leo10k10
Отправлено: 29.03.17, 12:18


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


sava1 @ Сегодня, 11:38 * ,
Ну вот пытаюсь реализовать ниче не выходит подскажите шо не так

Список_1 = СоздатьОбъект("ТаблицаЗначений");
    Список_1.НоваяКолонка("ДатаСп_1", "Дата");
    Список_1.НоваяКолонка ("Значение_1", "Строка");
    Список_2 = СоздатьОбъект("ТаблицаЗначений");
    Список_2.НоваяКолонка("ДатаСп_2", "Дата");
    Список_2.НоваяКолонка ("Значение_2", "Строка");
    
    Список_1.НоваяСтрока(1);
    Список_1.ДатаСп_1 = "01.01.2017";
    Список_1.Значение_1 = "З.1.1";
    Список_1.НоваяСтрока(2);
    Список_1.ДатаСп_1 = "01.01.2017";
    Список_1.Значение_1 = "З.1.2";
    НомСп_1 = 2;
    
    Для Н = 1 По НомСп_1 Цикл
           Список_1.ПолучитьСтрокуПоНомеру(Н);
    Сообщить(Шаблон("[Список_1.ДатаСп_1] Х [Список_1.Значение_1]"));
    КонецЦикла;
    
    Список_2.НоваяСтрока(1);
    Список_2.ДатаСп_2 = "02.01.2017";
    Список_2.Значение_2 = "З.2.1";
    Список_2.НоваяСтрока(2);
    Список_2.ДатаСп_2 = "03.01.2017";
    Список_2.Значение_2 = "З.2.2";
    НомСп_2 = 2;
    
    Для Н = 1 По НомСп_2 Цикл
           Список_2.ПолучитьСтрокуПоНомеру(Н);
    Сообщить(Шаблон("[Список_2.ДатаСп_2] Х [Список_2.Значение_2]"));
    КонецЦикла;
    //-------------ЧТО ЗДЕСЬ НЕ ТАК ---------------
    СписокРезультат = СоздатьОбъект("ТаблицаЗначений");
    СписокРезультат.НоваяКолонка("Дата", "Дата");
    СписокРезультат.НоваяКолонка ("Значение_1", "Строка");
    СписокРезультат.НоваяКолонка ("Значение_2", "Строка");
    СписокРезультат.Заполнить(Список_1, 1, 2, "Дата, Значение_1");
    СписокРезультат.Заполнить(Список_2, 3, 4, "Дата, Значение_2");
    
    Для Н = 1 По 4 Цикл
           СписокРезультат.ПолучитьСтрокуПоНомеру(Н);
    Сообщить(Шаблон("[СписокРезультат.Дата] Х [СписокРезультат.Значение_1] Х [СписокРезультат.Значение_2]"));
    КонецЦикла;
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #124958 · Ответов: 7 · Просмотров: 1933
 

>  Как лучше организовать объединение двух списков относительно даты
leo10k10
Отправлено: 29.03.17, 10:22


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


Цитата(sava1 @ 29.03.17, 11:06) *
Списки в ТЗ, потом (свернуть) отсортировать.

сори но я вас не понял можете черкануть пару строчек кода чтобы было понятней


leo10k10 @ Сегодня, 11:12 * ,

Я так понимаю нада зделать цикл по строкам Списка_1, потом вложенный цикл по Списку_2 с заполнением колонок значения, а потом какимто методом упорядочить все это по дате но токо начинаю писать получаэтся бред
.
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #124949 · Ответов: 7 · Просмотров: 1933
 

>  Как лучше организовать объединение двух списков относительно даты
leo10k10
Отправлено: 29.03.17, 9:57


Общительный
**

Группа: Пользователи
Сообщений: 42
Регистрация: 11.03.17
Пользователь №: 54922


Подскажите пожалуйста как лутше организовать объединение двух списков относительно дати?????
Суть токова "Список_1" имеет поля "ДатаСп_1" и "Значение_1", а "Список_2" свои поля "ДатаСп_2" и "Значение_2" в результате объединения должен выйти "СписокРезультат" с полями "Дата", "Значение_1","Значение_2" при этом всем список надо упорядочить по дате возростания тоесть для ниже приведенных случаях должно получится:

СЛУЧАЙ №1
Список_1 Список_2 СписокРезультат
ДатаСп_1 | Значение_1 | ДатаСп_2 | Значение_2 | | Дата | Значение_1 | Значение_2 |
01.01. | З.1.1 | 02.01. | З.2.1 | | 01.01. | З.1.1 | |
01.01. | З.1.2 | 04.01. | З.2.2 | ==> | 01.01. | З.1.2 | |
| 02.01. | | З.2.1 |
| 02.01. | | З.2.2 |


СЛУЧАЙ №2
Список_1 Список_2 СписокРезультат
ДатаСп_1 | Значение_1 | ДатаСп_2 | Значение_2 | | Дата | Значение_1 | Значение_2 |
01.01. | З.1.1 | 02.01. | З.2.1 | | 01.01. | З.1.1 | |
04.01. | З.1.2 | 04.01. | З.2.2 | ==> | 02.01. | | З.2.1 |
| 04.01. | З.1.2 | |
| 04.01. | | З.2.2 |

Можно допустить что в списке "Список_1" дата всегда будет начальной.
Хочу также заметить что если во втором случае результат будет таковым :

СписокРезультат
| Дата | Значение_1 | Значение_2 |
| 01.01. | З.1.1 | |
==> | 02.01. | | З.2.1 |
| 04.01. | | З.2.2 |
| 04.01. | З.1.2 | |
то это не будит считатся ошибкой.
Буду благодарен за уделенное мне время.
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #124946 · Ответов: 7 · Просмотров: 1933
 

2 страниц V   1 2 >

Новые сообщения  Открытая тема (есть новые ответы)
Опрос  Опрос (есть новые голоса)
Нет новых сообщений  Открытая тема (нет новых ответов)
Нет новых голосов  Опрос (нет новых голосов)
Популярная тема  Горячая тема (есть новые ответы)
Закрыта  Закрытая тема
Нет новых  Горячая тема (нет новых ответов) Перемещена  Тема перемещена
 

RSS Текстовая версия Сейчас: 03.05.24, 5:40
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!