/// <summary>
        /// Метод вызова и отображения резальтатов поиска аналогов.
        /// </summary>
        /// <param name="findAConnection"></param>
        /// <param name="route"></param>
        /// <param name="valKey"></param>
        private static void ConclusionOfAnalogsInTheTable(FindAConnection findAConnection, Route route, Dictionary <string, Dictionary <Vertex, Vertex> > valKey)
        {
            int count = 0;

            if (valKey.Count != 0)
            {
                foreach (var i in valKey)
                {
                    DataGridView data = new DataGridView(); //экземпляр для отображения маршрутов в таблице
                    route.tabControl1.TabPages.Add(i.Key);  //добавление название вкладки текущего маршрута
                    route.TableCallSettings(data, count);

                    foreach (var j in i.Value)
                    {
                        data.Rows.Add(j.Key.Item + " -> " + j.Value.Item);  //добавление в таблицу шагов текущего маршрута
                    }
                    count++;
                }
                route.ShowDialog(findAConnection);
            }
            else
            {
                MessageBox.Show($"Искомый товар «{GetConvertedItem(findAConnection.textBox3.Text, findAConnection.textBox4.Text)}» " +
                                $"не найден за «{(int)findAConnection.numericUpDown1.Value}» шагов");
            }
        }
        /// <summary>
        /// Кнопка поиска аналогов товара
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button4_Click(object sender, EventArgs e)
        {
            Graph           graph           = new Graph();
            FindAConnection findAConnection = new FindAConnection();
            DialogResult    result          = findAConnection.ShowDialog(this);

            if (result == DialogResult.Cancel)
            {
                return;
            }

            //цикл для добавления элементов в узлы, и эти же узлы добавляются по сторонам ребра и их вес, который является "доверие" в таблице
            foreach (var v in db.Products.Local.ToBindingList())
            {
                graph.Add(GetConvertedItem(v.Article1, v.Manufacturer1), GetConvertedItem(v.Article2, v.Manufacturer2), v.Trust);
            }

            Route route = new Route();   //создание экземпляра окна с отображением маршрутов с аналогами

            //Метод поиска аналогов, если возвращаемый список пуст, то товар либо не найден, либо его нет в таблице
            Dictionary <string, Dictionary <Vertex, Vertex> > valKey = graph.BFS(GetConvertedItem(findAConnection.textBox1.Text, findAConnection.textBox2.Text),
                                                                                 GetConvertedItem(findAConnection.textBox3.Text, findAConnection.textBox4.Text),
                                                                                 (int)findAConnection.numericUpDown1.Value);

            ConclusionOfAnalogsInTheTable(findAConnection, route, valKey);
        }